Sobre o pagamento de contas

Essa funcionalidade permite realizar pagamentos das mais diversas modalidades, incluindo contas de água, luz, gás, telefone, internet, multas, tributos e boletos.

A Celcoin disponibiliza a API e realiza uma conexão com concessionárias e bancos liquidantes. Assim, processa as transações e traz o retorno sobre seu andamento.
Somos um grande agregador de instituições e concessionárias, concentrando a possibilidade de mais de 1.300 convênios, proporcionando comodidade para quem realiza os pagamentos, gerando economia de tempo.

Nesse artigo você irá aprender como:

  • Realizar um pagamento e sua confirmação.
  • Cancelar uma tentativa de pagamento.
  • Reverter um pagamento realizado.
  • Como seguir com o fluxo de integração quando ocorrer uma intermitência ao tentar realizar o pagamento de uma conta.
  • Consultar uma ocorrência e como é feita sua devolução.

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.

  • Obter uma massa de dados para testes contendo linhas digitáveis e ou código de barras de boletos com nosso time de CX (Customer Experience/Suporte). Para entrar em contato, por favor acesse este link indicando sua necessidade.
    Obs: Será gerado uma relação com a quantidade solicitada de linhas ou código de barras, onde extraímos dados reais, ou seja, que já foram processados em nosso ambiente de produção com objetivo de fazer os testes tornarem-se o mais próximo possível. Nessa massa de dados podemos disponibilizar linhas digitáveis de ficha de compensação e de concessionárias.

Ficha de compensação: São boletos bancários, seus dígitos iniciam sempre com o código do banco, por exemplo, no caso do Bradesco o começo da linha digitável será preenchido com o número 237.

Concessionárias: São contas de consumo, ou de órgãos governamentais, alguns exemplos de consumo, água, luz, telefone, internet, seu dígito sempre começa com o número 8 e para os órgãos governamentais como tributos, um exemplo seria o IPVA, iniciam geralmente com os dígitos 85 e 81.
Podemos enviar linhas digitáveis com valores zerados, ou com desconto, de acordo com a necessidade, basta solicitar esse cenário na massa de teste.

Caso de uso:
Como Fintech quero disponibilizar para os meus clientes a possibilidade de realizar pagamento de contas através do código de barras, ou linha digitável com objetivo de ter essa praticidade em minha plataforma e ou sistema.

Consultar os dados de uma conta (Authorize)

Em primeiro lugar é preciso se autenticar na API da Celcoin, caso tenha dúvida em como realizar esse processo indicamos a leitura do artigo Obtendo suas credenciais.

Para realizar a consulta de um pagamento, o usuário precisa informar o código de barras, ou linha digitável do pagamento que deseja realizar.

Ao receber essa informação deve ser realizada uma consulta através do método POST na api Consultar os dados de uma conta, onde a Celcoin irá validar se essa conta está registrada e irá retornar os dados desse pagamento. Para realizar essa requisição é necessário informar o barCode (código de barras), ou o digitable (código da linha digitável). Uma vez que é de conhecimento da aplicação o tipo de pagamento que o usuário está querendo pagar (ficha de compensação representada pelo número 2, ou concessionária 1), essa informação pode ser passada na propriedade type, caso não tenha essa informação, basta informar o valor 0.

Existem outras duas propriedades externalTerminal onde pode ser preenchida com uma informação externa do cliente como CPF, telefone etc e o externalNSU que pode ser preenchido com um id identificador da transação.

Modelo de request:

curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/v5/transactions/billpayments/authorize' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '{
    "externalTerminal": "Terminal de identificação externa do sistema do cliente, Ex: CPF",
    "externalNSU": 0, //Identificador da transação do sistema cliente
    "barCode": {
        "type": 2,
        "digitable": "03399853012970000135607559001016189020000020271",
        "barCode": ""
    }
}'

Modelo de response:

