Architecture

This page explains the technical architecture of the Get Smart App2App integration for Android, detailing how the components interact and communicate.

System Overview

The App2App integration relies on standard Android Intent mechanisms to facilitate communication between two distinct applications installed on the same device:
  1. The external app (your app) initiates the process and receives the result
  2. The Get Smart app processes the secure transaction and handles payment logic

This separation of concerns allows your application to leverage payment functionality without implementing the complex security and compliance requirements of payment processing.

Component Architecture

The App2App integration involves two distinct components working together to process payments. Understanding each component's responsibilities helps you implement the integration correctly and troubleshoot issues effectively.

Your Application

Your application is responsible for:

  • Generating the payment request with transaction details (amount, type, invoice number)
  • Creating and launching the Android Intent with the specific action name
  • Receiving and processing the transaction result
  • Handling error scenarios (e.g., missing Get Smart app)
  • Managing your business logic based on payment outcomes

Get Smart Application

The Get Smart application (Aplicación de Cobro) handles:

  • Card reading (EMV chip, contactless NFC, magnetic stripe)
  • Payment gateway communication
  • Transaction security and encryption
  • Receipt printing (merchant and customer copies)
  • PCI DSS compliance requirements
  • EMV certification requirements

Communication Mechanism

The integration uses Android's standard inter-application communication through Intents.

Intent-Based Communication

The communication follows this pattern:

  1. Intent Creation: Your app creates an Intent with a specific action name
  2. Parameter Passing: Transaction parameters are added as Intent extras
  3. Activity Launch: The Intent is launched using startActivityForResult
  4. Transaction Processing: The Get Smart app takes control and processes the payment
  5. Result Return: The Get Smart app returns control with transaction results as Intent extras
  6. Result Handling: Your app processes the outcome in onActivityResult

Intent Action Name

The specific action name used for payment requests is:

text
es.android.redsys.mPOS.movil.tpvAndroid_PAYMENT_REQUEST

This action name is the unique identifier that routes the Intent to the Get Smart application.

Data Flow

The data flow between applications follows this sequence:

Security Considerations

The App2App architecture is designed with security as a core principle, leveraging Android's application isolation to protect sensitive payment data. Understanding how the security model works helps you implement the integration correctly while maintaining compliance with payment industry standards.

Application Isolation

Each application runs in its own security sandbox. Your application never has direct access to:

  • Card data (PAN, CVV, expiration date)
  • PIN entries
  • Cryptographic keys
  • Gateway credentials

The Get Smart application handles all sensitive data within its secure environment.

Data Transmission

Only non-sensitive transaction metadata is passed between applications:

  • Transaction amount
  • Operation type (sale/refund)
  • Invoice/order numbers
  • Authorization results
  • Response codes

Certification Requirements

Because the Get Smart application is the only component that handles card data and gateway communication:

  • Your app does NOT need PCI DSS certification
  • Your app does NOT need EMV certification
  • Your app does NOT need payment application certification

The certified Get Smart application handles all compliance requirements.

Configuration Requirements

The architecture requires minimal configuration:

No Special Permissions

Your AndroidManifest.xml does not require any special permissions for:
  • Inter-application communication
  • Payment processing
  • Card reading
  • Network access (for payment gateway)
The standard startActivityForResult mechanism works without additional configuration.

No External Dependencies

Your application does not need to:

  • Include any Get Smart SDKs or libraries
  • Configure API keys or credentials
  • Manage device pairing or registration

The integration relies entirely on Android's built-in Intent system.

Error Handling

Proper error handling ensures your application gracefully manages scenarios where the Get Smart application is unavailable or incompatible. Implementing these error checks improves the user experience and helps prevent application crashes.

Missing Application

If the Get Smart application is not installed, Android will throw an ActivityNotFoundException. Your application must catch this exception and inform the user.

Application Version

Always ensure the Get Smart application is updated to the latest version. Older versions may not support all features or may have different parameter requirements.

Next Steps