Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developer.quickei.io/llms.txt

Use this file to discover all available pages before exploring further.

Accept Quickei QR payments at your Odoo POS and auto-reconcile invoices. The Quickei module integrates with Odoo’s Point of Sale and Accounting modules.

Requirements

RequirementVersion
Odoo18.0 (Community or Enterprise)
Modulesaccount, point_of_sale
QuickeiMerchant account with API keys

Installation

1

Download the module

Download the quickei_pos module from your Merchant Dashboard under Integrations > Odoo.
2

Install in Odoo

Copy the quickei_pos folder to your Odoo addons directory:
cp -r quickei_pos /opt/odoo/addons/
Then restart Odoo and activate Developer Mode. Go to Apps > Update Apps List, search for “Quickei” and install.
3

Configure API credentials

Navigate to Settings > Quickei POS and enter:
  • Client ID — Your merchant API client ID
  • Client Secret — Your merchant API secret
  • API Base URLhttps://quickei.io/merchant-api/pos/v1
  • Webhook Secret — Auto-generated, used for signature verification
Click Test Connection to verify.
4

Configure the webhook

Set your webhook URL in the Quickei Merchant Dashboard:
https://your-odoo.com/quickei/webhook

Features

POS QR Payments

At the Odoo Point of Sale, select Quickei QR as the payment method. A dynamic QR code is generated for the customer to scan with the Quickei app. Payment confirmation appears in real-time.

Invoice Auto-Reconciliation

When you validate (post) an invoice, the module automatically:
  1. Creates a Quickei payment order linked to the invoice
  2. Generates a payment link sent to the customer
  3. On payment, receives a webhook and creates a Payment Entry in Odoo
  4. Reconciles the invoice — no manual journal entries needed

Webhook Events

Quickei EventOdoo Action
pos.order.paidCreate Payment Entry, reconcile invoice
pos.order.expiredMark payment as expired
pos.order.cancelledMark payment as cancelled
pos.order.refundedCreate reverse Payment Entry

Webhook Signature Verification

Every webhook includes an X-Quickei-Signature header. The module verifies it automatically:
import hmac, hashlib

def verify_signature(payload_bytes, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload_bytes,
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature)

API Client

The module includes a built-in API client with these methods:
MethodDescription
create_order()Create a POS order with QR code
get_order()Check order status
cancel_order()Cancel a pending order
list_orders()List all orders
test_connection()Verify API credentials

Create Order Example

order = self.env['quickei.api'].create_order(
    amount=150.00,
    currency='EUR',
    reference='INV/2026/0042',
    description='Invoice payment',
    payment_method='both',
    callback_url='https://your-odoo.com/quickei/webhook',
    expires_in=600,
    idempotency_key='INV-2026-0042',
)
# order['data']['qr_data'] → QR code content
# order['data']['payment_url'] → Payment page URL

Troubleshooting

Verify your Client ID and Client Secret are correct. Ensure your Odoo server can reach https://quickei.io (check firewall/proxy settings).
Ensure https://your-odoo.com/quickei/webhook is publicly accessible. Check Odoo logs for signature verification failures. Verify the webhook secret matches in both Quickei and Odoo settings.
Check that the invoice reference in the webhook payload matches an existing invoice in Odoo. Verify the account module is installed and the default payment journal is configured.
The Odoo module currently supports Odoo 18. For older versions, contact support for compatibility assistance.