{
    "assignor": "BANCO SANTANDER S.A",
    "registerData": {
        "documentRecipient": "21.568.259/0001-00",
        "documentPayer": "96.906.497/0001-00",
        "payDueDate": "2022-03-22T00:00:00",
        "nextBusinessDay": null,
        "dueDateRegister": "2022-02-20T00:00:00",
        "allowChangeValue": false,
        "recipient": "BENEFICIARIO AMBIENTE HOMOLOGACAO",
        "payer": "PAGADOR AMBIENTE HOMOLOGACAO",
        "discountValue": 0.0,
        "interestValueCalculated": 0.0,
        "maxValue": 202.71,
        "minValue": 202.71,
        "fineValueCalculated": 0.0,
        "originalValue": 202.71,
        "totalUpdated": 202.71,
        "totalWithDiscount": 0.0,
        "totalWithAdditional": 0.0
    },
    "settleDate": "15/02/2022",
    "dueDate": "2022-02-20T00:00:00Z",
    "endHour": "20:00",
    "initeHour": "07:00",
    "nextSettle": "N",
    "digitable": "03399853012970000135607559001016189020000020271",
    "transactionId": 9087400,
    "type": 2,
    "value": 202.71,
    "maxValue": null,
    "minValue": null,
    "errorCode": "000",
    "message": null,
    "status": 0
}

Estrutura de dados response:

Campo

Tipo

Descrição

assignor

String (100)

Cedente do pagamento consultado

documentRecipient

String (18)

CPF ou CNPJ do beneficiário

documentPayer

String (18)

CPF ou CNPJ do pagador

payDueDate

Datetime

Data de baixa do boleto

nextBusinessDay

Datetime

Próximo dia útil

dueDateRegister

Datetime

Data de vencimento do registro

allowChangeValue

Bool

Indica que o Boleto permite alterar valor entre o range “maxValue” e “minValue”, sugerimos que caso seja retornado “True” libere que o usuário insira na efetivação (Billpayments) o valor desejado.

recipient

String (100)

Nome do beneficiário

payer

String (100)

Nome do pagador

discountValue

Double

Valor do desconto calculado

interestValueCalculated

Double

Valor juros já calculado

maxValue

Double

Valor máximo permitido para pagamento do título. Utilizado nos cenários onde o “AllowChangeValue” for “True”.

minValue

Double

Valor mínimo permitido para pagamento do título. Utilizado nos cenários onde o “AllowChangeValue” for “True”.

fineValueCalculated

Double

Valor multa já calculado

originalValue

Double

Valor nominal do título

totalUpdated

Double

Valor atualizado a ser pago do título.
Caso o campo “AllowChangeValue”
retorne “False” apenas o valor
retornado neste campo será aceito.

totalWithDiscount

Double

Valor total de descontos e abatimentos

totalWithAdditional

Double

Valor total de juros e multa

settleDate

Datetime

Informa a data em que o pagamento será enviado para liquidação

dueDate

Datetime

Retorna a data de vencimento extraída do código

endHour

String (5)

Informa a Hora corte do convênio (HH:MM)

initeHour

String (5)

Informa a Hora recebimento Inicial do convênio (HH:MM)

nextSettle

String (1)

Informa se o título será liquidado no próximo dia útil. Pode ser N ou S.

digitable

String (48)

Define a linha digitável consultada

transactionId

Int

Protocolo de identificação da operação

type

Int

Tipo de conta que está realizando a consulta

value

Double

Valor extraído do código

errorCode

String (3)

Define o código status da operação

message

String (100)

Informa descrição do erro

status

String (30)

Define o status da operação

Note que no retorno é possível validar diversas informações sendo elas:

A categoria do pagamento é definida na propriedade type sendo, "1" para Concessionarias/Tributos e "2" para fichas de compensação. Nas consultas para fichas de compensação realizaremos a consulta CIP, retornando no agrupamento registerData todas as informações atualizadas. Para Concessionárias/Tributos extraímos as informações da linha digitável, sendo assim o mencionado agrupamento registerData não é retornado.

