Alipay+ DocsAlipay+ Docs

Code Issuer Table

A code issuer table lists the code issuer ID (CII) and regular expression for different length of the consumer-presented code. You can use the table to track the issuer of a consumer-presented code, which is determined by the code length, code format and CII.

A demo of the table is shown as follows:

Table 1.2: Code issuer table demo (Last updated on Jun 16, 2020)

Length of CPC

Code Issuer ID (CII)

Other Conditions

Regular Expression

Code Issuer

1

17

28

N/A

28[0-9]{15}

Digital Wallet 1

2

18

28

N/A

28[0-9]{16}

Digital Wallet 2

3

19

280 ~ 288

N/A

28[0-8][0-9]{16}

Digital Wallet 3

4

19

289

14th byte does not equal to "6"

289[0-9]{10}[0-57-9][0-9]{5}

Digital Wallet 4

5

19

289

14th byte equals to "6"

289[0-9]{10}6[0-9]{5}

Digital Wallet 5

6

24

28100100 ~ 28100199

N/A

281001[0-9]{18}

Digital Wallet 6

7

24

28100300 ~ 28100399

N/A

281003[0-9]{18}

Digital Wallet 7

8

24

28100400 ~ 28100499

N/A

281004[0-9]{18}

Digital Wallet 8

9

24

28100500 ~ 28100599

N/A

281005[0-9]{18}

Digital Wallet 9

10

24

28100600 ~ 28100699

N/A

281006[0-9]{18}

Digital Wallet 10

11

24

28100700 ~ 28100799

N/A

281007[0-9]{18}

Digital Wallet 11

12

24

28100900 ~ 28100999

N/A

281009[0-9]{18}

Digital Wallet 12

13

24

28101000 ~ 28101099

N/A

281010[0-9]{18}

Digital Wallet 13

14

24

28101100 ~ 28101199

N/A

281011[0-9]{18}

Digital Wallet 14

15

24

28101200 ~ 28101299

N/A

281012[0-9]{18}

Digital Wallet 15

16

24

28101300 ~ 28101399

N/A

281013[0-9]{18}

Digital Wallet 16

17

24

28101400 ~ 28101499

N/A

281014[0-9]{18}

Digital Wallet 17

18

24

28101800 ~ 28101899

N/A

281018[0-9]{18}

Digital Wallet 18

19

24

28101900 ~ 28101999

N/A

281019[0-9]{18}

Digital Wallet 19

20

24

28102000 ~ 28102099

N/A

281020[0-9]{18}

Digital Wallet 20

21

24

28102100 ~ 28102199

N/A

281021[0-9]{18}

Digital Wallet 21

22

24

28102200 ~ 28102299

N/A

281022[0-9]{18}

Digital Wallet 22

23

24

28102300 ~ 28102399

N/A

281023[0-9]{18}

Digital Wallet 23

24

24

28102400 ~ 28102499

N/A

281024[0-9]{18}

Digital Wallet 24

25

24

28102500 ~ 28102599

N/A

281025[0-9]{18}

Digital Wallet 25

26

24

28102600 ~ 28102699

N/A

281026[0-9]{18}

Digital Wallet 26

27

24

28166600 ~ 28166699

N/A

281666[0-9]{18}

Digital Wallet 27

28

24

28180100 ~ 28180199

N/A

281801[0-9]{18}

Digital Wallet 28

29

24

30103100 ~ 30103199

N/A

301031[0-9]{18}

Digital Wallet  29

30

24

30103200 ~ 30103299

N/A

301032[0-9]{18}

Digital Wallet 30

31

24

30103900 ~ 30103999

N/A

301039[0-9]{18}

Digital Wallet 31

Get a copy

Contact us to get the lastest version of the code issuer table.

Use

As an acquirer or ISV, you can determine the issuer of a consumer-presented code after you obtain the value of a consumer-presented code. When you test parameters in the table, such as length of CPC, CII and other conditions, follow the exact sequence. A sample of code snippet is shown as follows:

copy
package bar;

import java.util.List;

public class RoutingDemo {

    /**
     * Given routes configuration, find the route for the specific userCode.
     * 
     * @param userCode
     * @param routes
     * @return
     */
    public String[] routeDecision(String userCode, List<String[]> routes) {
        
        
        for (String[] route : routes) {
            
            //Return the first matching route if any.
            if (match(route, userCode)) {
                return route;
            }
        }

        throw new IllegalArgumentException("No route matches against " + userCode);
    }


    /**
     * 
     * Whether a single route rule matches the given userCode.
     * 
     * @param cci
     * @param userCode
     * @return
     */
    private boolean match(String[] route, String userCode) {

        String regex = route[3];

        return userCode.matches(regex);

    }

}

Note:

We recommend you not to hardcode the issuer determination process, in case of any further changes to the table.

After you determine the code issuer, you can pick up a route and forward a transaction to the code issuer. For more details, see Transaction Processing.

Apply for a code issuer ID

If you are seeking for the issuance of consumer-presented codes, click here to apply for a code issuer ID. You will then be registered into the code issuer table, so that the code can be identified by institutions who process transactions according to the code issuer table.

If you already issue codes, you can also contact us to register your existing issuing rules to the routing table. We will reply to you the required information for application and the application result.

More information

Consumer-Presented Mode

Code Format

Code Sample

Transaction Processing

Terminology

Contact Us