Sobre a API de Débito Automático

O que é débito automático?

Uma das possibilidades de se pagar contas recorrentes é por meio do débito automático em conta, também conhecido como DA.

Com ele é possível realizar o pagamento de algumas contas essenciais (água, telefone, energia, internet), faturas do cartão de crédito e até mesmo mensalidades referentes à educação.

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.

Como funciona o débito automático na prática?

De forma simples, caso o usuário opte por pagar uma conta com débito automático, ela sempre será programada para ser executada 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.

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, Nextel, Vivo, TIM, Oi, SABESP entre outras.

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.

Agora que já sabe algumas coisas vamos para um Caso de Uso:

Como Fintech quero disponibilizar para os meus usuários a possibilidade de configurar débitos automáticos para diversos convênios passando algumas informações com objetivo de disponibilizar praticidade e mais um método de pagamento em meu aplicativo e ou plataforma.

Configuração e cobrança com Débito automático

Configuração um Webhook para receber informações sobre os débitos automáticos

Para conseguir receber da Celcoin os débitos que devem ser realizados para as contas de seus usuários é necessário realizar a configuração de um webhook.

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.

Consultar os convênios disponíveis para configuração e uso do débito automático

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 disponíveis para uso, 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.

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.

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. Desta forma, sua aplicação, de forma rápida, poderá apresentar os convênios disponíveis para uso ao usuário final.

Estrutura do response:

CampoTipoDescrição
utilityIdintegerIdentificador do convênio
namestringNome completo do convênio
shortNamestringNome abreviado do convênio
utilityCodestringCódigo do convênio
diasAtivacaointegerRepresenta a média de dias corridos que o convênio demora para responder a atualização da adesão ou do primeiro débito
diasOcorrenciaintegerRepresenta 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
febrabanCodestringCódigo Febraban do convênio
subscriptionRoleIdentificationstringRegra de identificador de optante (Sem Regra, somente números, números e letras)
validationRulestringRegra de validação do código identificador do convênio
utilityInputIdintegerDado de entrada identificador do convênio
placeHolderstringDescrição dos dados de entrada
minLengthintegerTamanho mínimo para os dados de entrada
maxLengthintegerTamanho máximo para os dados de entrada
dataTypestringDescrição do tipo da data
descriptionstringDescrição
idintegerCódigo do segmento
namestringNome 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.

Criar uma adesão de um convênio para um usuário

Em seguida deve ser realizado a criação de uma adesão utilizando a API Cria uma adesão de um convênio. 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, 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:

CampoTipoDescrição
utilityIdintegerIdentificador do convênio
externalTerminalstringIdentificador do terminal externo. Para controle externo
externalNSUintegerIdentificador do NSU externo. Para controle externo
automaticPaymentbooleanIndica se o débito automático está habilitado
documentstringCPF/CNPJ sem pontos ou traços
documentTypestringIdentifica o tipo do documento [CPF or CNPJ]
utilityInputIdintegerDado de entrada identificador do convênio
inputstringValor 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 status da adesão (statusDescription) como “Pendente ativacao”, pois vamos tentar realizar a configuração desse débito automático no convênio, e o id da subscrição que vamos criar para essa adesão.

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 partir desse momento existe um gap de tempo para recebermos do convênio um informativo, disponibilizado para sua aplicação via gatilho (DA_SUBSCRIPTION_STATUS), que informará o status da assinatura que foi criada para a adesão.

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.

Caso o convênio nos envie um débito sem valor(zerado), enviaremos nesta notificação o status igual a Ativo.

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"
        }
    }
}

Confirmar ou recusar o pagamento de uma fatura em débito automático

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"
            }
        }
    }
]

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"
            }
        }
    }
]

Fluxo de cancelamento de uma 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 de um débito automático 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 desse 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 rejeitadas em uma 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 de uma 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)


Did this page help you?