Blog
Decoding ASPI Standards: The Technical Backbone of QRIS in Indonesia

Introduction:


Indonesia's fintech ecosystem is undergoing a transformation with QRIS, a unified QR code standard built for interoperability and ease of use across diverse payment systems. In my previous blog (https://www.greyamp.com/blogs/building-an-acquirer-system-for-qris-integration-in-indonesias-fintech-landscape) , I covered the challenges and experiences of building a QRIS-compliant system. This post dives into the ASPI standards behind QRIS—technical requirements that make this interoperable solution possible.

1. Setting the Stage: Why QRIS Matters

QRIS, short for Quick Response Code Indonesian Standard, is designed to unify QR payment processing across providers. With a single QR code, merchants can accept payments from multiple operators, empowering small and medium-sized enterprises (SMEs) to join Indonesia’s digital economy with ease. Here, we explore how ASPI’s standards shape QRIS to support this vision.

2. Key Objectives: Expanding Payment Accessibility in Indonesia

ASPI’s QRIS standard seeks to empower SMEs with simplified digital payment solutions, thereby increasing financial inclusion. By supporting a unified QR code, QRIS makes it possible for any compatible payment provider to connect to Indonesia’s National Payment Gateway, enabling interoperability for small-scale and e-commerce transactions alike.

3. Understanding Data Objects: The Heart of QRIS’s Structure

Data in a QRIS code is organized into data objects, each following an ID-Length-Value format. Here’s what that looks like:

  • ID: A two-digit identifier (00-99) for each data field.
  • Length: Specifies the number of characters in the value.
  • Value: The data content, with flexible length, from 1 to 99 characters.

This consistent format ensures that all parties—merchants, payment providers, and end-users—experience uniform transactions, regardless of the payment provider used.

4. Data Format Types: How QRIS Ensures Reliable Data Transmission

To ensure consistent interpretation across platforms, each data object uses a specific data type:

  • String (S): General Unicode-supported characters.
  • Alphanumeric Special (ANS): Letters, numbers, and punctuation, as defined in EMV standards.
  • Numeric (N): Numbers only, for precise and quick processing.

These standardized formats allow QR codes to communicate effectively with diverse devices and applications, enhancing interoperability.

5. Data Organization: Tree Structure

  • Data Objects are arranged hierarchically, like a tree. Each Data Object can either be a simple data element (primitive Data Object) or a template.
  • Templates can contain other templates or primitive data objects, allowing for complex data encapsulation within a QR code. For example, a data object may contain a template with additional data fields, nested to represent specific payment details or metadata.

This organized data structure enables QRIS to support various payment types and use cases, where each data field has a clear role based on its position in the hierarchy, ensuring standardized information across different payment systems.

6. Availability of Data Objects

In the QRIS system, data objects within the QR code have different levels of required availability, categorized as follows:

  • Mandatory (M): These data objects must always be present in the QR code. They are essential for basic functionality and interoperability.
  • Conditional (C): These data objects are required only under certain conditions, depending on the context or specific transaction requirements.
  • Optional (O): These data objects are not required but can be included if needed to provide additional information.

6.1  Mandatory Key Fields

7.  QR Types

In the QRIS system, there are two main types of QR codes based on the Point of Initiation Method (ID "01"). This ID can be set to either "11" or "12," which defines whether the QR code remains static or changes dynamically for each transaction.

  1. Static QR Code (Value "11"):
    • The same QR code is displayed for every transaction.
    • Ideal for small businesses or individuals, as it allows multiple payments using the same QR code without needing to regenerate it each time.
  2. Dynamic QR Code (Value "12"):
    • A unique QR code is generated for each transaction.
    • Often used in larger retail settings, as it enables merchants to include transaction-specific information like amounts or order details, enhancing payment tracking and security.

These two types provide flexibility for merchants and users, ensuring QR codes are adaptable to different transaction needs within the Indonesian payment ecosystem.

8.  Transaction Amount Representation

