API Generar Etiquetas
Contenidos
Objetivo
Disponer a nuestros clientes un servicio para solicitar números de envío que posteriormente se usarán a lo largo del proceso para su seguimiento. Además, permite generar la etiquetas en el formato solicitado.
Importante:
Cada cliente poseerá una credencial de acceso para la integración.
Puede consultar en Control de Acceso para mas información.
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 |
---|---|---|---|
nroDTE | texto | Si | Número de documento tributario si corresponde. |
codCliente | texto | Si | Código SAP del cliente. |
posicionInicial | número | No |
Posición inicial de la etiqueta dentro de la hoja:
0-5 en caso de etiquetas PDFS (6 etiquetas por hoja) 0-1 en caso de etiquetas PDF (2 etiquetas por hoja) * Valor por defecto 0. |
formatoEtiqueta | texto | Si |
Formatos disponibles:
PDF: Etiquetas en archivo pdf de 18cm x 13cm. PDFS: Etiquetas en archivo pdf de 9cm x 7cm. ZPL: Etiquetas formato ZPL (Para impresoras zebra o compatibles). EPL: Etiquetas formato EPL (Para impresoras zebra antiguas). * En caso de dejar vacio se realizara la admisión sin generar etiqueta. |
modo | texto | Si |
Modo de salida del servicio:
JSON: El reponse correspondera a JSON con el archivo incluido como string base64. ARCHIVO: El response correspondera directamente al archivo generado. |
data | nodo | Si |
Arreglo con información de los envíos.
* El limite de envíos del arreglo se define internamente por cliente, pero el máximo es 500. |
data.codAdmision | texto | No | Código asignado a la admisión. |
data.codCentro | texto | No | Código de centro. |
data.codServicio | texto | Si | Código de servicio del envío. |
data.remitente | nodo | Si | |
data.remitente.nombre | texto(60) | Si | Nombre del remitente. |
data.remitente.codPais | texto | No | Código ISO 3166-1 numérico, por defecto 056. |
data.remitente.comuna | texto(60) | Si | Dirección completa del remitente. |
data.remitente.direccion | texto(60) | Si |
Dirección completa del remitente.
* Debe ir en el siguiente orden: Calle + Número. + Resto. |
data.remitente.codPostal | texto(7) | No | Código postal del remitente |
data.remitente.rut | texto | No | RUT del remitente. |
data.remitente.contacto | texto | No | Nombre de contacto del remitente. |
data.remitente.telefono | texto | No | Teléfono de contacto del remitente. |
data.remitente.email | texto | No | Email de contacto del remitente. |
data.destinatario | nodo | Si | |
data.destinatario.nombre | texto(60) | Si | Nombre del destinatario. |
data.destinatario.codPais | texto | No | Código ISO 3166-1 numérico, por defecto 056. |
data.destinatario.comuna | texto(60) | Si | Comuna del destinatario. |
data.destinatario.direccion | texto(60) | Si |
Dirección completa del destinatario.
* Debe ir en el siguiente orden: Calle + Número. + Resto. |
data.destinatario.codPostal | texto(7) | Si | Código postal del destinatario. |
data.destinatario.rut | texto | No | RUT del destinatario. |
data.destinatario.contacto | texto | No | Nombre de contacto del destinatario. |
data.destinatario.telefono | texto | No | Teléfono de contacto del destinatario. |
data.destinatario.email | texto | No | Email de contacto del destinatario. |
data.pagoSeguro | texto | No |
Indica si aplica seguro sobre el envío, valores aceptados:
Si: 1 o S No: 0 o N * Valor por defecto 0. |
data.bultos | número | No |
Valor entre 1-999.
Valor por defecto 1. |
data.kilos | texto | 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 (.) Valor por defecto 0.001 si no hay volumen definido. |
data.volumen | texto | 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 (.) * Nuestro calculo de volumen es el siguiente: (ancho(cm) x largo(cm) x alto(cm)) / 1.000.000 Valor por defecto 0.001 si no hay kilos definido. |
data.codReferencia | texto | Si | Referencia del envío. |
data.observaciones | texto | Si | Observaciones de la etiqueta. |
data.observacionesInternas | texto | Si | Observaciones para registro interno. |
data.tipoMercancia | texto(60) | No | Descripción del contenido del paquete. |
data.tipoPortes | texto | No |
P: Pago en Origen.
D: Pago en Destino. |
data.valorDeclarado | número | No |
Valor del contenido del envío.
* Requerido si pago seguro es 1 o S. |
data.devolucionConforme | número | Si |
Indica si requiere documento indicando conformidad.
Si: 1 o S No: 0 o N * Valor por defecto 0. |
data.importeReembolso | texto | Si |
Valor del reembolso en caso que corresponda.
* Valor por defecto 0. |
data.numDocumentos | número | No |
Cantidad de copias de documento indicando conformidad.
* Requerido si devolucionConforme es 1 o S. * Valor por defecto 0. |
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 etiquetas en modo JSON. El modo archivo retornara el archivo con todas las etiquetas que se pudieron generar exitosamente.
Nombre | Tipo de dato | Descripción |
---|---|---|
info | nodo | Arreglo con la respueta de cada uno de los envíos admitidos. |
info.estado | texto |
OK: La admisión fue completamente exitosa.
WARNING: La admisión fue exitosa, sin embargo se realizaron ajustes. ERROR: La admisión fallo. |
info.mensaje_{n} | texto | Una lista de N mensajes de WARNING. |
admision | nodo | Información de la admisión exitosa de un envío. |
admision.abreviaturaCentro | texto | Abreviatura del centro de origen. |
admision.codSucursal | texto | Código de sucursal en caso de que corresponda. |
admision.nombreSucursal | texto | Nombre de la sucursal de destino. |
admision.codDelegacionDestino | texto | Código de planta de destino. |
admision.nombreDelegacionDestino | texto | Nombre de planta de destino. |
admision.direccionDestino | texto | Dirección de domicilio o sucursal del destinatario. |
admision.cuartel | texto | Cuartel al que se asigna envío. |
admision.codEncaminamiento | texto | Código de encaminamiento para seguimiento. |
admision.sector | texto | Oficina de centro de distribución de carteros. |
admision.numeroEnvio | texto | Número de envío. |
admision.comunaDestino | texto | Nombre de la comuna de destino. |
admision.abreviaturaServicio | texto | Abreviatura de servicio utilizado. |
admision.SDP | texto | Sector de distribución de paquetería. |
admision.codigoBarras | nodo | Arreglo de códigos de barra de 26 dígitos (codEncaminamiento + numeroEnvio + bultos) |
admision.errores | nodo | Arreglo de errores generados durante la admisión. |
admision.errores.codAdmision | texto | Código asignado a la admisión. |
admision.errores.estado | texto | Siempre texto "ERROR" |
admision.errores.mensaje_{n} | texto | Una lista de N mensajes de ERROR. |
admision.archivos | nodo | Arreglo de archivos generados con admisión exitosa. |
admision.archivos.nombre | texto | Nombre del archivo. |
admision.archivos.extension | texto | Extensión del archivo (.pdf, .epl, .zpl) |
admision.archivos.str64Data | texto | Archivo codificado en Base64. |
Status Codes
Status | Descripción | Acción |
---|---|---|
200 | Cuando la solicitud fue procesada satisfactoriamente. | Retorna la información de las admisiones realizadas o el archivo con las etiquetas generadas. |
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/etiquetas',
'headers': {
'Authorization': authorization,
'Content-Type': 'application/json'
},
body: JSON.stringify({
"nroDTE": 0,
"codCliente": "888888",
"posicionInicial": 0,
"formatoEtiqueta": "PDF",
"modo": "json",
"data": [
{
"codAdmision": "PRUEBA01",
"codCentro": "",
"codServicio": "24",
"remitente": {
"nombre": "PRUEBA CORREOSCHILE",
"codPais": "056",
"comuna": "ESTACION CENTRAL",
"direccion": "EXPOSICION 221. Sexto 6",
"codPostal": "9160002",
"rut": "55.555.555-5",
"contacto": "Soporte ecommerce",
"telefono": "6009502020",
"email": "soporte.ecommerce@correos.cl"
},
"destinatario": {
"nombre": "CLIENTE DE PRUEBA",
"codPais": "056",
"comuna": "ESTACION CENTRAL",
"direccion": "EXPOSICION 221. Sexto 6",
"codPostal": "",
"rut": "55.555.555-5",
"contacto": "cliente de prueba",
"telefono": "555555555",
"email": "cliente@deprueba.cl"
},
"pagoSeguro": 0,
"bultos": 1,
"kilos": 1,
"volumen": 0.001,
"codReferencia": "prbcch0001",
"observaciones": "Observaciones",
"observacionesInternas": "Observaciones de uso interno",
"tipoMercancia": "",
"tipoPortes": "P",
"valorDeclarado": 10000,
"devolucionConforme": 0,
"importeReembolso": 0,
"numDocumentos": 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/etiquetas") {
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" +
@" ""nroDTE"": 0,
" + "\n" +
@" ""codCliente"": ""888888"",
" + "\n" +
@" ""posicionInicial"": 0,
" + "\n" +
@" ""formatoEtiqueta"": ""PDF"",
" + "\n" +
@" ""modo"": ""json"",
" + "\n" +
@" ""data"": [
" + "\n" +
@" {
" + "\n" +
@" ""codAdmision"": ""PRUEBA01"",
" + "\n" +
@" ""codCentro"": """",
" + "\n" +
@" ""codServicio"": ""24"",
" + "\n" +
@" ""remitente"": {
" + "\n" +
@" ""nombre"": ""PRUEBA CORREOSCHILE"",
" + "\n" +
@" ""codPais"": ""056"",
" + "\n" +
@" ""comuna"": ""ESTACION CENTRAL"",
" + "\n" +
@" ""direccion"": ""EXPOSICION 221. Sexto 6"",
" + "\n" +
@" ""codPostal"": ""9160002"",
" + "\n" +
@" ""rut"": ""55.555.555-5"",
" + "\n" +
@" ""contacto"": ""Soporte ecommerce"",
" + "\n" +
@" ""telefono"": ""6009502020"",
" + "\n" +
@" ""email"": ""soporte.ecommerce@correos.cl""
" + "\n" +
@" },
" + "\n" +
@" ""destinatario"": {
" + "\n" +
@" ""nombre"": ""CLIENTE DE PRUEBA"",
" + "\n" +
@" ""codPais"": ""056"",
" + "\n" +
@" ""comuna"": ""ESTACION CENTRAL"",
" + "\n" +
@" ""direccion"": ""EXPOSICION 221. Sexto 6"",
" + "\n" +
@" ""codPostal"": """",
" + "\n" +
@" ""rut"": ""55.555.555-5"",
" + "\n" +
@" ""contacto"": ""cliente de prueba"",
" + "\n" +
@" ""telefono"": ""555555555"",
" + "\n" +
@" ""email"": ""cliente@deprueba.cl""
" + "\n" +
@" },
" + "\n" +
@" ""pagoSeguro"": 0,
" + "\n" +
@" ""bultos"": 1,
" + "\n" +
@" ""kilos"": 1,
" + "\n" +
@" ""volumen"": 0.001,
" + "\n" +
@" ""codReferencia"": ""prbcch0001"",
" + "\n" +
@" ""observaciones"": ""Observaciones"",
" + "\n" +
@" ""observacionesInternas"": ""Observaciones de uso interno"",
" + "\n" +
@" ""tipoMercancia"": """",
" + "\n" +
@" ""tipoPortes"": ""P"",
" + "\n" +
@" ""valorDeclarado"": 10000,
" + "\n" +
@" ""devolucionConforme"": 0,
" + "\n" +
@" ""importeReembolso"": 0,
" + "\n" +
@" ""numDocumentos"": 0
" + "\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 \"nroDTE\": 0,\r\n \"codCliente\": \"888888\",\r\n \"posicionInicial\": 0,\r\n \"formatoEtiqueta\": \"PDF\",\r\n \"modo\": \"json\",\r\n \"data\": [\r\n {\r\n \"codAdmision\": \"PRUEBA01\",\r\n \"codCentro\": \"\",\r\n \"codServicio\": \"24\",\r\n \"remitente\": {\r\n \"nombre\": \"PRUEBA CORREOSCHILE\",\r\n \"codPais\": \"056\",\r\n \"comuna\": \"ESTACION CENTRAL\",\r\n \"direccion\": \"EXPOSICION 221. Sexto 6\",\r\n \"codPostal\": \"9160002\",\r\n \"rut\": \"55.555.555-5\",\r\n \"contacto\": \"Soporte ecommerce\",\r\n \"telefono\": \"6009502020\",\r\n \"email\": \"soporte.ecommerce@correos.cl\"\r\n },\r\n \"destinatario\": {\r\n \"nombre\": \"CLIENTE DE PRUEBA\",\r\n \"codPais\": \"056\",\r\n \"comuna\": \"ESTACION CENTRAL\",\r\n \"direccion\": \"EXPOSICION 221. Sexto 6\",\r\n \"codPostal\": \"\",\r\n \"rut\": \"55.555.555-5\",\r\n \"contacto\": \"cliente de prueba\",\r\n \"telefono\": \"555555555\",\r\n \"email\": \"cliente@deprueba.cl\"\r\n },\r\n \"pagoSeguro\": 0,\r\n \"bultos\": 1,\r\n \"kilos\": 1,\r\n \"volumen\": 0.001,\r\n \"codReferencia\": \"prbcch0001\",\r\n \"observaciones\": \"Observaciones\",\r\n \"observacionesInternas\": \"Observaciones de uso interno\",\r\n \"tipoMercancia\": \"\",\r\n \"tipoPortes\": \"P\",\r\n \"valorDeclarado\": 10000,\r\n \"devolucionConforme\": 0,\r\n \"importeReembolso\": 0,\r\n \"numDocumentos\": 0\r\n }\r\n ]\r\n}");
Request request = new Request.Builder()
.url("https://cert-apib2bv2.correos.cl:8000/etiquetas")
.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/etiquetas',
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 =>'{
"nroDTE": 0,
"codCliente": "888888",
"posicionInicial": 0,
"formatoEtiqueta": "PDF",
"modo": "json",
"data": [
{
"codAdmision": "PRUEBA01",
"codCentro": "",
"codServicio": "24",
"remitente": {
"nombre": "PRUEBA CORREOSCHILE",
"codPais": "056",
"comuna": "ESTACION CENTRAL",
"direccion": "EXPOSICION 221. Sexto 6",
"codPostal": "9160002",
"rut": "55.555.555-5",
"contacto": "Soporte ecommerce",
"telefono": "6009502020",
"email": "soporte.ecommerce@correos.cl"
},
"destinatario": {
"nombre": "CLIENTE DE PRUEBA",
"codPais": "056",
"comuna": "ESTACION CENTRAL",
"direccion": "EXPOSICION 221. Sexto 6",
"codPostal": "",
"rut": "55.555.555-5",
"contacto": "cliente de prueba",
"telefono": "555555555",
"email": "cliente@deprueba.cl"
},
"pagoSeguro": 0,
"bultos": 1,
"kilos": 1,
"volumen": 0.001,
"codReferencia": "prbcch0001",
"observaciones": "Observaciones",
"observacionesInternas": "Observaciones de uso interno",
"tipoMercancia": "",
"tipoPortes": "P",
"valorDeclarado": 10000,
"devolucionConforme": 0,
"importeReembolso": 0,
"numDocumentos": 0
}
]
}',
CURLOPT_HTTPHEADER => array(
'Authorization: ' . $authorization,
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;