Deprecation warning

Please note that this is outdated documentation for an older release of the Scandit Barcode Scanner SDK.

We are deprecating the 5.x API on all platforms (except Linux). Release 5.19 in April 2021 will be our final. Applications running 5.x will continue to work, and we will continue to release critical bug fixes and security patches only, for one year. We encourage you to migrate to 6.x and take advantage of our latest / advanced features and improved performance.

You'll find the updated documentation at: Data Capture SDK Documentation for Android

Swiss QR

Overview

The parser supports the 1.0, 2.0 and the 2.1 versions of the Swiss QR ISO 20022 standard. For the complete documentation of the standard please refer to the official website.

Example

Parsing following code (without quotes):

"SPC\r\n0100\r\n1\r\nCH6812345678901234567\r\nScandit AG\r\nLimmatstrasse\r\n73\r\n8005\r\nZuerich\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n1234.00\r\nCHF\r\n2020-01-01\r\n\r\n\r\n\r\n\r\n\r\n\r\nNON\r\n\r\ntest code\r\nAC:Alternative scheme data first\r\nAC:Alternative scheme data second"

will result in following JSON output:

[
 {
   "name" : "QRCH/Header/QRType",
   "parsed" : "SPC",
   "rawString" : "SPC"
},
{
   "name" : "QRCH/Header/Version",
   "parsed" : "0100",
   "rawString" : "0100"
},
{
   "name" : "QRCH/Header/Coding",
   "parsed" : 1,
   "rawString" : "1"
},
{
   "name" : "QRCH/CdtrInf/IBAN",
   "parsed" : "CH6812345678901234567",
   "rawString" : "CH6812345678901234567"
},
{
   "name" : "QRCH/CdtrInf/Cdtr/Name",
   "parsed" : "Scandit AG",
   "rawString" : "Scandit AG"
},
{
   "name" : "QRCH/CdtrInf/Cdtr/StrtNm",
   "parsed" : "Limmatstrasse",
   "rawString" : "Limmatstrasse"
},
{
   "name" : "QRCH/CdtrInf/Cdtr/BldgNb",
   "parsed" : "73",
   "rawString" : "73"
},
{
   "name" : "QRCH/CdtrInf/Cdtr/PstCd",
   "parsed" : "8005",
   "rawString" : "8005"
},
{
   "name" : "QRCH/CdtrInf/Cdtr/TwnNm",
   "parsed" : "Zuerich",
   "rawString" : "Zuerich"
},
{
   "name" : "QRCH/CdtrInf/Cdtr/Ctry",
   "parsed" : "CH",
   "rawString" : "CH"
},
{
   "name" : "QRCH/UltmtCdtr/Name",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtCdtr/StrtNm",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtCdtr/BldgNb",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtCdtr/PstCd",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtCdtr/TwnNm",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtCdtr/Ctry",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/CcyAmtDate/Amt",
   "parsed" : "1234.00",
   "rawString" : "1234.00"
},
{
   "name" : "QRCH/CcyAmtDate/Ccy",
   "parsed" : "CHF",
   "rawString" : "CHF"
},
{
   "name" : "QRCH/CcyAmtDate/ReqdExctnDt",
   "parsed" : {
      "day" : 1,
      "month" : 1,
      "year" : 2020
   },
   "rawString" : "2020-01-01"
},
{
   "name" : "QRCH/UltmtDbtr/Name",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtDbtr/StrtNm",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtDbtr/BldgNb",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtDbtr/PstCd",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtDbtr/TwnNm",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/UltmtDbtr/Ctry",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/RmtInf/Tp",
   "parsed" : "NON",
   "rawString" : "NON"
},
{
   "name" : "QRCH/RmtInf/Ref",
   "parsed" : "",
   "rawString" : ""
},
{
   "name" : "QRCH/RmtInf/Ustrd",
   "parsed" : "test code",
   "rawString" : "test code"
},
{
   "name" : "QRCH/AltPmtInf/AltPmt/1",
   "parsed" : "AC:Alternative scheme data first",
   "rawString" : "AC:Alternative scheme data first"
},
{
   "name" : "QRCH/AltPmtInf/AltPmt/2",
   "parsed" : "AC:Alternative scheme data second",
   "rawString" : "AC:Alternative scheme data second"
}
]

Exposed fields for Version 1.0

The exposed fields correspond one-to-one with the fields defined in the specs. The full list is given below:

Element Name

Meaning

Always Present

May be empty

Parsed Content

QRCH/Header/QRType

Indicator for Swiss QR Code, always ‘SPC’

yes

no

QRCH/Header/Version

Version string, ‘0100’ for v1.0

yes

no

QRCH/Header/Coding

Character set code, always 1

yes

no

parsed Integer

QRCH/CdtrInf/IBAN

IBAN (string of 21 characters)

yes

no

QRCH/Cdtr/Name

Creditor’s name

yes

no

QRCH/Cdtr/StrtNm

Creditor’s street name

yes

yes

QRCH/Cdtr/BldgNb

Creditor’s house number

yes

yes

QRCH/Cdtr/PstCd

Creditor’s postal code

yes

no

QRCH/Cdtr/TwnNm

Creditor’s city

yes

no

QRCH/Cdtr/Ctry

Creditor’s country (2 digit ISO 3166-1)

yes

no

QRCH/UltmtCdtr/Name

Ultimate Creditor’s name

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/UltmtCdtr/StrtNm

Ultimate Creditor’s street name

yes

yes

QRCH/UltmtCdtr/BldgNb

Ultimate Creditor’s house number