Para consultas de fichas de compensação, retornamos o valor atualizado para o pagamento no campo "totalUpdated". Apenas nas consultas onde o "AllowChangeValue" for true, será possível efetivar o pagamento com um valor diferente do retornado no totalUpdated, lembrando que é necessário respeitar o intervalo máximo(maxValue) e mínimo(minValue).

Disponibilizamos o intervalo que esse pagamento pode ser processado através nas propriedades initeHour e EndHour, desta forma é possível validar qual é a hora inicial e final do processamento do pagamento. Caso seja realizado a tentativa de pagamento fora desse horário de corte o pagamento será postergado para o próximo dia útil.

É possível validar a data em que será realizada a liquidação do boleto através da propriedade settleDate. Também pode ser validado se o título será, ou não liquidado no o dia, através da propriedade nextSettle, onde S mostra que será liquidado no próximo dia útil e N que a liquidação será no mesmo dia. As vezes em ambiente de sandbox, pode ser que a propriedade settleDate seja populada como null, então recomendamos que seja realizado um tratamento para esse cenário do lado da sua aplicação, ou seja ela entenda que uma vez que populado com N a data de liquidação será no dia da confirmação do pagamento.

O transactionId é o id da transação que foi criada para esse pagamento.

O documentPayer é o documento do pagador e o value é o valor do pagamento com descontos ou juros.

Para alguns convênios de concessionária, não será possível realizar a extração da data de
vencimento por meio da linha digitável, por isso, pedimos que no momento da efetivação
(billpayments) seja enviada a data em que está sendo realizado tal pagamento. Em ambiente de homologação a data de vencimento é mockada para qualquer convênio de concessionária, por isso retornará sempre vazia.

OBS:

  • Para contas do tipo 1 (concessionárias/tributos), é necessário considerar sempre o atributo "dueDate", o qual refere-se a data de vencimento extraída na linha digitável do registro;
  • Para contas do tipo 2 (ficha de compensação), é necessário considerar sempre o atributo "registerData.dueDateRegister", o qual refere-se a data de vencimento recuperada na consulta junto a CIP (Câmara Interbancária de Pagamentos).

Reservar saldo para efetuar o pagamento de uma conta (billpayments)

Em seguida, a aplicação deverá executar a efetivação junto a API da Celcoin através do POST na api Reservar saldo para efetuar o pagamento de uma conta, para criar a transação de pagamento e retirada do saldo da conta bolsão.

Modelo de request:

Modelo de request:
curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/v5/transactions/billpayments' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '{
  "externalNSU": 1234, //Identificador Transação Externo
  "externalTerminal": "t2", //Identificador Cliente Externo
  "cpfcnpj": "51680002000100", //cpf/CNPJ do pagador
  "billData": {
    "value": 202.71,
    "originalValue": 202.71,
    "valueWithDiscount": 0,
    "valueWithAdditional": 0
  },
  "barCode": {
    "type": 2, //1-Concessionária, 2-Ficha de compensação
    "digitable": "03399853012970000135607559001016189020000020271",
    "barCode": ""
  },
  "dueDate": "2022-02-20T00:00:00.0000000-00:00",
  "transactionIdAuthorize": 9087400 //Id consulta gerado no authorize
}'

Modelo de response:

{
    "convenant": "BANCO VOTORANTIM",
    "isExpired": false,
    "authentication": 2604,
    "authenticationAPI": {
        "Bloco1": "FB.DF.50.98.3E.AD.70.4F",
        "Bloco2": "53.41.A2.9D.06.9E.C1.59",
        "BlocoCompleto": "FB.DF.50.98.3E.AD.70.4F.53.41.A2.9D.06.9E.C1.59"
    },
    "receipt": {
        "receiptData": "",
        "receiptformatted": "        AMBIENTE DE HOMOLOGACAO\r\n          PROTOCOLO 0009087426\r\n1          15/02/2022        16:50\r\nTERM 228005 AGENTE 228005 AUTE 02604\r\n----------------------------------------\r\nAUTO 846644           RECEBIMENTO CONTA\r\n                    \r\n          BANCO SANTANDER S.A\r\n        03399.85301  29700.001356      \r\n       07559.001016  1 89020000020271\r\n\r\nBENEF:   BENEFICIARIO AMBIENTE HOMOLOGA\r\nCPF/CNPJ:            21.568.259/0001-00\r\nPAGADOR:   PAGADOR AMBIENTE HOMOLOGACAO\r\nCPF/CNPJ:            96.906.497/0001-00\r\n----------------------------------------\r\nDATA DE VENCIMENTO           20/02/2022\r\nDATA DO PAGAMENTO            15/02/2022\r\nDATA DE LIQUIDACAO           15/02/2022\r\nVALOR TITULO                     202,71\r\nVALOR COBRADO                    202,71\r\n<VIA1>\r\n \r\nVALIDO COMO RECIBO DE PAGAMENTO\r\n----------------------------------------\r\nAUTENTICACAO\r\nFB.DF.50.98.3E.AD.70.4F\r\n53.41.A2.9D.06.9E.C1.59\r\n</VIA1>----------------------------------------\r\n<VIA1> \r\nCONSULTE A AUTENTICA??O EM:\r\nCELCOIN.COM.BR/AUTENTICACAO\r\n</VIA1>\r\n"
    },
    "settleDate": "2022-02-15T00:00:00",
    "createDate": "2022-02-15T16:50:04",
    "transactionId": 9087426,
    "Urlreceipt": null,
    "errorCode": "000",
    "message": null,
    "status": 0
}

Estrutura de dados response:

Campo

Tipo

Descrição

isExpired

Bool

Define se o pagamento está vencido

authentication

String(23)

Retorna o primeiro bloco da autenticação da API

authenticationAPI

String(23)

Retorna o segundo bloco da
autenticação da API

receiptformatted

String

Retorna o comprovante da API

settleDate

Datetime

Retorna a data que o pagamento será liquidado

createDate

Datetime

Retorna a data que o pagamento foi realizado

transactionId

Int

Retorna o protocoloID do pagamento

nextSettle

String(1)

Informa se o título será liquidado no próximo dia útil

errorCode

String(3)

Define o código status da operação

message

String(100)

Informa descrição do erro

status

String(30)

Define o status da operação

Onde deve ser consumido as informações retornadas da api da Celcoin e apresentar para o usuário confirmar a veracidade do pagamento.

Confirmar o pagamento de uma conta

Após criar a transação, deve ser realizada a confirmação do pagamento através do PUT na api Confirmar o pagamento de uma conta, onde será realizado de fato a liquidação do pagamento.

É importante ressaltar que caso essa chamada não seja executada em até 30 minutos após a chamada de efetivação, o valor retirado da conta bolsão é estornado para a conta do cliente Celcoin.

Modelo de request:

curl --location --request PUT 'https://sandbox.openfinance.celcoin.dev/v5/transactions/billpayments/9087426/capture' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw '{
  "externalNSU": 1234,
  "externalTerminal": "testevaldir2"
}'

Modelo de response:

{
    "errorCode": "000",
    "message": "SUCESSO",
    "status": 0
}

Estrutura de dados response:

CampoTipoDescrição
errorCodeString(3)Define o código status da operação
messageString(100)Informa descrição do erro
statusString(30)Define o status da operação

Após receber esse retorno deve ser apresentado para o usuário que o pagamento foi realizado com sucesso.

Criamos um protótipo no figma para exemplificar esse processo.

Período de liquidação dos pagamentos:

A Celcoin aceita pagamentos 24(horas) por 7(dias), então todos os pagamentos enviados serão processados, porém cada tipo de conta tem seu horário de compensação, para ficha de compensação será enviado pela Celcoin os pagamentos dentre as 7h da manhã até 8h da noite, porém para concessionária esse horário pode variar de acordo com cada uma.

