# S10 (estándar UPU)

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) :
| 1 | 2 | 3 | 4 |
| AA | 00000000 | 9 | BB |
| 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ón |
| 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:
Para el ejemplo:
47312482 C = 11 - (Residual de (200/11)= 18.2, el decimal es 2) = 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: