API Tarifas


Contenidos
Objetivo

Disponer a nuestros clientes un medio seguro donde consultar las tarifas sobre sus distintos servicios disponibles.

Importante:
Cada cliente poseerá una credencial de acceso para la integración.
Puede consultar en Control de Acceso para mas información.


Formato Request
Se enviará un mensaje con la siguiente estructura:
Dentro del body se enviará un objeto JSON con los campos listados a continuación.
Nombre Tipo de dato Requerido Descripción
codServicio texto(2) No Indica el código del servicio a consultar. En caso de venir vacío, se retornará la tarificación para todos los servicio que tiene el cliente tiene asociados.
comunaRemitente texto(50) No Nombre comuna del remitente.
comunaDestino texto(50) Si Nombre comuna del destinatario.
tipoPortes texto(1) No P: Pago en Origen (valor por defecto).
D: Pago en Destino
kilos número(7.2) Si Número con 5 dígitos enteros y 2 después de la coma como máximo.
Separación decimal a usar debe ser un punto (.)
volumen número(7.2) Si Número con 5 dígitos enteros y 2 después de la coma como máximo.
Separación decimal a usar debe ser un punto (.)
* Nuestro calculo de volumen es el siguiente:
(ancho(cm) x largo(cm) x alto(cm)) / 1.000.000
importeReembolso número(7.2) No Número con 5 dígitos enteros y 2 después de la coma como máximo.
Separación decimal a usar debe ser un punto (.)
valorAsegurado número(7.2) No Número con 5 dígitos enteros y 2 después de la coma como máximo.
Separación decimal a usar debe ser un punto (.)
Por defecto es 0.


Formato Response
Respuesta Satisfactoria

Dentro del body, el sistema devolverá un objeto JSON con los datos listados a continuación.

Nombre Tipo de dato Descripción
codServicio texto Código del servicio.
totalTasacion texto Total de la tarifa.


Status Codes
Status Descripción Acción
200 Cuando la solicitud fue procesada satisfactoriamente. Arreglo con las tarifas.
400 Cualquier error del lado del cliente. Cualquier falla en el payload, como un header o body erroneo.
500 Cualquier error del lado del servidor. Cualquier falla operativa interna, como no poder conectar con la base de datos.

Ejemplos
Request
Response

Ok (200)



Error (400)



Error (400)



Error (500)



Códigos de ejemplo
//Si desea utilizar usuario y contraseña
var usuario = "[USUARIO]";
var password = "[CONTRASEÑA]";
var authorization = "basic " + Buffer.from(usuario + ":" + password).toString('base64');

//Si desea utilizar el token de acceso
var authorization = "token [TOKEN DE ACCESO]";

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://cert-apib2bv2.correos.cl:8000/tarifas',
  'headers': {
    'Authorization': authorization,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "comunaRemitente": "SANTIAGO",
    "comunaDestino": "SANTIAGO",
    "tipoPortes": "P",
    "bultos": 1,
    "kilos": 1,
    "volumen": 0,
    "importeReembolso": 0,
    "valorAsegurado": 0
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
var client = new RestClient("https://cert-apib2bv2.correos.cl:8000/tarifas") {
    client.Timeout = -1
}
var request = new RestRequest(Method.POST);

//Si desea utilizar usuario y contraseña
var usr = "[USUARIO]";
var pwd = "[CONTRASEÑA]";
var authorization = Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes(usr + ":" + pwd));
request.AddHeader("Authorization", "basic " + authorization);

//Si desea utilizar el token de acceso
var token = "[TOKEN DE ACCESO]"

request.AddHeader("Authorization", authorization);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@"    ""comunaRemitente"": ""SANTIAGO"",
" + "\n" +
@"    ""comunaDestino"": ""SANTIAGO"",
" + "\n" +
@"    ""tipoPortes"": ""P"",
" + "\n" +
@"    ""bultos"": 1,
" + "\n" +
@"    ""kilos"": 1,
" + "\n" +
@"    ""volumen"": 0,
" + "\n" +
@"    ""importeReembolso"": 0,
" + "\n" +
@"    ""valorAsegurado"": 0
" + "\n" +
@"}";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
//import okhttp3.Credentials;
//import okhttp3.OkHttpClient;

//Si desea utilizar usuario y contraseña
String usuario = "[USUARIO]";
String contrasena = "[CONTRASEÑA]";
String authorization = "basic " + Credentials.basic(usuario, contrasena);

//Si desea utilizar token de acceso
String authorization = "token [TOKEN DE ACCESO]";

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"comunaRemitente\": \"SANTIAGO\",\r\n    \"comunaDestino\": \"SANTIAGO\",\r\n    \"tipoPortes\": \"P\",\r\n    \"bultos\": 1,\r\n    \"kilos\": 1,\r\n    \"volumen\": 0,\r\n    \"importeReembolso\": 0,\r\n    \"valorAsegurado\": 0\r\n}");
Request request = new Request.Builder()
  .url("https://cert-apib2bv2.correos.cl:8000/tarifas")
  .method("POST", body)
  .addHeader("Authorization", authorization)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
//Si desea utilizar usuario y contraseña
$usuario = '[USUARIO]';
$contrasena = '[CONTRASEÑA]';
$authorization = 'basic' . base64_encode($usuario . ':' . $contrasena);

//Si desea utilizar token de acceso
$token = '[TOKEN DE ACCESO]';
$authorization = 'token' . token;

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://cert-apib2bv2.correos.cl:8000/tarifas',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "comunaRemitente": "SANTIAGO",
    "comunaDestino": "SANTIAGO",
    "tipoPortes": "P",
    "bultos": 1,
    "kilos": 1,
    "volumen": 0,
    "importeReembolso": 0,
    "valorAsegurado": 0
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: ' . $authorization,
    'Content-Type: application/json'
  ),
));