yes

yes

QRCH/UltmtCdtr/PstCd

Ultimate Creditor’s postal code

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/UltmtCdtr/TwnNm

Ultimate Creditor’s city

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/UltmtCdtr/Ctry

Ultimate Creditor’s country (2 digit ISO 3166-1)

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/CcyAmtDate/Amt

Payment amount

yes

yes

QRCH/CcyAmtDate/Ccy

Currency (‘CHF’ or ‘EUR’)

yes

no

QRCH/CcyAmtDate/ReqdExctnDt

Due date

yes

yes

key/value pairs:

  • ‘year’ : YYYY,

  • ‘month’ : MM,

  • ‘day’ : DD

with YYYY, MM, DD integers

QRCH/UltmtDbtr/Name

Ultimate Debitor’s name

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/UltmtDbtr/StrtNm

Ultimate Debitor’s street name

yes

yes

QRCH/UltmtDbtr/BldgNb

Ultimate Debitor’s house number

yes

yes

QRCH/UltmtDbtr/PstCd

Ultimate Debitor’s postal code

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/UltmtDbtr/TwnNm

Ultimate Debitor’s city

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/UltmtDbtr/Ctry

Ultimate Debitor’s country (2 digit ISO 3166-1)

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/RmtInf/Tp

Reference type (QRR for QR reference, SCOR for Creditor Reference, NON wihtout reference)

yes

no

QRCH/RmtInf/Ref

Reference number

yes

yes

QRCH/AltPmtInf/AltPmt/1

Additional scheme parameters (first)

no

yes

QRCH/AltPmtInf/AltPmt/1

Additional scheme parameters (second)

no

yes

Exposed fields for Version 2.0 and 2.1

The exposed fields correspond one-to-one with the fields defined in the specs (link). The full list is given below:

Element Name

Meaning

Always Present

May be empty

Parsed Content

QRCH/Header/QRType

Indicator for Swiss QR Code, always ‘SPC’

yes

no

QRCH/Header/Version

Version string, ‘0200’ for v2.0 and ‘0210 for v2.1

yes

no

QRCH/Header/Coding

Character set code, always 1

yes

no

parsed Integer

QRCH/CdtrInf/IBAN

IBAN (string of 21 characters)

yes

no

QRCH/Cdtr/AdrTp

Address type

yes

yes

S for structured address, K for combined address

QRCH/Cdtr/Name

Creditor’s name

yes

no

QRCH/Cdtr/StrtNmOrAdrLine1

Creditor’s street name

yes

yes for structured address, no for combined address

QRCH/Cdtr/BldgNbOrAdrLine2

Creditor’s house number

yes

yes for structured address, no for combined address

QRCH/Cdtr/PstCd

Creditor’s postal code

yes

no for structured address, yes for combined address

QRCH/Cdtr/TwnNm

Creditor’s city

yes

no for structured address, yes for combined address

QRCH/Cdtr/Ctry

Creditor’s country (2 digit ISO 3166-1)

yes

no

QRCH/UltmtCdtr/AdrTp

Ultimate Creditor’s address type

yes

yes

S for structured address, K for combined address

QRCH/UltmtCdtr/Name

Ultimate Creditor’s name

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/UltmtCdtr/StrtNmOrAdrLine1

Ultimate Creditor’s street name

yes

yes for structured address, no for combined address

QRCH/UltmtCdtr/BldgNbOrAdrLine2

Ultimate Creditor’s house number

yes

yes for structured address, no for combined address

QRCH/UltmtCdtr/PstCd

Ultimate Creditor’s postal code

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/UltmtCdtr/TwnNm

Ultimate Creditor’s city

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/UltmtCdtr/Ctry

Ultimate Creditor’s country (2 digit ISO 3166-1)

yes

yes (but only if all other QRCH/UltmtCdtr/* fields are empty)

QRCH/CcyAmtDate/Amt

Payment amount

yes

yes

QRCH/CcyAmtDate/Ccy

Currency (‘CHF’ or ‘EUR’)

yes

no

QRCH/UltmtDbtr/AdrTp

Ultimate Debitor’s address type

yes

yes

S for structured address, K for combined address

QRCH/UltmtDbtr/Name

Ultimate Debitor’s name

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/UltmtDbtr/StrtNmOrAdrLine1

Ultimate Debitor’s street name

yes

yes for structured address, no for combined address

QRCH/UltmtDbtr/BldgNbOrAdrLine2

Ultimate Debitor’s house number

yes

yes for structured address, no for combined address

QRCH/UltmtDbtr/PstCd

Ultimate Debitor’s postal code

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/UltmtDbtr/TwnNm

Ultimate Debitor’s city

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/UltmtDbtr/Ctry

Ultimate Debitor’s country (2 digit ISO 3166-1)

yes

yes (but only if all other QRCH/UltmtDbtr/* fields are empty)

QRCH/RmtInf/Tp

Reference type (QRR for QR reference, SCOR for Creditor Reference, NON wihtout reference)

yes

no

QRCH/RmtInf/Ref

Reference number

yes

yes

QRCH/RmtInf/AddInf/Ustrd

Unstructured message

yes

yes

QRCH/RmtInf/AddInf/Trailer

Unambigous information for the end of payment data, always ‘EPD’

yes

no

QRCH/RmtInf/AddInf/StrdBkgInf

Bill information

yes

yes

QRCH/AltPmtInf/AltPmt/1

Additional scheme parameters (first)

no

yes

QRCH/AltPmtInf/AltPmt/2

Additional scheme parameters (second)

no

yes