> ## Documentation Index
> Fetch the complete documentation index at: https://docs.moduluslabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Welcome to the Modulus Labs QR API documentation

## Overview

The Modulus Labs QR API enables you to create Dynamic QR Ph payments for Consumer Scans Business transactions. With this API, your customers can scan a generated QR code and complete transactions using their preferred online banking app.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/docs/qr/quickstart">
    Get up and running in minutes
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/qr/create">
    Explore all available endpoints
  </Card>

  <Card title="Authentication" icon="key" href="/docs/qr/authentication">
    Learn how to authenticate your requests
  </Card>

  <Card title="Testing" icon="flask" href="/docs/qr/testing">
    Test your integration in sandbox
  </Card>
</CardGroup>

## API Endpoint

All API requests should be made to the sandbox environment:

```bash theme={null}
https://qrph.sbx.moduluslabs.io
```

<Note>
  This is the sandbox environment URL. You'll receive production credentials and URL separately from Modulus Labs when you're ready to go live.
</Note>

## API Philosophy

The Modulus Labs QR API is designed with security and simplicity in mind:

<CardGroup cols={3}>
  <Card title="REST Architecture" icon="globe">
    Predictable resource-oriented URLs with standard HTTP methods
  </Card>

  <Card title="JSON Format" icon="brackets-curly">
    All requests and responses use JSON
  </Card>

  <Card title="HTTPS Only" icon="lock">
    All API requests must be made over HTTPS
  </Card>

  <Card title="Basic Auth" icon="shield">
    Simple HTTP Basic Authentication with Secret Keys
  </Card>

  <Card title="JWE Encryption" icon="shield-halved">
    End-to-end payload encryption for maximum security
  </Card>

  <Card title="Webhooks" icon="bell">
    Real-time notifications for payment events
  </Card>

  <Card title="PCI DSS 4.1 Certified" icon="badge-check">
    Modulus Labs is PCI DSS 4.1 compliant, ensuring the highest standards of payment security and data protection
  </Card>
</CardGroup>

## How It Works

<Steps>
  <Step title="Obtain Credentials">
    Modulus Labs will provide you with:

    * **Secret Key**: For authentication
    * **Encryption Key**: For JWE token encryption
    * **Activation Code**: Assigned to your sub-merchant account
  </Step>

  <Step title="Create QR Code">
    Make an API call to generate a Dynamic QR Ph with payment details (amount, currency, reference).
  </Step>

  <Step title="Customer Scans">
    Display the QR code to your customer. They scan it with their banking app.
  </Step>

  <Step title="Receive Webhook">
    Get real-time notifications when the payment is completed or fails.
  </Step>
</Steps>

## Supported Payment Providers

The QR API supports multiple underlying payment method providers, giving you flexibility based on your business needs.

<CardGroup cols={2}>
  <Card title="Coins.ph" icon="coins">
    Digital wallet and payment platform widely used in the Philippines
  </Card>

  <Card title="Netbank" icon="building-columns">
    Direct bank transfer via InstaPay network
  </Card>
</CardGroup>

Your payment provider is configured at the branch level. To discuss your provider setup or request a change, contact [support@moduluslabs.io](mailto:support@moduluslabs.io).

<Info>
  Provider routing is handled automatically—your API integration remains the same regardless of which provider is configured.
</Info>

## Key Features

### Dynamic QR Ph Payments

Create unique QR codes for each transaction with specific amounts and merchant references.

### Secure Encryption

All sensitive payload data is encrypted using JWE (JSON Web Encryption) with:

* **A256CBC-HS512** content encryption algorithm
* **A256KW** key wrap algorithm

### Real-time Webhooks

Get instant notifications about payment status changes through our webhook system.

### Comprehensive Error Handling

Clear error codes (10000001-10000015) and descriptive messages help you quickly identify and resolve issues.

### Sandbox Environment

Fully functional testing environment that mirrors production behavior without processing real payments.

## Use Cases

<AccordionGroup>
  <Accordion title="E-commerce Checkout">
    Add QR Ph as a payment option at checkout. Perfect for online stores wanting to accept real-time bank transfers.
  </Accordion>

  <Accordion title="In-store Payments">
    Display QR codes on POS terminals or kiosks for contactless payments in physical locations.
  </Accordion>
</AccordionGroup>

## What's Next?

<CardGroup cols={2}>
  <Card title="Quickstart Guide" icon="play" href="/docs/qr/quickstart">
    Follow our step-by-step guide to make your first API call
  </Card>

  <Card title="Authentication" icon="key" href="/docs/qr/authentication">
    Learn how HTTP Basic Auth works with Secret Keys
  </Card>

  <Card title="Encryption Guide" icon="lock" href="/docs/qr/encryption">
    Understand JWE token encryption for secure payloads
  </Card>

  <Card title="Contact Support" icon="envelope" href="mailto:support@moduluslabs.io">
    Get help from our technical team
  </Card>
</CardGroup>

<Note>
  **Ready to start building?** Head to the [Quickstart Guide](/docs/qr/quickstart) to make your first API call in minutes.
</Note>