In the QRIS acquirer system, the Transaction Amount (ID "54") is an optional data object used to specify the payment amount in a transaction. This field accepts positive whole numbers and can include a decimal point (“.”) to separate whole and fractional amounts. The decimal point can also appear without any digits following it, and its inclusion contributes to the overall character count.

For consistency and accuracy, the format for decimal places aligns with ISO 4217, which specifies the decimal precision for different currencies. No other characters, like spaces or commas, are allowed as thousands separators. For instance, a correct entry for IDR 10,000.00 would be formatted as "10000.00", "10000", or "10000.".

If this field is omitted, the user’s mobile app prompts them to enter the transaction amount manually. However, if the transaction amount is specified within the QR code, it appears as a fixed value in the app and cannot be altered by the user.

9.  How a QR Code to be Visualized !

10.  Conclusion

In conclusion, building the QRIS Acquirer system was a rewarding challenge that deepened our understanding of Indonesia’s payment standards and regulations. By adhering to ASPI guidelines and focusing on interoperability, we were able to create a system tailored to the evolving demands of the fintech landscape. The experience underscored the importance of aligning with technical standards while adapting to regional needs, setting a strong foundation for future advancements in digital payments. This project offers insights into both the strategic and technical dimensions of payment systems, hoping to inspire continued innovation in financial technology.

Decoding ASPI Standards: The Technical Backbone of QRIS in Indonesia
Nov 7, 2024

Introduction:


Indonesia's fintech ecosystem is undergoing a transformation with QRIS, a unified QR code standard built for interoperability and ease of use across diverse payment systems. In my previous blog (https://www.greyamp.com/blogs/building-an-acquirer-system-for-qris-integration-in-indonesias-fintech-landscape) , I covered the challenges and experiences of building a QRIS-compliant system. This post dives into the ASPI standards behind QRIS—technical requirements that make this interoperable solution possible.

1. Setting the Stage: Why QRIS Matters

QRIS, short for Quick Response Code Indonesian Standard, is designed to unify QR payment processing across providers. With a single QR code, merchants can accept payments from multiple operators, empowering small and medium-sized enterprises (SMEs) to join Indonesia’s digital economy with ease. Here, we explore how ASPI’s standards shape QRIS to support this vision.

2. Key Objectives: Expanding Payment Accessibility in Indonesia

ASPI’s QRIS standard seeks to empower SMEs with simplified digital payment solutions, thereby increasing financial inclusion. By supporting a unified QR code, QRIS makes it possible for any compatible payment provider to connect to Indonesia’s National Payment Gateway, enabling interoperability for small-scale and e-commerce transactions alike.

3. Understanding Data Objects: The Heart of QRIS’s Structure

Data in a QRIS code is organized into data objects, each following an ID-Length-Value format. Here’s what that looks like:

  • ID: A two-digit identifier (00-99) for each data field.
  • Length: Specifies the number of characters in the value.
  • Value: The data content, with flexible length, from 1 to 99 characters.

This consistent format ensures that all parties—merchants, payment providers, and end-users—experience uniform transactions, regardless of the payment provider used.

4. Data Format Types: How QRIS Ensures Reliable Data Transmission

To ensure consistent interpretation across platforms, each data object uses a specific data type:

  • String (S): General Unicode-supported characters.
  • Alphanumeric Special (ANS): Letters, numbers, and punctuation, as defined in EMV standards.
  • Numeric (N): Numbers only, for precise and quick processing.

These standardized formats allow QR codes to communicate effectively with diverse devices and applications, enhancing interoperability.

5. Data Organization: Tree Structure

  • Data Objects are arranged hierarchically, like a tree. Each Data Object can either be a simple data element (primitive Data Object) or a template.
  • Templates can contain other templates or primitive data objects, allowing for complex data encapsulation within a QR code. For example, a data object may contain a template with additional data fields, nested to represent specific payment details or metadata.

This organized data structure enables QRIS to support various payment types and use cases, where each data field has a clear role based on its position in the hierarchy, ensuring standardized information across different payment systems.

6. Availability of Data Objects

