Sobre o Débito Automático
O que é débito automático?
O débito automático, também conhecido como DA, é o pagamento automático de contas recorrentes usando o saldo disponível na conta do cliente. Com ele é possível realizar o pagamento de algumas contas essenciais, como: água, telefone, energia, internet, gás e outros.
Basicamente, ele permite que o valor a ser pago por aquela conta seja descontado automaticamente do saldo disponível, sem que o titular tenha que tomar alguma ação manual.
Como funciona o débito automático?
De forma simples, caso o usuário opte por pagar uma conta com débito automático, ela sempre será programada para executar na data do seu vencimento. Ou seja, quando chegar a data determinada, o valor será automaticamente debitado do saldo disponível em sua conta bolsão da Celcoin.
Neste artigo você irá aprender como é possível:
- Configurar um Webhook para receber informações sobre os débitos automáticos;
- Consultar os convênios disponíveis para configuração e uso do débito automático;
- Criar uma adesão de um convênio para um usuário;
- Confirmar ou recusar o pagamento de uma fatura em débito automático;
- Cancelar adesões de um usuário;
- Consultar débitos que estão para vencer;
- Consultar ocorrências;
- Consultar o histórico de uma adesão;
- Recomendações para testes em sandbox.
Pré-requisitos para implementação:
Possuir uma chave API da Celcoin, para mais informações acessar esse link
Ter familiaridade com APIs Rest usando o protocolo OAuth 2.0.
Ter o produto/solução contratada, caso queira usar a funcionalidade em ambiente produtivo, por favor entre em contato com a nossa equipe comercial através do e-mail [email protected]. Para dúvidas técnicas, basta entrar em contato com o suporte através do link.
Saiba que:
Antes de começar explicar sobre essa funcionalidade é importante que você entenda a definição de alguns conceitos.
O que são convênios?
São empresas que possibilitam o pagamento de suas contas com o método de pagamento débito automático, por exemplo: Claro, Consigaz, Vivo, Cemig, Prefeituras, SABESP entre outras. Convênio também pode ser chamado de optante.
O que é uma adesão?
É o contrato que será criado entre Celcoin e o convênio para o fornecimento de débitos automáticos. Por exemplo, ao configurar um débito automático para uma assinatura de celular da Claro, onde mensalmente é cobrado o valor de R$ 80,00, se faz necessário criar uma adesão informando o código do convênio e o número disponibilizado por ele na fatura para os seus débitos. A adesão também pode ser chamada de subscription.
Caso de Uso
Como Fintech quero disponibilizar para os meus usuários a possibilidade de configurar débitos automáticos para diversos convênios, com o objetivo de disponibilizar praticidade e mais um método de pagamento em meu aplicativo e/ou plataforma.
Configurar Webhooks
Para receber os débitos que devem ser pagos, é necessário configurar os webhooks, que são as notificações dos débitos e das adesões.
O webhook é uma forma de receber informações de forma assíncrona, geralmente são disparados gatilhos no formato JSON quando um evento acontece. Na prática, para as APIs de DA, será usado para receber as seguintes informações:
- Informativos de sucesso do pagamento de um débito
- Informativos de erro do pagamento de um débito
- Avisos da chegada de um novo débito
- Aviso que ocorreu a troca de status de uma adesão, sendo os status: Ativo, Cancelado ou Inativo
- Aviso que a conta Celcoin está sem fundos para transacionar
Para realizar a configuração de um webhook é necessário entrar em contato com a nossa equipe de suporte informando a url de seu webhook, senha e usuário(caso exista). Desta forma, eles irão realizar o cadastro dos dados em nossa plataforma para que seja possível o envio dos gatilhos.
️ Atenção!
No ambiente de teste (sandbox) só é possível receber os eventos de DA_SUBSCRIPTION_STATUS e DA_INVOICE_WARNING
Consultar convênios
Para o usuário conseguir avaliar quais convênios estão disponíveis para utilização do débito automático, deve ser realizado uma consulta na API Listar convênios DA, passando um parâmetro de busca indicando o id do segmento, ou null para trazer todos os convênios cadastrados em nossa base de dados. Além disso, é possível todos os convênios ativos nessa lista aqui.
Modelo de request:
curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/eda/v1/utilities/da?segment=1' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {access_token}'
Modelo de retorno
[
{
"utilityId": 14717,
"name": "PREFEITURA MUNICIPAL DE CURITIBA",
"shortName": "PREF. CURITIBA IPTU",
"utilityCode": "8161319",
"diasAtivacao": 0,
"diasOcorrencia": 0,
"febrabanCode": "1319",
"subscriptionRoleIdentification": "SEM REGRA",
"validationRule": "Validação de dígito verificador via módulo 10",
"utilityInputs": [
{
"utilityInputId": 1053,
"placeHolder": "Código Identificador",
"minLength": 8,
"maxLength": 20,
"dataType": "string",
"description": "Código Identificador"
}
],
"segment": {
"id": 1,
"name": "Prefeituras"
}
}
]
Os parâmetros de busca por segmento são:
- Não definido = será retornado todos os convênios disponíveis;
- 1: Prefeituras;
- 2: Saneamento;
- 3: Energia Elétrica e Gás;
- 4: Telecomunicações;
- 5: Órgãos Governamentais;
- 6: Carnês e Assemelhados ou Demais;
- 7: Multas de trânsito;
- 8: Multi Liquidação;
- 9: Convênio Próprio;
A omissão do parâmetro de busca por segmento trará todos os convênios disponíveis indiferente do segmento associado.
Atenção!
Recomendamos que crie uma rotina do lado da sua aplicação consultando essa API uma vez ao dia, para atualizar os convênios disponíveis do débito automático em seu sistema.
Estrutura do response:
Campo | Tipo | Descrição |
---|---|---|
utilityId | integer | Identificador do convênio |
name | string | Nome completo do convênio |
shortName | string | Nome abreviado do convênio |
utilityCode | string | Código do convênio |
diasAtivacao | integer | Representa a média de dias corridos que o convênio demora para responder a atualização da adesão ou do primeiro débito |
diasOcorrencia | integer | Representa a média de contagem de dias corridos que o convênio demora para enviar um alerta de ocorrência no cadastro da adesão |
febrabanCode | string | Código Febraban do convênio |
subscriptionRoleIdentification | string | Regra de identificador de optante (Sem Regra, somente números, números e letras) |
validationRule | string | Regra de validação do código identificador do convênio |
utilityInputId | integer | Dado de entrada identificador do convênio |
placeHolder | string | Descrição dos dados de entrada |
minLength | integer | Tamanho mínimo para os dados de entrada |
maxLength | integer | Tamanho máximo para os dados de entrada |
dataType | string | Descrição do tipo da data |
description | string | Descrição |
id | integer | Código do segmento |
name | string | Nome do segmento |
No retorno dessa requisição é apresentado alguns campos que são necessários, ou importantes para seguir com o processo de criação de um débito automático sendo eles:
utilityid - Identificador do convênio
utilityCode - Código do convênio
diasAtivacao - Representa a média de dias corridos que o convênio demora para responder a atualização da adesão ou do primeiro débito.
diasOcorrencia - Representa a média de contagem de dias corridos que o convênio demora para enviar um alerta de ocorrência no cadastro da adesão.
utilityInputId- representa o identificador dos dados de entrada do convênio, em ambiente sandbox às vezes essa propriedade pode ser retornada com valor null, nesse caso, informe 0 na request seguinte onde solicita essa informação.
Logo, também recomendamos que essas informações sejam persistidas do lado de sua aplicação.
Validar código identificador
Alguns convênios realizam uma validação do dígito verificador, ou seja, há uma regra de validação do número informado como identificador do débito automático na conta do cliente. Essa verificação serve para garantir a autenticidade da informação que está sendo enviada, ou seja, garante que o número informado realmente se refere a uma conta de determinado cliente em determinado convênio.
Pensando nisso, foi desenvolvido uma API que permite consultar se o identificador de um cliente é válido para aquele convênio. Para isso, basta realizar um POST na API Validação do código identificador informando o utilityId e o identificationCode.
utilityId: esse campo refere-se ao identificador do convênio. Ele pode ser obtido na lista de convênios através da consulta nesta API ou por essa lista.
*OBS: a lista é referente ao ambiente de produção. Em sandbox utilize os retornos da API.
identificationCode: representa o valor de entrada do débito automático, que deve ser populado com o número disponibilizado na conta do convênio. Ele pode vir na conta como: Débito automático, Código de cadastramento para débito automático, Cod. Débito Automático, entre outros.
Modelo de request:
curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/eda/v1/validation' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"utilityId": 9214,
"identificationCode": "951701031"
}'
Caso o convênio não realize validação do código verificador, esse será o retorno:
{
"isValid": true,
"message": "Convênio não realiza cálculo de módulo de dígito verificador, não há garantias de que o código informado esteja realmente correto para o aceite do convênio"
}
Caso o convênio realize a validação e o código esteja correto, esse será o retorno:
{
"resultado": {
"optanteValido": true
}
}
Caso o convênio realize a validação e o código esteja incorreto, esse será o retorno:
{
"errorCode": "SUB422",
"description": "DV da identificação do cliente é inválida."
}
Criar Adesão
Em seguida deve ser realizado a criação de uma adesão utilizando a API Cria adesão. Lembre-se que para isso é necessário obter do seu usuário o código identificador do convênio, pois ele é obrigatório para a criação do débito automático.
Exemplo de fatura de um convênio e o código identificador para a criação de um débito automático:
Para essa requisição é necessário passar as seguintes propriedades no body da requisição:
utilityId - identificador do convênio.
externalTerminal - Id que você usa para fazer a gestão da sua plataforma
externalNSU- identificador externo do NSU
document - Campo que representa o número do documento, sendo possível passar o CPF ou CNPJ
documentType - Campo que representa o tipo do documento, sendo possível popular apenas com CPF ou CNPJ.
subscriptionInputs - é um objeto onde será populado os dados da adesão, que são: identificador do convênio e identificação da conta do cliente.
utilityInputId - Este campo representa o código de entrada do convênio que é retornado dentro do array de utilityInputs da chamada de consulta dos convênios disponíveis.
input - Representa o valor de entrada do débito automático, que deve ser populado com o número disponibilizado na conta do convênio. Ele pode vir na conta como: Débito automático, Código de cadastramento para débito automático, Cod. Débito Automático, entre outros. Por exemplo, no caso da fatura do desenho acima, seria 000000000000.
Modelo de request:
curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/eda/v1/utilities/subscriptions' \
--header 'accept: application/json' \
--header 'Content-Type: application/json-patch+json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '{
"utilityId": 9214,
"externalTerminal": "teste033939",
"externalNSU": 12349832173712,
"automaticPayment": true,
"document": "08160149069",
"documentType": "CPF",
"subscriptionInputs": [
{
"utilityInputId": 510,
"input": "951701031"
}
]
}'
Modelo de retorno:
{
"createdDate": "2022-02-24T10:47:00.42",
"statusId": 2,
"statusDescription": "Pendente ativacao",
"subscriptionId": 15369,
"utilityId": 9214,
"externalTerminal": "teste033939",
"documentType": "cpf",
"externalNSU": 12349832173712,
"automaticPayment": true,
"document": "08160149069"
}
Estrutura do retorno:
Campo | Tipo | Descrição |
---|---|---|
utilityId | integer | Identificador do convênio |
externalTerminal | string | Identificador do terminal externo. Para controle externo |
externalNSU | integer | Identificador do NSU externo. Para controle externo |
automaticPayment | boolean | Indica se o débito automático está habilitado |
document | string | CPF/CNPJ sem pontos ou traços |
documentType | string | Identifica o tipo do documento [CPF or CNPJ] |
utilityInputId | integer | Dado de entrada identificador do convênio |
input | string | Valor do dado de entrada (Identificador da conta do cliente) |
Ao receber essa requisição a Celcoin irá validar: se o convênio está correto, o padrão da requisição e se existe uma adesão já cadastrada com o código enviado dentro da nossa base.
Depois de realizadas essas validações, se tudo estiver como esperado, vamos retornar o status HTTP 200, o id da subscrição (adesão) e o status da adesão (statusDescription) como “Pendente ativacao”, pois vamos tentar realizar a configuração desse débito automático no convênio
Recomendamos que seja persistido na base de dados do seu aplicativo o subscriptionsId, gerado nessa chamada, pois, uma vez que processado o cadastro do débito automático, será necessário ter esse id para consultar o histórico dessa adesão.
A ativação da adesão depende do retorno do convênio. O prazo para esse retorno é de 180 dias, após isso a adesão é cancelada por falta de resposta. Para saber a situação da adesão é disponibilizado para sua aplicação via gatilho (DA_SUBSCRIPTION_STATUS), que informará o status.
OBS: esse evento pode ser simulado em ambiente de teste.
Modelo de gatilho:
{
"event":"DA_SUBSCRIPTION_STATUS",
"subscription":{
"subscriptionId": 309,
"statusId": 1,
"statusDescription":"Ativo",
"externalTerminal":"+05649318700",
"utility":{
"utilityId":9212,
"description":"CLARO SP DDD 11"
}
}
}
Se o convênio recusar a adesão criada, a Celcoin irá retornar o status igual a Cancelado.
Status da adesão
A adesão pode ter os seguintes status:
- Pendente ativacao = sempre que uma adesão é criada retorna esse status até que o convênio avise que a adesão foi ativada ou cancelada, ou até que tenha atingido o prazo máximo de espera que é de 180 dias. Após esse prazo sem retorno do convênio, a adesão é cancelada.
- Ativa = quando o convênio aceita e envia um débito para ativação da adesão.
- Cancelada = pode ocorrer quando o convênio não retornou sobre a ativação no prazo de 180 dias, quando o convênio retornou e enviou o cancelamento ou quando é feita uma solicitação de cancelamento para a desão por parte do cliente.
- Inativa = ocorre quando a adesão está ativa e o convênio não envia nenhum débito pelo prazo de 180 dias. Pós esse prazo a adesão é inativada. Esse status não cancela a adesão, caso o convênio envie um novo débito quando a adesão estiver inativa, isso fará com que a adesão volte a ser ativada novamente.
O convênio retornando um débito com valor, por exemplo R$ 50,00, também vamos retornar o status Ativo. Fora isso, será disparado outro gatilho (DA_INVOICE_WARNING), informando que existe um novo débito e sua data de vencimento.
Dessa forma, ao receber esses eventos é possível que seu sistema notifique ou atualize esse usuário com o ocorrido.
Modelo de gatilho:
{
"event":"DA_INVOICE_WARNING",
"invoiceId":10,
"barCode":"8486000000050260122020022811311142000061123",
"dueDate":"2020-02-28",
"amount": 50.26,
"subscription":{
"subscriptionId": 309,
"externalTerminal":"+05649318700",
"utility":{
"utilityId":9212,
"description":"CLARO SP DDD 11"
}
}
}
OBS: esse evento pode ser simulado em ambiente de teste.
Confirmar ou recusar o pagamento de um débito
Recomendamos armazenar o invoiceId e duedate, pois no dia do vencimento do débito deve ser realizada sua confirmação ou negação, utilizando nossa API PATCH Confirmar ou recusar o pagamento.
Modelo de request:
curl --location --request PATCH 'https://sandbox.openfinance.celcoin.dev/eda/v1/invoices' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '[
{
"pay": true,
"invoiceId": 98754,
"externalNSU": "100393567"
}
]'
Note que deve ser enviado a propriedade pay igual true quando necessário realizar a confirmação do débito e false quando for realizado o cancelamento, nesse caso deve ser preenchido a propriedade cancelationReason, com motivo, podendo ser:
- SEM_CONTRATO_DA
- CLIENTE_NAO_ENCONTRADO
- DEBITO_FORA_DO_TEMPO_HABIL
- SOLICITACAO_CLIENTE
- OUTRAS_RESTRICOES
- SALDO_INSUFICIENTE
Modelo de retorno:
[
{
"invoiceId": 98754,
"result": 1
}
]
Note que é retornado a propriedade result, ela deve ser usada para notificar seu usuário de acordo com as seguinte variações:
1: Indicador de sucesso;
2: Identificador do débito inválido (invoiceId);
3: Data fora do vencimento do débito;
4: Pagamento já processado;
5: Janela de recebimento de confirmação/cancelamento de débitos já está fechada;
6: Sem fundos para realizar o débito;
7: Razão de cancelamento de débito não preenchida ou inválida;
99: Erro desconhecido durante o processamento.
O pagamento do débito pode ocorrer com sucesso ou ser rejeitado. Em caso de sucesso será disparado um webhook com o evento DA_AUTOMATIC_PAYMENT_SUCESS com os seguintes dados:
[
{
"amount": 39.99,
"companyName": "0000047315146520878202449",
"dueDate": "2022-06-15",
"event": "DA_AUTOMATIC_PAYMENT_SUCCESS",
"externalHash": "1024235715",
"invoiceId": 203399,
"subscription": {
"document": "04552929305",
"externalNSU": 167467809,
"externalTerminal": "8297280",
"subscriptionId": 116017,
"utility": {
"description": "TIM CELULAR - 0109",
"liquidanteId": 46,
"utilityId": 14893,
"utilityNumber": "8460109"
}
}
}
]
OBS: esse evento não pode ser simulado em ambiente de teste.
Caso o pagamento falhe e não seja efetuado, será disparado um webhook com o evento DA_AUTOMATIC_PAYMENT_ERROR com as seguintes informações:
[
{
"amount": 269.02,
"companyName": "980041118600317820220606",
"dueDate": "2022-06-13",
"event": "DA_AUTOMATIC_PAYMENT_ERROR",
"externalHash": "1020804792",
"invoiceId": 200142,
"subscription": {
"document": "25759139851",
"externalNSU": 1064905,
"externalTerminal": "36c8fd74-43f6-45fa-9d67-c8952a62e93e",
"subscriptionId": 78986,
"utility": {
"description": "EDP BANDEIRANTES SP",
"liquidanteId": 46,
"utilityId": 15026,
"utilityNumber": "8360073"
}
}
}
]
OBS: esse evento não pode ser simulado em ambiente de teste.
Cancelamento Adesão
Caso de uso:
Como Fintech quero disponibilizar para os meus usuários a possibilidade de cancelar débitos automáticos para diversos convênios passando algumas informações com objetivo de facilitar a vida do meu usuário.
- Cancelar adesões de um usuário
Uma vez que um usuário desejar realizar o cancelamento da adesão em seu sistema ou aplicativo, deve ser realizado um DELETE na API Deletar uma adesão, passando o id da subscrição que foi criada anteriormente.
Lembrando que os débitos futuros associados a adesão que teve a solicitação de cancelamento, serão cancelados também.
Modelo de request:
curl --location --request DELETE 'https://sandbox.openfinance.celcoin.dev/eda/v1/utilities/subscriptions/3684' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access_token}'
Modelo de response:
"Adesão excluída com sucesso."
Note que o retorno é uma string e também pode ter as seguintes variações:
"Adesão já foi excluída."
“adesaoId, subscriptionId inexistente para o serviço de Débito Automático."
"Erro interno".
Após receber esse retorno, basta notificar o usuário da sua aplicação
Consultar débitos que estão para vencer
Pensando em momento de indisponibilidade do webhook, ou para desenvolvimento de medidas preditivas do lado da sua aplicação para o débito automático, criamos a API Buscar débitos a partir da data de vencimento, com ela é possível consultar todos os débitos que estão em aberto e vão vencer em uma determinada data.
Modelo de request:
curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/eda/v1/invoices/duedate?data=2022-02-25' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access_token}'
Modelo de retorno:
{
"result": {
"invoicesCount": 1,
"invoices": [
{
"invoiceId": 139305,
"amount": 15.01,
"dueDate": "2022-02-25T00:00:00",
"receivedDate": "2022-02-23T00:00:00",
"status": "Pendente",
"externalHash": null,
"authentication": null,
"subscription": {
"subscriptionId": 15364,
"status": "Ativo",
"externalTerminal": "teste-do-luan-22",
"utilityCode": "8460305",
"utilityId": 9214,
"segmentName": "TELECOMUNICAÇÕES"
}
}
]
}
}
Note que no response é retornado na propriedade dueDate a data de vencimento do débito, desta forma, é possível que seja executado o processo de aprovação ou negação do pagamento do débito utilizando a API PATCH Confirmar ou recusar o pagamento que explicamos anteriormente nesse artigo.
Essa API geralmente é usada para validar os débitos que estão prestes a vencer, foram vencidos ou estão para vencer em breve.
Consultar ocorrências
As vezes quando enviamos uma adesão para o convênio ela é rejeitada por algum motivo. Pensando também na indisponibilidade do webhook, criamos essa API de consulta Listar ocorrências por data, onde passando uma data para busca de atualizações para obter o retorno de todas as ocorrências que foram rejeitadas em um determinado dia.
Modelo de request:
curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/eda/v1/utilities/subscriptions/occurrence?data=2022-01-21' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access_token}'
Modelo de retorno:
[
{
"subscriptionId": "78548",
"utilityCode": "854623",
"clientIdentification": "00015485485",
"rejectMessage": "Cliente não cadastrado",
"rejectCode": "OC001",
"status": "CANCELADO",
"updatedAt": "10/15/2021 00:00:00",
"ocurrenceAt": "10/15/2021 00:00:00",
"elapsedDays": "15"
}
]
Para exibir o motivo da recusa para seu usuário, ou ter conhecimento do ocorrido, pode ser usado a propriedade rejectMessage.
Consultar o histórico de uma adesão
Criamos a API Consultar histórico de adesão com objetivo de disponibilizar um dossiê das adesões. Para realizar essa consulta, basta passar o id da subscrição que foi gerado na criação da adesão.
Com essa API é possível validar quantos débitos já foram realizados para essa adesão, o que está para vencer, a data de vencimento e recebimento de cada débito, se ocorreu uma rejeição para esse débito, a data da sua última conciliação e seu status atual.
Modelo de request:
curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/eda/v1/utilities/subscriptions/15372/history' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access_token}'
Modelo de retorno:
{
"subscriptionId": 15372,
"requestedAt": "2022-02-24T10:53:35.033",
"updatedAt": "2022-02-24T10:53:35.08",
"lastConciliationAt": "2022-02-25T09:45:24.61",
"externalTerminal": "teste033939",
"status": "Ativo",
"identificationDocument": "08160149069",
"clientIdentification": "951701039",
"rejectMessage": null,
"rejectCode": null,
"utility": {
"utilityId": 9383,
"utilityCode": 8480089,
"utilityShortName": "NEXTEL TELECOMUNIC"
},
"invoice": {
"count": 1,
"invoices": [
{
"invoiceId": 139312,
"duedate": "2022-02-26T00:00:00",
"receivedAt": "2022-02-24T10:53:35.07",
"amount": 81.0800,
"status": "Pendente",
"paymentId": null,
"authentication": null
}
]
}
}
Recomendações para testes em sandbox
Nosso ambiente de sandbox não está diretamente ligado com os convênios, tentamos deixar os retornos o mais próximo possível do real, porém, existem algumas diferenças. Uma delas é o tempo de retorno do convênio, em sandbox retornamos os gatilhos segundos depois da criação da adesão, mas em ambiente produtivo esse tempo passa a aumentar, pois precisamos aguardar os retornos dos convênios para disparar os gatilhos em seu webhook.
Como configurar o envio de arquivos de movimentação via SFTP
Disponibilizamos também uma funcionalidade que envia arquivos para um SFTP com as movimentações que ocorreram no dia.
Caso o envio do arquivo das movimentações do dia seja feito via SFTP, compartilhamos abaixo o layout do arquivo de retorno de movimentação e recusa. O envio do arquivo será em d+1, no período da 1:00 ás 03:00 AM. A configuração deverá ser solicitada junto ao suporte.
O arquivo de movimentação contempla todas os débitos automáticos solicitados na API em d-1.
Movimentação:
PAGAMENTO_DA_MOV_ID + 9(4) – ID DO CLIENTE INTERNO + _NSA + (9(6) – NOTA DE DÉBITO) +
_DATA +AAAAMMDD – DATA CONTABIL DA NOTA DE DÉBITO
Exemplo:
PAGAMENTO_DA_MOV_ID0002_NSA001509_DATA20220101
Header
Nome do campo | Descrição | Obrigatório | Tamanho | Pos. Inicial | Pos. Final | Tipo |
---|---|---|---|---|---|---|
IF-COD-CORP | Código da Corporação (Será o código do cliente estabelecido pela Celcoin) | Sim | 4 | 1 | 4 | 9(4) |
IF-NUM-LOTE | Número Lote (Número de sequência do arquivo iniciando com 00001) | Sim | 5 | 5 | 9 | 9(5) |
IF-DATA-LOTE | Data (AAAAMMDD) (Data do dia que está sendo enviado o arquivo) | Sim | 8 | 10 | 17 | 9(8) |
IF-COD-ARQUIVO | Zeros | Sim | 2 | 18 | 19 | 9(2) |
IF-TIPO-REGISTRO | “HDR” – Movimentação | Sim | 3 | 20 | 22 | X(3) |
IF-NUM-CONTA | Zeros | Sim | 19 | 23 | 41 | 9(19) |
IF-TIPO-MOVTO | “MONETARIO” | Sim | 9 | 42 | 50 | X(09) |
FILLER | Brancos | Sim | 244 | 51 | 294 | x(244) |
IF-SEQ | Sequencial que indica o número do registro dentro do arquivo. O header deverá ser montado com o sequencial 000001. (Número do registro dentro do arquivo) | Sim | 6 | 295 | 300 | 9(6) |
BODY
Se Código Transação = 62 (RECEBERCONTADA)
Nome do campo | Descrição | Obrigatório | Tamanho | Pos. Inicial | Pos. Final | Tipo |
---|---|---|---|---|---|---|
IF-COD-CORP | Código da Corporação (Será o código do cliente estabelecido pela Celcoin) | Sim | 4 | 1 | 4 | 9(4) |
IF-NUM-LOTE | Número Lote (Número de sequencial do arquivo iniciando com 00001) | Sim | 5 | 5 | 9 | 9(5) |
IF-DATA-LOTE | Data (AAAAMMDD) (Data do dia que está sendo enviado o arquivo) | Sim | 8 | 10 | 17 | 9(8) |
IF-COD-ARQUIVO | Zeros | Sim | 2 | 18 | 19 | 9(2) |
IF-TIPO-REGISTRO | “MOV” – Movimentação “LIQ” – Liquidação “REC” – Recusa “PRC” – Parcial | Sim | 3 | 20 | 22 | X(3) |
IF-VALOR-TRANS | Valor da Transação | Sim | 12 | 23 | 34 | 9(9)v99 |
IF-COD-TRANS | Código da transação (Será o código estabelecido pela Celcoin). (ver Tabela 1) | Sim | 3 | 35 | 37 | 9(3) |
IF-DATA-TRANS | Data da transação (AAAAMMDD) | Sim | 8 | 38 | 45 | 9(8) |
IF-HORA-TRANS | Hora da transação (HHMMSS) | Sim | 6 | 46 | 51 | 9(6) |
IF-DESCRIÇÃO | Descrição da transação | Sim | 40 | 52 | 91 | X(40) |
IF-COD-AUTORIZ. | O protocolo gerado pelo TodaConta | Sim | 10 | 92 | 101 | 9(10) |
IF-NUM-SEQ-USUARIO | Número da Sequencial da transação do usuário | Sim | 10 | 102 | 111 | 9(10) |
IF-NUM-TERMINALEXTERNO | Número do Terminal Externo | Não | 80 | 112 | 191 | X(80) |
IF-NUM-SEQ-EXTERNO | Número da Sequencial Externo | Não | 20 | 192 | 211 | 9(20) |
IF-COD-PAGTO | Número da Forma de Pagamento (ver Tabela 2) | Não | 2 | 212 | 213 | 9(2) |
FILLER | Brancos | Sim | 32 | 214 | 245 | X(32) |
IF-SEQ | Sequencial que indica o número do registro dentro do arquivo. O header deverá ser montado com o sequencial 1. (Número do registro dentro do arquivo) | Sim | 6 | 246 | 251 | 9(6) |
Trailer
Nome do campo | Descrição | Obrigatório | Tamanho | Pos. Inicial | Pos. Final | Tipo |
---|---|---|---|---|---|---|
IF-COD-CORP | Código da Corporação (Será o código do cliente estabelecido pela Celcoin) | Sim | 4 | 1 | 4 | 9(4) |
IF-NUM-LOTE | Número Lote (Número de sequencial do arquivo iniciando com 00001) | Sim | 5 | 5 | 9 | 9(5) |
IF-DATA-LOTE | Data (AAAAMMDD) (Data do dia que está sendo enviado o arquivo) | Sim | 8 | 10 | 17 | 9(8) |
IF-COD-ARQUIVO | Zeros | Sim | 2 | 18 | 19 | 9(2) |
IF-TIPO- REGISTRO | “TLR” - Trailer | Sim | 3 | 20 | 22 | X(3) |
IF-NUMCONTA | Zeros | Sim | 19 | 23 | 41 | 9(19) |
IF-NUM-REGS | Total de registros no arquivo (a soma de todos os registros incluindo o Header e o Trailler) | Sim | 5 | 42 | 46 | 9(05) |
IF-VALORTOTAL | Valor total de todas as transações em REAL | Sim | 13 | 47 | 59 | 9(11)v99 |
FILLER | Brancos | Sim | 235 | 60 | 294 | x(235) |
IF-SEQ | Sequencial que indica o número do registro dentro do arquivo. O header deverá ser montado com o sequencial 000001 (Número do registro dentro do arquivo) | Sim | 6 | 295 | 300 | 9(6) |
Updated 4 months ago