Merchant side invoicing

Smarts offers merchant side invoice processing.

Implementation is OPTIONAL

General Flow

  1. Customer scans products to shopping cart.

  2. Smarts will send shopping cart to merchant when customer is ready to pay for the purchase.

  3. Merchant will response with generated receipt

  4. Customer will pay for receipt.

  5. Smarts will send receipt payment confirmation to merchant.


Visit your store configuration page in Smarts manager UI. Switch store side invoicing to ON position and implement SDK required methods.


You only need to create a new class, implement ReceiptAdapter interface and fill all required methods. API endpoints for merchant side invoicing are created automatically and secured with token.

It is important to add @Component annotation on top of the class. There is no restriction for class name or location in your project. Our SDK will find your implementation based on the interface (DI).

import ee.smarts.common.v1.Entities.receipt.Receipt;
import ee.smarts.common.v1.requests.CreateReceiptRequest;
import ee.smarts.common.v1.requests.ReceiptPaymentConfirmationRequest;
import ee.smarts.starter.adapter.ReceiptAdapter;
import org.springframework.stereotype.Component;
public class ReceiptAdapterImpl implements ReceiptAdapter {
    public Receipt create(CreateReceiptRequest request) {
        // implement this method
        return null;
    public void confirmationListener(ReceiptPaymentConfirmationRequest request) {
        // implement this method

There is additional step for customer in payment process when using merchant side invoicing. Smarts shows generated receipt to customer before they are able to pay for the purchase.

Last updated