Estornar uma transação de pagamento de contas efetuada

A Celcoin segue um horário definido pelos convênios para realizar o pagamento das contas, porém uma vez que o pagamento não foi liberado para liquidação, ou seja, foi realizado uma solicitação de pagamento em um período diferente da hora de recebimento e corte definido pelo convênio, é possível cancelar essa operação.
Caso exista esse cenário para o seu modelo de negócio, basta realizar a requisição que vamos detalhar a seguir, desta forma, o dinheiro que foi retirado para pagar a conta, retornará ao saldo da sua conta bolsão Celcoin.

Atualmente todas as linhas digitáveis aceitam esse tipo de cancelamento após a aprovação de uma normativa do BACEN.

🚧

Atenção!

Essa requisição só pode ser utilizado após uma transação ter sido confirmada com sucesso!
Além disso, para fichas de compensação funcionará apenas fora da janela de liquidação (exemplo: 20h até as 7h)

Para seguir com o estorno, basta realizar um POST na api Estornar uma transação de pagamento de contas efetuada, informando o transactionId na url da requisição para Celcoin identificar qual transação deve ser cancelada.

Modelo de request:

curl --location --request DELETE 'https://sandbox.openfinance.celcoin.dev/v5/transactions/billpayments/9117792/reverse' \
--header 'Authorization: Bearer {access_token}

Modelo de retorno:

{
  "errorCode": "000",
  "message": "Pedido de estorno registrado com sucesso.",
  "status": "0"
}

É importante ressaltar que esse processo só irá funcionar se a confirmação da transação ocorrer depois do horário permitido para liquidação e se essa requisição ocorrer dentro do período no qual o pagamento não foi liquidado.

Fluxo de integração quando ocorre uma intermitência ao tentar realizar o pagamento de uma conta

Consultar informações de um pagamento

Basicamente uma vez que ocorrer uma intermitência ao tentar realizar a chamada api Confirma a transação de pagamento de contas efetuada, ou seja, nossa api retorna que ocorreu um erro inesperado, deve ser realizado um GET na api Consultar informações de uma transação, passando um dos paramêtros abaixo;

  • transactionId (Id único gerado pela Celcoin para a transação)
  • externalNSU (Identificador da transação do sistema se integrando a Celcoin)
  • externalTerminal (Terminal de identificação externa do sistema integrando a Celcoin)
  • operationDate (Data da operação)

Onde será retornado o status da transação, podendo ser pendente, ou sucesso.
No caso de sucesso, deve ser retornado ao usuário final que o pagamento ocorreu como esperado, agora se o status estiver pendente, deve ser realizado novamente a chamada de Confirmar o pagamento de uma conta para que a liquidação ocorra com sucesso.

Modelo de request:

curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/v5/transactions/status-consult?transactionId=9087426' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {access_token}' \
--data-raw ''

Modelo de retorno:

{
  "transaction": {
    "authentication": 6088,
    "errorCode": "000",
    "createDate": "2021-06-24T17:48:08",
    "message": "SUCESSO",
    "externalNSU": 1234,
    "transactionId": "7097995",
    "status": 0,
    "externalTerminal": "11122233344"
  },
  "erroCode": "000",
  "message": "SUCESSO",
  "status": "0"
}

A propriedade status retorna o status da consulta podendo ser preenchida com os seguintes valores:

0 - para "SUCESSO" – sinaliza que a confirmação foi enviada e o pagamento será liquidado.

4 - para "ESPERANDO_CONFIRMAÇÃO_CLIENTE" – sinaliza que não houve a confirmação (capture). Nesses casos aguardamos o recebimento da confirmação por até 30 minutos, após isso a mesma será cancelada automaticamente pelo circuit breaker.

6 - PENDENTE_DESFAZIMENTO_AUTORIZADOR - Sinaliza que a transação entrou no nosso processo interno de desfazimento e vai passar para o próximo status