In the QRIS system, data objects within the QR code have different levels of required availability, categorized as follows:

  • Mandatory (M): These data objects must always be present in the QR code. They are essential for basic functionality and interoperability.
  • Conditional (C): These data objects are required only under certain conditions, depending on the context or specific transaction requirements.
  • Optional (O): These data objects are not required but can be included if needed to provide additional information.

6.1  Mandatory Key Fields

7.  QR Types

In the QRIS system, there are two main types of QR codes based on the Point of Initiation Method (ID "01"). This ID can be set to either "11" or "12," which defines whether the QR code remains static or changes dynamically for each transaction.

  1. Static QR Code (Value "11"):
    • The same QR code is displayed for every transaction.
    • Ideal for small businesses or individuals, as it allows multiple payments using the same QR code without needing to regenerate it each time.
  2. Dynamic QR Code (Value "12"):
    • A unique QR code is generated for each transaction.
    • Often used in larger retail settings, as it enables merchants to include transaction-specific information like amounts or order details, enhancing payment tracking and security.

These two types provide flexibility for merchants and users, ensuring QR codes are adaptable to different transaction needs within the Indonesian payment ecosystem.

8.  Transaction Amount Representation

In the QRIS acquirer system, the Transaction Amount (ID "54") is an optional data object used to specify the payment amount in a transaction. This field accepts positive whole numbers and can include a decimal point (“.”) to separate whole and fractional amounts. The decimal point can also appear without any digits following it, and its inclusion contributes to the overall character count.

For consistency and accuracy, the format for decimal places aligns with ISO 4217, which specifies the decimal precision for different currencies. No other characters, like spaces or commas, are allowed as thousands separators. For instance, a correct entry for IDR 10,000.00 would be formatted as "10000.00", "10000", or "10000.".

If this field is omitted, the user’s mobile app prompts them to enter the transaction amount manually. However, if the transaction amount is specified within the QR code, it appears as a fixed value in the app and cannot be altered by the user.

9.  How a QR Code to be Visualized !

10.  Conclusion

In conclusion, building the QRIS Acquirer system was a rewarding challenge that deepened our understanding of Indonesia’s payment standards and regulations. By adhering to ASPI guidelines and focusing on interoperability, we were able to create a system tailored to the evolving demands of the fintech landscape. The experience underscored the importance of aligning with technical standards while adapting to regional needs, setting a strong foundation for future advancements in digital payments. This project offers insights into both the strategic and technical dimensions of payment systems, hoping to inspire continued innovation in financial technology.

Subscribe To Our Newsletter

Do get in touch with us to understand more about how we can help your organization in building meaningful and in-demand products
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Blog

Decoding ASPI Standards: The Technical Backbone of QRIS in Indonesia

Written by:  

Aaquib

November 7, 2024

5 min read

Decoding ASPI Standards: The Technical Backbone of QRIS in Indonesia

Introduction:


Indonesia's fintech ecosystem is undergoing a transformation with QRIS, a unified QR code standard built for interoperability and ease of use across diverse payment systems. In my previous blog (https://www.greyamp.com/blogs/building-an-acquirer-system-for-qris-integration-in-indonesias-fintech-landscape) , I covered the challenges and experiences of building a QRIS-compliant system. This post dives into the ASPI standards behind QRIS—technical requirements that make this interoperable solution possible.

1. Setting the Stage: Why QRIS Matters

QRIS, short for Quick Response Code Indonesian Standard, is designed to unify QR payment processing across providers. With a single QR code, merchants can accept payments from multiple operators, empowering small and medium-sized enterprises (SMEs) to join Indonesia’s digital economy with ease. Here, we explore how ASPI’s standards shape QRIS to support this vision.

2. Key Objectives: Expanding Payment Accessibility in Indonesia

ASPI’s QRIS standard seeks to empower SMEs with simplified digital payment solutions, thereby increasing financial inclusion. By supporting a unified QR code, QRIS makes it possible for any compatible payment provider to connect to Indonesia’s National Payment Gateway, enabling interoperability for small-scale and e-commerce transactions alike.

3. Understanding Data Objects: The Heart of QRIS’s Structure

