Skip to main content

Overview

Doss supports a merchant account type that allows businesses and individuals to accept wallet-to-wallet payments from customers. Merchants generate a unique QR code or payment link that customers scan or follow to complete a payment. All merchant payments are tracked in a dedicated payment history. There are two merchant types:
TypeDescription
StandardAccepts payments via QR code scan or shared payment link
ExpressStandard capabilities plus an API integration (client_id and client_secret) for programmatic payment flows

Creating a merchant store

1

Go to Store

Navigate to Store from the main menu and click Add Store.
2

Fill in store details

Provide the following:
  • Business name (must be unique)
  • Site URL
  • Store type (standard or express)
  • Address, latitude, and longitude
  • Description (note)
  • Logo (optional image upload)
  • Default currency
3

Save the merchant

The merchant is saved and assigned to a default merchant group (which determines the applicable fee rate). A unique merchant_uuid is generated.
4

QR code generated (Express only)

For Express merchants, a QR code is automatically generated and linked to the merchant’s client_id. This QR code encodes the express payment endpoint.

QR code for standard merchants

Standard merchants can display their store QR code so customers can pay by scanning it.
1

View your store

Open the merchant store from Store list.
2

Locate the QR code

The QR code is displayed on the store detail page. It encodes the merchant payment URL.
3

Customer scans and pays

The customer scans the QR code with their Doss app or a QR scanner, which opens the payment form pre-filled with the merchant details.

How customers pay merchants

1

Scan or open the payment link

The customer scans the merchant QR code or opens the shared payment link. The merchant store and currency are pre-filled.
2

Enter the payment amount

The customer enters the amount to pay (or the amount may be fixed for a specific transaction).
3

Confirm payment

The customer reviews the payment details and confirms. Funds are transferred from the customer’s wallet to the merchant’s wallet.
4

Payment recorded

A MerchantPayment record is created and a transaction entry with type Merchant Payment is created for the customer. The merchant’s payment history is updated.
Merchant payments are deducted from the customer’s default wallet in the merchant’s configured currency. The merchant’s fee is set by the merchant group assigned to the store.

Express merchant payment flow

Express merchants support a programmatic payment flow powered by the ExpressMerchantPaymentController. This enables third-party integrations to initiate payments on behalf of the merchant.
  • Each Express merchant has a unique client_id and client_secret generated at creation.
  • The QR code for an Express merchant encodes a URL that includes the client_id.
  • Payments initiated via the Express flow use the same wallet debit/credit mechanism as standard merchant payments.
Keep your client_secret confidential. It is used to authenticate server-side payment requests in the Express integration.

Merchant payment history

All payments received by a merchant are visible in the merchant’s payment history:
  • Navigate to Store and open the relevant store.
  • The payments tab shows all transactions linked to that merchant, including date, amount, currency, and customer details.
  • Cashiers (sub-accounts under a merchant) see only the payments they processed.
  • Managers and store owners see all payments.
Payment history can be exported to CSV or PDF.

Cashier accounts

Merchants can assign cashier sub-accounts to process payments on their behalf. Each cashier’s transactions are tracked separately under the merchant:
  • Cashiers see only their own transaction history.
  • Merchant owners and managers can see all cashier transactions.
  • Shift management is available for cashiers — shifts track total payments processed per session.

Invoices

Send itemized invoices that recipients pay from their wallet.

Request Money

Request a specific amount from another user.

Send Money

Transfer funds directly between user accounts.

Digital Wallet

View wallet balances and transaction history.

Build docs developers (and LLMs) love