github.com/mundipagg/boleto-api@v0.0.0-20230620145841-3f9ec742599f/itau/request.go (about)

     1  package itau
     2  
     3  const registerItau = `
     4  ## Accept: application/vnd.itau
     5  ## access_token: {{.Authentication.AuthorizationToken}}
     6  ## itau-chave: {{.Authentication.AccessKey}}
     7  ## identificador: {{.Recipient.Document.Number}}
     8  ## Content-Type: application/json
     9  
    10  {
    11      "tipo_ambiente": {{itauEnv}},
    12      "tipo_registro": 1,
    13      "tipo_cobranca": 1,
    14      "tipo_produto": "00006",
    15      "subproduto": "00008",
    16      "beneficiario": {
    17          "cpf_cnpj_beneficiario": "{{extractNumbers .Recipient.Document.Number}}",
    18          "agencia_beneficiario": "{{padLeft .Agreement.Agency "0" 4}}",
    19          "conta_beneficiario": "{{padLeft .Agreement.Account "0" 7}}",
    20          "digito_verificador_conta_beneficiario": "{{.Agreement.AccountDigit}}"
    21      },
    22      "identificador_titulo_empresa": "{{unescapeHtmlString (truncate .Recipient.Name 25)}}",
    23      "uso_banco": "",
    24      "titulo_aceite": "S",
    25      "pagador": {
    26          "cpf_cnpj_pagador": "{{extractNumbers .Buyer.Document.Number}}",
    27          "nome_pagador": "{{unescapeHtmlString (truncateOnly (onlyAlphabetics (onlyOneSpace .Buyer.Name)) 30)}}",
    28          "logradouro_pagador": "{{unescapeHtmlString ( escapeStringOnJson (truncate (onlyOneSpace (concat .Buyer.Address.Street " " .Buyer.Address.Number " " .Buyer.Address.Complement)) 40)) }}",        
    29          "bairro_pagador": "{{unescapeHtmlString ( escapeStringOnJson (truncate (onlyOneSpace .Buyer.Address.District) 15))}}",
    30          "cidade_pagador": "{{unescapeHtmlString ( escapeStringOnJson (truncate (onlyOneSpace .Buyer.Address.City) 20))}}",
    31          "uf_pagador": "{{truncate (removeAllSpaces .Buyer.Address.StateCode) 2}}",
    32          "cep_pagador": "{{escapeStringOnJson (truncate (extractNumbers .Buyer.Address.ZipCode) 8)}}",
    33          "grupo_email_pagador": [
    34              {
    35                  "email_pagador": ""
    36              }
    37          ]
    38      },
    39      "tipo_carteira_titulo": "{{.Agreement.Wallet}}",
    40      "moeda": {
    41          "codigo_moeda_cnab": "09",
    42          "quantidade_moeda": ""
    43      },
    44      "nosso_numero": "{{padLeft (toString .Title.OurNumber) "0" 8}}",
    45      "digito_verificador_nosso_numero": "{{mod10ItauDv (padLeft (toString .Title.OurNumber) "0" 8) (padLeft .Agreement.Agency "0" 4) (padLeft .Agreement.Account "0" 7) .Agreement.Wallet}}",
    46      "codigo_barras": "",
    47      "data_vencimento": "{{enDate .Title.ExpireDateTime "-"}}",
    48      "valor_cobrado": "{{padLeft (toString64 .Title.AmountInCents) "0" 16}}",
    49      "seu_numero": "{{padLeft .Title.DocumentNumber "0" 10}}",
    50      "especie": "{{ .Title.BoletoTypeCode}}",
    51      "data_emissao": "{{enDate (today) "-"}}",    
    52      "tipo_pagamento": 1,
    53      "indicador_pagamento_parcial": "false",
    54      "quantidade_pagamento_parcial": "0",
    55      "quantidade_parcelas": "0",
    56      "instrucao_cobranca_1": "",
    57      "quantidade_dias_1": "",
    58      "data_instrucao_1": "",
    59      "instrucao_cobranca_2": "",
    60      "quantidade_dias_2": "",
    61      "data_instrucao_2": "",
    62      "instrucao_cobranca_3": "",
    63      "quantidade_dias_3": "",
    64      "data_instrucao_3": "",
    65      "valor_abatimento": "",
    66      "juros": {
    67          "data_juros": "",
    68          "tipo_juros": 5,
    69          "valor_juros": "",
    70          "percentual_juros": ""
    71      },
    72      "multa": {
    73          "data_multa": "",
    74          "tipo_multa": 3,
    75          "valor_multa": "",
    76          "percentual_multa": ""
    77      },    
    78      "grupo_desconto": [{
    79          "data_desconto": "",
    80          "tipo_desconto": 0,
    81          "valor_desconto": "",
    82          "percentual_desconto": ""
    83      }],    
    84      "recebimento_divergente": {
    85          "tipo_autorizacao_recebimento": "3",
    86          "tipo_valor_percentual_recebimento": "",
    87          "valor_minimo_recebimento": "",
    88          "percentual_minimo_recebimento": "",
    89          "valor_maximo_recebimento": "",
    90          "percentual_maximo_recebimento": ""
    91      },
    92      "grupo_rateio": []
    93  }
    94  
    95  `
    96  
    97  const itauGetTicketRequest = `## Authorization:Basic {{base64 (concat .Authentication.Username ":" .Authentication.Password)}}
    98  ## Content-Type: application/x-www-form-urlencoded
    99  scope=readonly&grant_type=client_credentials&clientId={{.Authentication.Username}}&clientSecret={{.Authentication.Password}}`
   100  
   101  const ticketResponse = `{
   102      "codigo":"{{errorCode}}",
   103      "mensagem":"{{errorMessage}}",
   104      "access_token": "{{access_token}}",
   105      "Message":"{{errorMessage}}"
   106  }`
   107  
   108  const ticketErrorResponse = `{
   109      "Message":"{{errorMessage}}"
   110  }`
   111  
   112  func getRequestTicket() string {
   113  	return itauGetTicketRequest
   114  }
   115  
   116  func getTicketResponse() string {
   117  	return ticketResponse
   118  }
   119  
   120  func getTicketErrorResponse() string {
   121  	return ticketErrorResponse
   122  }
   123  
   124  func getRequestItau() string {
   125  	return registerItau
   126  }