**ISO 7812**, pertama kali diterbitkan oleh ISO *International Organization for Standardization* pada tahun 1989, adalah mengenai pengaturan standar internasional pita magnetik kartu indentitas, kartu-2 akses, kartu ATM, dan kartu kredit. ISO 7812 disediakan dalam dua bagian, ISO 7812-1 dan ISO 7812-2. masing-2 berisikan spesifikasi lengkap dimana dapat terpakai pada penggunaannya. penomoran kartu kredit adalah bagian dari penomoran ISO 7812.

Pada ISO 7812 penggunaan satu digit untuk MII *major industry identifier*, enam digit untuk IIN *issuer identifier number*, disusul rangkaian angka dari sebuah *nomor rekening*, dan satu digit kemudian dipakai untuk pengontroan. sebagian besar industri pengindentifikasi merupakan bagian dari penerbit nomor pengindentifikasi, dan besaran jumlah angka tidak lebih dari 19 digit.

Major industry identifier
-------------------------

MII *major industry identifier* pengaturan pada digit pertama dari penomoran menurut ISO 7812 adalah pernyataan tujuan penggunaan atau pemakaian dari kartu adalah sbb.:

| Nilai digit MII | kategori kegunaan |
| --- | --- |
| 0 | ISO/TC 68 and other industry assignments |
| 1 | Airlines |
| 2 | Airlines and other industry assignments |
| 3 | Travel and entertainment |
| 4 | Banking and financial |
| 5 | Banking and financial |
| 6 | Merchandising and banking |
| 7 | Petroleum |
| 8 | Telecommunications and other industry assignments |
| 9 | National assignment |

umpama [MII] *major industry identifier* adalah angka 9 maka tiga angka kemudian adalah menerangkan asal negara dengan pemakaian ketentuan dari ISO 3166-1 yang terdiri dari tiga angka.

Issuer Identifier Number
------------------------

beberapa contoh *issuer identifiers* dibawah ini 

| Jenis kartu | jumlah angka | Prefiks (Issuer Identifier Number) | Simbol | Rumus pengkontrolan |
| --- | --- | --- | --- | --- |
| American Express | 15 | 34, 37 | AmEx | Luhn Algorithm |
| Diners Club Carte Blanche | 14 | 300, 301, 302, 303, 304, 305 | DC-CB | Luhn Algorithm |
| Diners Club International | 14 | 36 | DC-Int | Luhn Algorithm |
| Diners Club Enroute | 15 | 2014, 2149 | DC-eR | Luhn Algorithm (?) |
| Diners Club US dan Canada | 16 | 55 | DC-UC | Luhn Algorithm |
| Maestro (Debit Card) | 16, 18 | 5020, 5038, 6304, 6759 | Maes | Luhn Algorithm |
| Discover Card | 16 | 6011, 65 | Disc | Luhn Algorithm |
| MasterCard | 16 | 51, 52, 53, 54, 55 | MC | Luhn Algorithm |
| Visa Electron | 16 | 417500, 4917, 4913, 4508, 4844 | Visa | Luhn Algorithm |
| Visa | 13, 16 | 4 | Visa | Luhn Algorithm |

Nomor rekening
--------------

Keberadaan nomor rekening berjumlah maksimum 7 angka digit berada pada urutan kedua dari belakang setelah digit pengkontrolan.

Digit pengkontrolan
-------------------

Angka digit pengkontrolan check digit berada pada urutan paling akhir dan dihitung berdasarkan perumusan Algoritme Luhn.

```
'''''Java Source Code'''''
//---------------------------------------------------------
// Checks for valid credit card number using Luhn algorithm
//---------------------------------------------------------

public abstract class LuhnCheck {

  //--------------------------------
  // Filter out non-digit characters
  //--------------------------------

  private static String getDigitsOnly (String s) {
    StringBuffer digitsOnly = new StringBuffer ();
    char c;
    for (int i = 0; i < s.length (); i++) {
      c = s.charAt (i);
      if (Character.isDigit (c)) {
        digitsOnly.append (c);
      }
    }
    return digitsOnly.toString ();
  }

  //-------------------
  // Perform Luhn check
  //-------------------

  public static boolean isValid (String cardNumber) {
    String digitsOnly = getDigitsOnly (cardNumber);
    int sum = 0;
    int digit = 0;
    int addend = 0;
    boolean timesTwo = false;

    for (int i = digitsOnly.length () - 1; i >= 0; i--) {
      digit = Integer.parseInt (digitsOnly.substring (i, i + 1));
      if (timesTwo) {
        addend = digit \* 2;
        if (addend > 9) {
          addend -= 9;
        }
      }
      else {
        addend = digit;
      }
      sum += addend;
      timesTwo = !timesTwo;
    }

    int modulus = sum % 10;
    return modulus == 0;

  }

  //-----
  // Test
  //-----

```

Referensi
---------

1. ↑   Anatomy of Credit Card Numbers
2. ↑   Diarsipkan 2008-07-04 di Wayback Machine. Credit Card Number
3. ↑   Java Source Code

Lihat pula
----------

* Electronic money

Pranala luar
------------

* (Inggris)Biography on the American Society for Information Science and Technology's Web site Diarsipkan 2005-11-06 di Wayback Machine.
* (Inggris)Notes compiled by Susan K. Soy on "H.P. Luhn and Automatic Indexing" Diarsipkan 2010-06-10 di Wayback Machine.
* (Indonesia)Penerapan Standar ISO/IEC 7812-Issuer Identifikasi Number[*pranala nonaktif permanen*]
* (Indonesia)Badan Standardisasi Nasional