S10 (standard UPU) - S10 (UPU standard)

Standard UPU S10 definiuje system nadawania 13-znakowych identyfikatorów międzynarodowym przesyłkom pocztowym w celu śledzenia ich podczas wysyłki .

Wraz ze zwiększoną liberalizacją i możliwością świadczenia wielu usług pocztowych w tym samym kraju, stosowanie kodów krajów do oznaczania usług pocztowych jest problemem. Aby rozwiązać ten problem, każdy kraj ma wyznaczoną usługę pocztową, która kontroluje wszystkie identyfikatory S10 z tego kraju; wszelkie konkurencyjne usługi pocztowe będą musiały współpracować z wyznaczonym właścicielem. Organizacja wyznaczona przez kraj członkowski UPU zarządza wydawaniem i stosowaniem identyfikatorów S10 wśród wszystkich operatorów podlegających temu krajowi należącemu do UPU w taki sposób, aby zapewnić, że żaden identyfikator S10 nie zostanie ponownie wykorzystany w okresie 12 kalendarzy. miesięcy. Zalecany jest okres 24 miesięcy kalendarzowych lub dłuższy.

Format

Identyfikatory składają się z dwuliterowego kodu wskaźnika usługi, ośmiocyfrowego numeru seryjnego (w zakresie od 00000000 do 99999999), pojedynczej cyfry kontrolnej i dwuliterowego kodu kraju ISO - ten ostatni identyfikuje kraj administracji pocztowej wydającej .

Format S10
1 2 3 4
AA 00000000 9 nocleg ze śniadaniem
  1. Kod wskaźnika serwisowego (patrz poniżej)
  2. Numer seryjny
  3. Cyfra kontrolna (patrz poniżej)
  4. Kod kraju ISO 3166-1 alpha-2

Kody wskaźników serwisowych

Kody usług są generalnie przypisywane i administrowane w każdym kraju wydającym, ale pewne typy usług i zakresy kodów są używane we wszystkich wymienionych tutaj krajach.

Kod Interpretacja
AV – AZ Wyłącznie do użytku krajowego, dwustronnego i wielostronnego, identyfikacja elementów handlu elektronicznego śledzonych za pomocą RFID
BA – BZ tylko do użytku krajowego, dwustronnego i wielostronnego
CA – CZ Paczka; stosowanie CZ wymaga dwustronnej umowy. Nie jest wymagane stosowanie CV do przesyłek z zadeklarowaną wartością, ale w przypadku korzystania ze wskaźnika usługowego CV zaleca się stosowanie go tylko na przesyłkach z zadeklarowaną wartością.
DA – DZ tylko do użytku krajowego, dwustronnego i wielostronnego
EA – EZ EMS ; użycie EX – EZ wymaga dwustronnego porozumienia
GA tylko do użytku krajowego, dwustronnego i wielostronnego
GD tylko do użytku krajowego, dwustronnego i wielostronnego
HA – HZ paczki w handlu elektronicznym; użycie HX – HY wymaga wielostronnego porozumienia; stosowanie HZ wymaga dwustronnej umowy
JA – JZ zarezerwowany; nie mogą być przypisane jako prawidłowe wartości wskaźnika usługi
KA – KZ zarezerwowany; nie mogą być przypisane jako prawidłowe wartości wskaźnika usługi
LA – LZ Możliwość śledzenia przesyłek listowych, kilka podtypów; użycie LZ wymaga dwustronnej umowy
MA – MZ Poczta listowa: torby M.
NA – NZ tylko do użytku krajowego, dwustronnego i wielostronnego
PA – PZ tylko do użytku krajowego, dwustronnego i wielostronnego
QA – QM Przesyłka listowa: IBRS (Międzynarodowa usługa odpowiedzi biznesowej)
RA – RZ Listowych: zarejestrowany , ale nie ubezpieczony dostawy. Korzystanie z RZ wymaga dwustronnej umowy.
SA – SZ zarezerwowany; nie mogą być przypisane jako prawidłowe wartości wskaźnika usługi
TA – TZ zarezerwowany; nie mogą być przypisane jako prawidłowe wartości wskaźnika usługi
UA – UZ Przesyłki listowe: przesyłki inne niż LA – LZ (Express), MA – MZ (torby M), QA – QM (IBRS), RA – RZ (polecone), VA – VZ (ubezpieczone), podlegające kontroli celnej , tj. Opatrzone CN 22 lub CN 23
VA – VZ Poczta listowa ubezpieczona; użycie VZ wymaga dwustronnej umowy
WA – WZ zarezerwowany; nie mogą być przypisane jako prawidłowe wartości wskaźnika usługi
ZA – ZZ tylko do użytku krajowego, dwustronnego i wielostronnego

Obliczanie cyfry kontrolnej

  1. Zignoruj ​​kod wskaźnika serwisowego i kod kraju
  2. Przypisz wagi 8, 6, 4, 2, 3, 5, 9, 7 do 8 cyfr, od lewej do prawej
  3. Oblicz S, sumę każdej cyfry pomnożoną przez jej wagę.
    • Na przykład dla numeru 47312482, S = 4 * 8 + 7 * 6 + 3 * 4 + 1 * 2 + 2 * 3 + 4 * 5 + 8 * 9 + 2 * 7 = 200
  4. Oblicz cyfrę kontrolną C od C = 11 - (S mod 11)
    • Jeśli C = 10, zmień na C = 0
    • Jeśli C = 11, zmień na C = 5
    • Na przykład 47312482 C = 11 - (200 mod 11) = 11 - 2 = 9.

Kod Pythona do obliczania cyfr kontrolnych

W przypadku Pythona 3.6 lub nowszego:

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

Kod JavaScript do obliczenia cyfry kontrolnej

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;
}

Zobacz też

Bibliografia

Zewnętrzne linki