Show the store, not the string
The real name, logo and street address of the store your customer walked into, the same one printed at the top of their receipt.
Transaction enrichment
Smartbills matches a card transaction to the itemized receipt from the point of sale, so your customers see the store, every item, the taxes and the tip, not a string of capitals.

Smartbills names the merchant, attaches the itemized receipt and files every line before the transaction reaches your app.
The real name, logo and street address of the store your customer walked into, the same one printed at the top of their receipt.
Each item on the receipt gets its own category, so the lattes are coffee and the toast is food, not one line of restaurants. The merchant's category stays put month after month.
Every item and its quantity, the subtotal, each tax, the tip and the payment method, straight from the point of sale and labelled as facts rather than guesses.
One call at authorization, a batch endpoint for backfill and a webhook when a receipt arrives after the charge. Deployed in-region.
Descriptor, amount, timestamp and whatever else you have: an ISO 8583 field, an open-banking row or a CSV. No cardholder data needed.
If a store that uses Smartbills issued a receipt for that amount, at that terminal, at that time, the merchant is known, not guessed.
Descriptor parsing, our reference data and a model cover what the network can't. Every field says where it came from and how sure it is.
Name, logo, map pin, category and, when there is one, the itemized receipt, in your own design.
SDKs
Send the authorization your processor already gives you. Get back the merchant, its location and the itemized receipt.
@smartbills/sdk@smartbills/react-sdkSmartbills.SDKsmartbillsimport { SmartbillsClient } from "@smartbills/sdk";const smartbills = new SmartbillsClient({ accessToken: process.env.SMARTBILLS_TOKEN });// The authorization, as your processor sends itconst receipt = await smartbills.receipts.find({ descriptor: "SQ *MAPLE&RYE MTL QC", amount: -36.72, currency: "CAD", mcc: "5814", authCode: "A7K2Q9", last4: "4021", authorizedAt: "2026-10-08T12:41:07-04:00",});FAQ
Lo que nos preguntan antes de registrarse.
Get started
Measuring coverage against your own book is the quickest way to know what you'd get back.