Data in a QRIS code is organized into data objects, each following an ID-Length-Value format. Here’s what that looks like:

  • ID: A two-digit identifier (00-99) for each data field.
  • Length: Specifies the number of characters in the value.
  • Value: The data content, with flexible length, from 1 to 99 characters.

This consistent format ensures that all parties—merchants, payment providers, and end-users—experience uniform transactions, regardless of the payment provider used.

4. Data Format Types: How QRIS Ensures Reliable Data Transmission

To ensure consistent interpretation across platforms, each data object uses a specific data type:

  • String (S): General Unicode-supported characters.
  • Alphanumeric Special (ANS): Letters, numbers, and punctuation, as defined in EMV standards.
  • Numeric (N): Numbers only, for precise and quick processing.

These standardized formats allow QR codes to communicate effectively with diverse devices and applications, enhancing interoperability.

5. Data Organization: Tree Structure

  • Data Objects are arranged hierarchically, like a tree. Each Data Object can either be a simple data element (primitive Data Object) or a template.
  • Templates can contain other templates or primitive data objects, allowing for complex data encapsulation within a QR code. For example, a data object may contain a template with additional data fields, nested to represent specific payment details or metadata.

This organized data structure enables QRIS to support various payment types and use cases, where each data field has a clear role based on its position in the hierarchy, ensuring standardized information across different payment systems.

6. Availability of Data Objects

In the QRIS system, data objects within the QR code have different levels of required availability, categorized as follows:

  • Mandatory (M): These data objects must always be present in the QR code. They are essential for basic functionality and interoperability.
  • Conditional (C): These data objects are required only under certain conditions, depending on the context or specific transaction requirements.
  • Optional (O): These data objects are not required but can be included if needed to provide additional information.

6.1  Mandatory Key Fields

7.  QR Types

In the QRIS system, there are two main types of QR codes based on the Point of Initiation Method (ID "01"). This ID can be set to either "11" or "12," which defines whether the QR code remains static or changes dynamically for each transaction.

  1. Static QR Code (Value "11"):
    • The same QR code is displayed for every transaction.
    • Ideal for small businesses or individuals, as it allows multiple payments using the same QR code without needing to regenerate it each time.
  2. Dynamic QR Code (Value "12"):
    • A unique QR code is generated for each transaction.
    • Often used in larger retail settings, as it enables merchants to include transaction-specific information like amounts or order details, enhancing payment tracking and security.

These two types provide flexibility for merchants and users, ensuring QR codes are adaptable to different transaction needs within the Indonesian payment ecosystem.

8.  Transaction Amount Representation

In the QRIS acquirer system, the Transaction Amount (ID "54") is an optional data object used to specify the payment amount in a transaction. This field accepts positive whole numbers and can include a decimal point (“.”) to separate whole and fractional amounts. The decimal point can also appear without any digits following it, and its inclusion contributes to the overall character count.

For consistency and accuracy, the format for decimal places aligns with ISO 4217, which specifies the decimal precision for different currencies. No other characters, like spaces or commas, are allowed as thousands separators. For instance, a correct entry for IDR 10,000.00 would be formatted as "10000.00", "10000", or "10000.".

If this field is omitted, the user’s mobile app prompts them to enter the transaction amount manually. However, if the transaction amount is specified within the QR code, it appears as a fixed value in the app and cannot be altered by the user.

9.  How a QR Code to be Visualized !

10.  Conclusion

In conclusion, building the QRIS Acquirer system was a rewarding challenge that deepened our understanding of Indonesia’s payment standards and regulations. By adhering to ASPI guidelines and focusing on interoperability, we were able to create a system tailored to the evolving demands of the fintech landscape. The experience underscored the importance of aligning with technical standards while adapting to regional needs, setting a strong foundation for future advancements in digital payments. This project offers insights into both the strategic and technical dimensions of payment systems, hoping to inspire continued innovation in financial technology.

About Greyamp

Greyamp is a boutique Management Consulting firm that works with large enterprises to help them on their Digital Transformation journeys, going across the organisation, covering process, people, culture, and technology. Subscribe here to get our latest digital transformation insights.