Skip to main content
Bank statement lines are written for card networks, not people: SQ *BLUE BOTTLE COFFE OAKLAND CA, PAYPAL *SPOTIFYAB, AMZN Mktp US*2K4LX9B12. /transaction reads one and tells you who was paid: Cut-off words are completed (card networks truncate descriptors at 22 characters), and processor prefixes and store numbers are dropped. Lines that aren’t purchases say so in kind: person, transfer, fee, atm or refund. The merchant’s name is then resolved to its website the way /resolve does it: the name index first, then a live lookup that checks each candidate against its homepage, using the line’s city to tell local businesses apart. logo_url points at the merchant’s logo on the logo CDN, with your publishable token, ready for an <img> tag. include_brand=true adds the merchant’s full brand (logos, colors, fonts) as /brand returns it.

Example requests

Example response

Reading the response

country (where the card was used) and mcc (the merchant category code from your card data) are optional hints that help with ambiguous lines.

Credits

Statements repeat the same merchants every month, so after the first month most lines cost 1 credit.
Lines whose merchant is already in the name index answer in about a second. Others run a live lookup, which usually takes 2 to 5 seconds.

Next

Build a merchant feed

A recipe for readable transaction rows with logos.

API reference

Every parameter, and a playground to try it.