Assinatura Eletrônica
Histórico de modificações da APIAPI para comunicação dos eventos de assinatura eletrônica.
Comunicação assinatura
Informa uma assinatura eletrônica realizada pelo cliente na plataforma do parceiro.
ExperimenteSolicitar URL
Cabeçalhos de solicitação
integer
Código da empresa preenchido a esquerda com zeros. Ex: 0514.
(opcional)
string
Tipo de mídia do corpo enviado para a API.
string
A chave de API atribuída a um indivíduo para acessar a API. Você pode encontrar a chave de API em sua conta.
Corpo da solicitação
{
"linhaDeNegocio": "VIDA",
"tipoDocumento": "PROPOSTA",
"tipoAssinatura": "HASH",
"idDocumento": "112233445566778900",
"hash": "34U33B687F345SDDS4568",
"data": "2020-04-07T10:03:55.0000000+00:00",
"enderecoIP": "200.131.2.12",
"responsavel": {
"cpf": "69668613082",
"nome": "Fulano de Tal",
"email": "fulano.tal@email.com.br"
},
"usuario": {
"login": "beltrano",
"email": "beltrano@email.com.br"
}
}
{
"required": [
"data",
"enderecoIP",
"hash",
"idDocumento",
"linhaDeNegocio",
"responsavel",
"tipoDocumento",
"tipoAssinatura",
"usuario"
],
"type": "object",
"properties": {
"linhaDeNegocio": {
"enum": [
"VIDA"
],
"type": "string",
"description": "Indicador da linha de negócio"
},
"tipoDocumento": {
"enum": [
"PROPOSTA"
],
"type": "string",
"description": "Tipo do documento."
},
"tipoAssinatura": {
"enum": [
"HASH"
],
"type": "string",
"description": "Tipo de assinatura."
},
"idDocumento": {
"type": "string",
"description": "Identificador do documento."
},
"hash": {
"type": "string",
"description": "Código gerado na plataforma do parceiro pela função de hash. O hash deve garantir a autenticidade e o não-repúdio do cliente e a integridade do documento assinado."
},
"data": {
"type": "string",
"description": "Data e hora da assinatura do documento.",
"format": "date-time"
},
"enderecoIP": {
"maxLength": 39,
"minLength": 7,
"type": "string",
"description": "Endereço IP v4 ou v6 com separadores."
},
"responsavel": {
"required": [
"cpf",
"email",
"nome"
],
"type": "object",
"properties": {
"cpf": {
"maxLength": 11,
"minLength": 11,
"type": "string",
"description": "CPF do responsável sem separadores."
},
"nome": {
"maxLength": 60,
"type": "string",
"description": "Nome do responsável."
},
"email": {
"type": "string",
"description": "e-Mail do responsável.",
"format": "email"
}
}
},
"usuario": {
"required": [
"email",
"login"
],
"type": "object",
"properties": {
"login": {
"maxLength": 30,
"type": "string",
"description": "Login do usuário."
},
"email": {
"type": "string",
"description": "e-Mail do usuário.",
"format": "email"
}
}
}
},
"example": {
"linhaDeNegocio": "VIDA",
"tipoDocumento": "PROPOSTA",
"tipoAssinatura": "HASH",
"idDocumento": "112233445566778900",
"hash": "34U33B687F345SDDS4568",
"data": "2020-04-07T10:03:55Z",
"enderecoIP": "200.131.2.12",
"responsavel": {
"cpf": "69668613082",
"nome": "Fulano de Tal",
"email": "fulano.tal@email.com.br"
},
"usuario": {
"login": "beltrano",
"email": "beltrano@email.com.br"
}
}
}
Resposta 201
Created
Resposta 400
Requisição inválida.
{
"status": "400",
"mensagem": "Requisição inválida."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Resposta 401
Acesso negado devido a chave de assinatura inválida. Certifique-se de fornecer uma chave válida para uma assinatura ativa.
{
"status": "401",
"mensagem": "Acesso negado devido a chave de assinatura inválida. Certifique-se de fornecer uma chave válida para uma assinatura ativa."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Resposta 403
Sem autorização para acessar o recurso solicitado.
{
"status": "403",
"mensagem": "Sem autorização para acessar o recurso solicitado."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Resposta 404
Recurso não encontrado.
{
"status": "404",
"mensagem": "Recurso não encontrado."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Resposta 415
{
"status": "415",
"mensagem": "Media type inválido."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Resposta 422
Erro de negócio.
{
"status": "422",
"mensagem": "Erro de negócio."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Resposta 500
Erro interno no servidor.
{
"status": "500",
"mensagem": "Erro interno no servidor."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Resposta 503
Serviço indisponível.
{
"status": "503",
"mensagem": "Serviço indisponível."
}
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Código http de resposta."
},
"mensagem": {
"type": "string",
"description": "Descrição detalhada do erro."
}
}
}
Exemplos de código
@ECHO OFF
curl -v -X POST "https://api.icatuseguros.com.br/corporativo/assinatura-eletronica/v1/comunicacao-assinatura"
-H "CodigoEmpresa: "
-H "Content-Type: application/json"
-H "Ocp-Apim-Subscription-Key: {subscription key}"
--data-ascii "{body}"
namespace CSHttpClientSample
{
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("CodigoEmpresa", "");
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");
var uri = "https://api.icatuseguros.com.br/corporativo/assinatura-eletronica/v1/comunicacao-assinatura?" + queryString;
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{body}");
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("< your content type, i.e. application/json >");
response = await client.PostAsync(uri, content);
}
}
}
}
// // This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample
{
public static void main(String[] args)
{
HttpClient httpclient = HttpClients.createDefault();
try
{
URIBuilder builder = new URIBuilder("https://api.icatuseguros.com.br/corporativo/assinatura-eletronica/v1/comunicacao-assinatura");
URI uri = builder.build();
HttpPost request = new HttpPost(uri);
request.setHeader("CodigoEmpresa", "");
request.setHeader("Content-Type", "application/json");
request.setHeader("Ocp-Apim-Subscription-Key", "{subscription key}");
// Request body
StringEntity reqEntity = new StringEntity("{body}");
request.setEntity(reqEntity);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null)
{
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
};
$.ajax({
url: "https://api.icatuseguros.com.br/corporativo/assinatura-eletronica/v1/comunicacao-assinatura?" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("CodigoEmpresa","");
xhrObj.setRequestHeader("Content-Type","application/json");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{subscription key}");
},
type: "POST",
// Request body
data: "{body}",
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* path = @"https://api.icatuseguros.com.br/corporativo/assinatura-eletronica/v1/comunicacao-assinatura";
NSArray* array = @[
// Request parameters
@"entities=true",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"POST"];
// Request headers
[_request setValue:@"" forHTTPHeaderField:@"CodigoEmpresa"];
[_request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[_request setValue:@"{subscription key}" forHTTPHeaderField:@"Ocp-Apim-Subscription-Key"];
// Request body
[_request setHTTPBody:[@"{body}" dataUsingEncoding:NSUTF8StringEncoding]];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if (nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if (nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';
$request = new Http_Request2('https://api.icatuseguros.com.br/corporativo/assinatura-eletronica/v1/comunicacao-assinatura');
$url = $request->getUrl();
$headers = array(
// Request headers
'CodigoEmpresa' => '',
'Content-Type' => 'application/json',
'Ocp-Apim-Subscription-Key' => '{subscription key}',
);
$request->setHeader($headers);
$parameters = array(
// Request parameters
);
$url->setQueryVariables($parameters);
$request->setMethod(HTTP_Request2::METHOD_POST);
// Request body
$request->setBody("{body}");
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
headers = {
# Request headers
'CodigoEmpresa': '',
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': '{subscription key}',
}
params = urllib.urlencode({
})
try:
conn = httplib.HTTPSConnection('api.icatuseguros.com.br')
conn.request("POST", "/corporativo/assinatura-eletronica/v1/comunicacao-assinatura?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
headers = {
# Request headers
'CodigoEmpresa': '',
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': '{subscription key}',
}
params = urllib.parse.urlencode({
})
try:
conn = http.client.HTTPSConnection('api.icatuseguros.com.br')
conn.request("POST", "/corporativo/assinatura-eletronica/v1/comunicacao-assinatura?%s" % params, "{body}", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://api.icatuseguros.com.br/corporativo/assinatura-eletronica/v1/comunicacao-assinatura')
request = Net::HTTP::Post.new(uri.request_uri)
# Request headers
request['CodigoEmpresa'] = ''
# Request headers
request['Content-Type'] = 'application/json'
# Request headers
request['Ocp-Apim-Subscription-Key'] = '{subscription key}'
# Request body
request.body = "{body}"
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body