1 - para "DESFEITO_AUTORIZADOR" – sinaliza que a transação foi cancelada. Possíveis motivos como: falta de confirmação onde finaliza após 30 minutos ou o envio de uma confirmação negativa (void).

Consultar Ocorrências

Às vezes ao realizar o pagamento de uma conta o beneficiário, entidade final que está recebendo o dinheiro, rejeita um ou alguns pagamentos, nesses casos a Celcoin ao identificar essa situação, devolve o dinheiro na conta bolsão para o seu cliente e disponibiliza os pagamentos que foram rejeitados em uma api GET chamada Consultar ocorrências de um pagamento, desta forma é possível criar uma rotina de busca nessa api filtrando por data inicial e final, para saber quais pagamentos foram rejeitados em um determinado range de tempo.

Modelo de request:

curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/v5/transactions/occurrency?DataInicio=2021-06-24T23:00:00&DataFim=2021-06-26T23:00:00' \
--header 'Authorization: Bearer {access_token}'

Modelo de retorno:

{
  "occurrences": {
    "date": "2021-06-24T19:03:43",
    "createDate": "2021-06-24T15:54:14",
    "descriptionMotivo": "Recusado pelo beneficiário",
    "externalNSU": 1234,
    "transactionId": 7061967,
    "externalTerminal": "11122233344",
    "linhaDigitavel": "34191090080012213037050059980008586260000065000 ",
    "value": "20"
  }
}

Consultar de convênios disponíveis

Para que os nossos cliente saibam quais são os convênios disponíveis para realizar o pagamento de contas, criamos a API de consulta Obtenha a lista de convênios.

Modelo de request:

curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/v5/transactions/institutions' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access_token}'

Modelo de retorno:

{
    "convenants": [
        {
            "timeLimit": "19:00",
            "mask": "83______________0221____________________________",
            "Nomeconvenant": "CONSIGAZ - SP"
        },
        {
            "timeLimit": "16:00",
            "mask": "87______________3466____________________________",
            "Nomeconvenant": "Minas Gerais Multa"
        },
        {
            "timeLimit": "19:00",
            "mask": "82______________1699____________________________",
            "Nomeconvenant": "AGUAS DO RIO 4  RJ"
        }
    ],
    "errorCode": "000",
    "message": "SUCESSO",
    "status": 0
}

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 pagamentos de conta solicitadas na API em d-1.

O arquivo de recusa contempla todas os pagamentos de conta devolvidos na compensação em d-1.

Movimentação:
MOVIMENTACAO_ID + 9(4) – ID DO CLIENTE INTERNO + _NSA + (9(6) – NOTA DE DÉBITO) + _DATA +
AAAAMMDD – DATA CONTABIL DA NOTA DE DÉBITO

Exemplo:
MOVIMENTACAO_ID0002_NSA001494_DATA20160901

Recusa:
RECUSA_MOVIMENTACAO_ID + 9(4) – ID DO CLIENTE INTERNO + _NSA + (9(6) – NOTA DE DÉBITO) +
_DATA +AAAAMMDD – DATA CONTABIL DA NOTA DE DÉBITO

Exemplo:
RECUSA_MOVIMENTACAO_ID0002_NSA001495_DATA20160901

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 = 1 (RECEBERCONTA)

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

50

112

161

X(50)

IF-NUM-SEQ-EXTERNO

Número da Sequencial Externo

Não

20

162

181

9(20)

IF-COD-PAGTO

Número da Forma de
Pagamento (ver Tabela 2)

Não

2

182

183

9(2)

IF-NUM-CARTÃO

Número do cartão que
efetuou a transação

Não

19

184

202

9(19)

IF-QTDE-PARCELAS

Quantidade de parcelas

Não

2

203

204

9(2)

IF-NSU_AUTORIZADORA

NSU da Autorização online do
Pagamento com cartão

Não

10

205

214

9(10)

IF-LD

Linha Digitável

Não

48

215

262

9(48)

FILLER

Brancos

Sim

32

263

294

X(32)

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)

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?