miniaturadeimagen|Correo certificado de la India al Reino Unido con registro mediante código de barras. La norma técnica u estándar S10 UPU (Unión Postal Univesal) define un sistema para asignar identificadores de 13 caracteres a objetos postales con el propósito de seguimiento y localización durante el envío.
Emisión y gestión de identificadores S10 Con el aumento en la liberalización y la posibilidad de múltiples servicios postales operando en el mismo país, el uso de códigos de país para designar el servicio postal es un problema. Para solucionar esto, cada país tiene un servicio postal designado que controla todos los identificadores S10 de aquel país; cualquier competidor por los servicios postales tendrá que cooperar con el dueño designado. La organización asignada por el país miembro de UPU dirigirá la creación y uso de identificadores S10, de entre todos los operadores bajo la autoridad de aquel país miembro de UPU, de tal manera que asegure que no ningún identificador S10 es reutilizado dentro de un periodo de 12 meses de calendario. La UPU recomienda un período de 24 meses calendario o más.
Formato Los identificadores constan de un código indicador del servicio de dos letras, un número de serie de ocho dígitos (en el rango de 00000000 a 99999999), un único dígito de control y un código de país ISO de dos letras que identifica a la administración postal del país emisor Formato S10 (S10 format)1234AA000000009BB Código indicador del servicio (Service indicator code) (ver abajo) Número de serie (Serial number) Dígito de control (Check-digit) (ver abajo) Código de país ISO 3166-1 alpha-2 (Country code)
Código indicador del servicio (Service indicator code) Código Interpretaciónhttp://www.upu.int, Service Indicator Codes AV-AZ Doméstico, bilateral, sólo para uso multilateral, identificando elementos con seguimiento RFIDde comercio electrónico BA-BZ Para doméstico, bilateral, sólo para uso multilateral CA-CZ Paquete de correo; el uso de CZ requiere acuerdo bilateral. No es obligatorio utilizar CV para paquetes asegurados pero si el indicador de servicio CV se usa, entonces se recomienda usarlo sólo para paquetes asegurados. DA-DZ Para doméstico, bilateral, sólo para uso multilateral EA-EZ EMS; el uso de EX@–EZ requiere acuerdo bilateral GA Para doméstico, bilateral, sólo para uso multilateral GD Para doméstico, bilateral, sólo para uso multilateral HA-HZ Paquetes de comercio electrónico; el uso de HX–HY requiere acuerdo multilateral; el uso de HZ requiere acuerdo bilateral JA-JZ Reservado; no puede ser asignado como valores de indicador de servicio válidos KA-KZ Reservado; no puede ser asignado como valores de indicador de servicio válidos LA-LZ Carta urgente de correo; el uso de LZ requiere acuerdo bilateral MA-MZ Correo de letra: bolsas M NA-NZ Para doméstico, bilateral, sólo para uso multilateral PA-PZ Para doméstico, bilateral, sólo para uso multilateral QA-QM Carta de correo: IBRS (Servicio de Respuesta Empresarial Internacional) RA-RZ Carta de correo: certificada, pero sin entrega asegurada. El uso de RZ requiere acuerdo bilateral. SA-SZ Reservado; no puede ser asignado como valores de indicador de servicio válidos TA-TZ Reservado; no puede ser asignado como valores de indicador de servicio válidos UA-UZ Carta de correo: otros elementos que no sean LA–LZ (urgente), MA–MZ (bolsas M), QA–QM (IBRS), RA–RZ (certificados), VA–VZ (asegurados), sujetos a control de aduanas, es decir, portando un CN 22 o CN 23 VA-VZ Carta de correo asegurada; el uso de VZ requiere acuerdo bilateral WA-WZ Reservado; no puede ser asignado como valores de indicador de servicio válidos ZA-ZZ Para doméstico, bilateral, sólo para uso multilateral
Cálculo del dígito de control (Check-digit calculation) 1) Ignore el código indicador de servicio y el código de país (ambos letras)
2) Asigne los pesos 8, 6, 4, 2, 3, 5, 9, 7 a los 8 dígitos, de izquierda a derecha
3) Calcular "S", que es la suma de cada dígito multiplicado por su peso.
Por ejemplo, para el número 47312482:</div><div>S = 48 + 76 + 34 + 12 + 23 + 45 + 89 + 27 = 2004) Calcula el dígito de control, "C", según su definición: C = 11 - (S mod 11) Si C = 10, cambia a C = 0 Si C = 11, cambia a C = 5
Para el ejemplo:
47312482 C = 11 - (200 mod 11) = 11 - 2 = 9
Códigos para el cálculo en lenguaje de programación
Código Python para el cálculo del dígito de control Para Python 3.6 o posterior: def get_check_digit(num: int) -> int: """Get S10 check digit.""" weights = [8, 6, 4, 2, 3, 5, 9, 7] sum = 0 for i, digit in enumerate(f"{num:08}"): sum += weights[i] * int(digit) sum = 11 - (sum % 11) if sum == 10: sum = 0 elif sum == 11: sum = 5 return sum
Código JavaScript para el cálculo del dígito de control function getCheckDigit(num) { const weights = [8, 6, 4, 2, 3, 5, 9, 7]; const numArr = Array.from(String(num), Number); let sum = 0; numArr.forEach((n, i) => sum = sum + (n * weights[i])); sum = 11 - (sum % 11); if (sum == 10) sum = 0; else if (sum == 11) sum = 5; return sum;
Código Haskell para el cálculo del dígito de control checkDigit :: [Int] -> Int checkDigit ns | c == 11 = 5 | c == 10 = 0 | otherwise = c where weights = [8, 6, 4, 2, 3, 5, 9, 7] s = sum $ zipWith (*) weights ns c = 11 - (s `mod` 11)
Véase también Código Serial del Contenedor de Envío (SSCC), un estándar relacionado. UPU ISO 3166-1 alfa-2
Referencias
Enlaces externos Borrador del S10 (en inglés): Parte A: principios de estructuras de identificador y codificado Parte B: elementos de EMS Parte C: productos de letra especial Parte D: paquetería Parte E: uso bilateral/doméstico Lista de código de indicadores de servicio UPU, lista 124 Códigos de país, S31 códigos de editores e identificadores de 13 caracteres para elementos postales S10, 2 de septiembre de 2004 Validador en línea para números de seguimiento S10
Categoría:Wikipedia:Artículos con enlaces externos rotos Categoría:Identificadores