API Manifiestos


Contenidos
Objetivo

Disponer a nuestros clientes un servicio para generar el manifiesto en formato PDF, a través del envío de la información del usuario y la información de los envíos.

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
rutCliente texto Si Rut del cliente.
nombreCliente texto Si Nombre del cliente.
codCliente texto Si Código SAP del cliente.
comunaRemitente texto Si Comuna del cliente.
fechaCreacion texto Si Fecha de generación del documento.
numeroManifiesto texto Si Se trata de un correlativo con el número de su manifiesto, se compone de YYYYMMDDCOD_SAP_CORR, donde; YYYY = Año, MM = mes, DD = día, COD_SAP = código SAP del cliente y CORR_ correlativo largo 3.
formato texto No Por defecto la respuesta será directamente el archivo pdf generado, pero al incluir este capo con el valor "json", el response cambia a JSON, con el archivo Pdf en formato string base64.
data nodo Si Arreglo con los items del manifiesto.
* El limite de items del arreglo se define internamente por cliente, pero el máximo es 500.
data.nombreProducto texto Si Identificador del Pedido.
data.nombreDestinatario texto Si Nombre del destinatario.
data.comunaDestinatario. texto Si Nombre de la comuna del destinatario.
data.codReferencia texto Si Referencia ingresada al generar la etiqueta.
data.numeroEnvio texto Si Número de envío de CorreosChile
data.bultos texto Si Número de bultos en los que se ha dividido el pedido al generar la etiqueta.


Formato Response
Respuesta Satisfactoria

Dentro del body se enviará un objeto JSON con los campos listados a continuación.
Nota: Esta respuesta solo aplica a la generación de manifiestos en formato "data".

Nombre Tipo de dato Descripción
nombre texto Arreglo con la respueta de cada uno de los envíos admitidos.
extension texto Extensión del archivo (.pdf)
str64Data texto Archivo codificado en Base64.

Status Codes
Status Descripción Acción
200 Cuando la solicitud fue procesada satisfactoriamente. Retorna la información del manifiesto realizado o el archivo con el manifiesto generado.
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 (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/manifiestos',
  'headers': {
    'Authorization': authorization,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "rutCliente": "1-9",
    "nombreCliente": "Prueba CorreosChile",
    "codCliente": "888888",
    "comunaRemitente": "ESTACION CENTRAL",
    "fechaCreacion": "28/12/2021",
    "numeroManifiesto": "20211228_526843_001",
    "formato": "",
    "data": [
      {
        "nombreProducto": "PEDIDO 1",
        "nombreDestinatario": "CLIENTE 1",
        "comunaDestinatario": "SANTIAGO",
        "codReferencia": "PRB0001",
        "numeroEnvio": "888888888881",
        "bultos": "1"
      }
    ]
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
var client = new RestClient("https://apib2bv2.correos.cl/manifiestos");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic ?");
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@"    ""rutCliente"": ""1-9"",
" + "\n" +
@"    ""nombreCliente"": ""Prueba CorreosChile"",
" + "\n" +
@"    ""codCliente"": ""888888"",
" + "\n" +
@"    ""comunaRemitente"": ""ESTACION CENTRAL"",
" + "\n" +
@"    ""fechaCreacion"": ""28/12/2021"",
" + "\n" +
@"    ""numeroManifiesto"": ""20211228_526843_001"",
" + "\n" +
@"    ""formato"": """",
" + "\n" +
@"    ""data"": [
" + "\n" +
@"        {
" + "\n" +
@"            ""nombreProducto"": ""PEDIDO 1"",
" + "\n" +
@"            ""nombreDestinatario"": ""CLIENTE 1"",
" + "\n" +
@"            ""comunaDestinatario"": ""SANTIAGO"",
" + "\n" +
@"            ""codReferencia"": ""PRB0001"",
" + "\n" +
@"            ""numeroEnvio"": ""888888888881"",
" + "\n" +
@"            ""bultos"": ""1""
" + "\n" +
@"        }
" + "\n" +
@"    ]
" + "\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    \"rutCliente\": \"1-9\",\r\n    \"nombreCliente\": \"Prueba CorreosChile\",\r\n    \"codCliente\": \"888888\",\r\n    \"comunaRemitente\": \"ESTACION CENTRAL\",\r\n    \"fechaCreacion\": \"28/12/2021\",\r\n    \"numeroManifiesto\": \"20211228_526843_001\",\r\n    \"formato\": \"\",\r\n    \"data\": [\r\n        {\r\n            \"nombreProducto\": \"PEDIDO 1\",\r\n            \"nombreDestinatario\": \"CLIENTE 1\",\r\n            \"comunaDestinatario\": \"SANTIAGO\",\r\n            \"codReferencia\": \"PRB0001\",\r\n            \"numeroEnvio\": \"888888888881\",\r\n            \"bultos\": \"1\"\r\n        }\r\n    ]\r\n}");
Request request = new Request.Builder()
  .url("https://cert-apib2bv2.correos.cl:8000/manifiestos")
  .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/manifiestos',
  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 =>'{
    "rutCliente": "1-9",
    "nombreCliente": "Prueba CorreosChile",
    "codCliente": "888888",
    "comunaRemitente": "ESTACION CENTRAL",
    "fechaCreacion": "28/12/2021",
    "numeroManifiesto": "20211228_526843_001",
    "formato": "",
    "data": [
        {
            "nombreProducto": "PEDIDO 1",
            "nombreDestinatario": "CLIENTE 1",
            "comunaDestinatario": "SANTIAGO",
            "codReferencia": "PRB0001",
            "numeroEnvio": "888888888881",
            "bultos": "1"
        }
    ]
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: ' . $authorization,
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;