LogoLogo
  • Welcome
  • Merchant API
    • Authentication
    • Card linking Receipt API
    • Token Receipt API
    • Dynamic QR Code
  • Partner App API
    • Authentication
    • OAuth2 Flow
    • GET Receipt
    • Notifications
  • Issuers
    • Issuer flow
    • Bank Piloting
    • Notifications
  • Filetypes
    • ReceiptHero JSON
      • HeroJSON Specification
        • Payment Types
    • Finvoice XML eReceipt
  • Support
    • Slack channel
Powered by GitBook
On this page
  • Merchant object
  • Products array
  • Receipt VAT specification
  • Payments
  • General Receipt Data
  • Verifications array
  • Attachments
  1. Filetypes
  2. ReceiptHero JSON

HeroJSON Specification

Merchant object

"merchant": {
    "name": "Global Receipt Delicatesse",
    "companyID": "123456-7",
    "branch": {
      "id": "340",
      "posId": "2",
      "name": "Receipt Restaurant",
      "subName":"FastFood",
      "email": "restaurant@example.com",
      "phone": "040-5086462",
      "websiteURL": "https://www.getreceipthero.com/",
      "address": {
        "streetAddress": "Itsenäisyydenkatu 17 a 15",
        "city": "Tampere",
        "zipCode": "33500",
        "country": "Finland"
      }
    }
Key
Type
Description
Required

name

String

Company name

✅

companyID

String

Company's business id or VAT number

✅

Branch object

Key
Type
Description
Required

id

String

Unique identifier for a branch (e.g., cost center number or another identifier used to distinguish branches of a Merchant)

✅

posId

String

Logical cash register id

✅

name

String

Branch name

✅

subName

String

Freetext slogan etc, placed under branch name

email

String

Email address to branch / company support

phone

String

Phone number to branch / company support

websiteURL

String

Website URL of branch / company

address

Object

Address values

✅

String

Branch location street address

✅

String

Branch location city

✅

String

Branch location zip code

✅

String

Branch location country

✅

Products array

Products array contains all product on receipt

 "products": [
    {
      "name": "Ground Control",
      "EANCode": "42222130165",
      "quantity": "4",
      "productId": "1234",
      "quantityCode": "PCS",
      "freeText": "Product instructions etc",
      "categorization": { "main": "12", "product": "122", "sub": "1224" },
      "unitPriceIncVAT": 5180,
      "unitPriceIncVATDecimal": "51,80",
      "totalAmountExcVAT": 18836,
      "totalAmountIncVAT": 20720,
      "vats": [
        {
          "VATRate": "24",
          "VATAmount": 1884,
          "totalAmountExcVAT": 18836,
          "totalAmountIncVAT": 20720
        }
      ],
      "discounts": [
        {
          "amount": 0,
          "percentage": "0.00",
          "description": ""
        }
      ],
      "customAttributes": [
        { "Warranty": "2 years" },
        { "Valid until": "2020-11-26" }
      ]
    }
  ],
Key
Type
Description
Required

name

String

Product name

✅

EANCode

String

Product EAN code

quantity

String

Quantity of product

✅

productId

String

Merchants internal productID

quantityCode

String

Quantity code for product

✅

freeText

String

Product related text field

unitPriceIncVAT

Integer

Unit price including VAT in

fractional unit (Cents in Euros etc.)

✅

unitPriceIncVATDecimal

String

Unit price including VAT in main currency unit. Mainly used by petrol receipts

totalAmountExcVAT

Integer

Total price for product row without VAT in fractional unit

✅

totalAmountIncVAT

Integer

Total price for product row with VAT in fractional unit

✅

vats

Array

Product level VAT specifications

One object represents one VAT rate.

If product has multiple taxrates -> multiple objects

✅

String

VAT rate. Integer or Decimal

✅

Integer

VAT amount in fractional unit

✅

Integer

Amount without VAT in fractional unit

✅

Integer

Amount with VAT in fractional unit

✅

discounts

Array

Product level discount objects.

Integer

Amount of discount in fractional unit

✅

String

Discount percentage in decimal

String

Discount reason in free text

✅

customAttributes

Array

Key value pair for custom attributes on product

These key value pair will be shown on receipt as table under product.

String

Free key name

✅

String

Free value

✅

Product Categorization

"categorization": 
  { 
    "main": "12",
    "product": "122",
    "sub": "1224",
    "tags": ["stampcard-identifier"]
  }
Key
Type
Description
Required

main

String

Main category identifier

product

String

Product category identifier

✅

sub

Integer

Sub category identifier

tags

String Array

A list of custom tags, used for purposes such as marking a product's inclusion in a stamp card offer

Product Journey

When dealing with travel-related products such as bus, train, taxi, or other transportation services, it is possible to include structured journey details alongside the product line item. The journey object allows specifying relevant metadata such as the type of transport, schedule, distance, emissions, and location data for both origin and destination.

"journey": {
  "type": "TRAIN",
  "id": "IC924",
  "distance": 185000,
  "duration": 120,
  "CO2Emissions": 222,
  "origin": {
    "name": "Pasila",
    "city": "Helsinki",
    "country": "Finland",
    "latitude": "60.1988",
    "longitude": "24.9333",
    "datetime": "2025-04-02T10:00:00+02:00"
  },
  "destination": {
    "name": "Turku (City Centre, Logomo)",
    "city": "Helsinki",
    "country": "Finland",
    "latitude": "60.45694",
    "longitude": "22.25750",
    "datetime": "2025-04-02T12:00:00+02:00"
  }
}

Journey Object

Key
Type
Description
Required

type

String

Type of Journey

✅

id

String

Journey identifier, such as train connection or flight number

distance

Number

Journey distance in meters

duration

Number

Journey duration in minutes

CO2Emissions

Integer

CO2 Emissions in grams

origin

Journey origin

✅

destination

Journey destination

✅

Journey Location Object

Key
Type
Description
Required

name

String

Journey location name

✅

city

String

Journey location city

country

String

Journey location country

latitude

String

Journey location latitude

longitude

String

Journey location longitude

datetime

String

Departure or Arrival time as ISO 8601 datetime with offset

Receipt VAT specification


 "vats": [
    {
      "VATRate": "24",
      "totalVATAmount": 1884,
      "totalAmountExcVAT": 18836,
      "totalAmountIncVAT": 20720,
      "VATCode": "A"
    }
  ],
Key
Type
Description
Required

vats

Array

Receipt total VATs as array of objects per VAT rate

✅

String

VAT rate. Integer or Decimal

✅

Integer

VAT amount in fractional unit

✅

Integer

Amount without VAT in fractional unit

✅

Integer

Amount with VAT in fractional unit

✅

VATCode

String

VAT identifier

Payments

HeroJSON supports a variety of payment types including card, cash, gift card, and online payments — see the full list of Payment Types for details. Payments are mapped as an array of Payment Objects as shown in the example below.

Payments Example

  "payments": [
    {
      "type": "CARD",
      "amount": 20720,
      "attributes": {
        "cardType": "Debit Mastercard",
        "maskedPAN": "557760******3201",
        "timeStamp": "2022-09-01T12:35:34.678+02:00",
        "terminalId": "BS-4545F9",
        "referenceNumber": "220901015555",
        "authorizationCode": "HIU456",
        "authorizationMethodType": "CHIP_AND_PIN",
        "transactionId": "05555",
        "transactionType": "PURCHASE",
        "transactionRawText": "CARD TRANSACTION\n\nCard: Debit Mastercard\n **** **** **** 3201 LN\nApplication: A0000000041010\nTr.Nr/Auth: 05555/HIU456\nPayee/business: 0029432413000/0001\n\nReference: 220901015555\n\nCredit/Charge 207,20 EUR\nPayPass Contactless \n\n"
      }
    },
    {
      "type": "CASH",
      "amount": 34920,
      "attributes": {
        "handedAmount": 40000
      }
    }
  ]

General Receipt Data

 "type": "PURCHASE",
 "customAttributes": [
    { "key": "value" },
    { "key2": "value2" },
    { "key3": "value3" }
  ],
  "freeText": "Custom greetings etc",
  "receiptNumber": "89942344234",
  "receiptTimeStamp": "2018-11-26T12:35:34.678+02:00",
  "currencyISOCode": "EUR",
  "totalVATAmount": 1884,
  "totalPriceExcVAT": 18836,
  "totalPriceIncVAT": 20720,
}
Key
Type
Description
Required

type

String

Type of Receipt

freeText

String

Freetext field to be displayed on receipt

receiptNumber

String

Merchant's internal receiptnumber

✅

receiptTimeStamp

String

ISO 8601 datetime with offset

✅

currencyISOCode

String

Currency code

✅

totalVATAmount

Integer

Total VAT amount in fractional unit

✅

totalPriceExcVAT

Integer

Total price excluding VAT

✅

totalPriceIncVAT

Integer

Total price including VAT

✅

customAttributes

Array

Key value pair list, to be show on receipt

String

Free text key

✅

String

Free text value

✅

Verifications array

"verifications": [
  {
    "type": "OCMF",
    "version": "1.0",
    "publicKey": "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEqHEykfqZhspgok6zCQh/329B38xine8ujzT8p5Nh7lek47cYeZj507aN6E4/QirF1b7Q57ln4VGfK6h0d0GOQA==",
    "transactionId": "848182519",
    "currentType": "AC",
    "transactionBegin": {
      "signedData": "OCMF|{\"FV\" : \"1.0\",\"GI\" : \"Nano CH-10311C\",\"GS\" : \"060643\",\"GV\" : \"v017\",\"PG\" : \"T198\",\"MV\" : \"DZG\",\"MM\" : \"DVH4013\",\"MS\" : \"1DZG0033016824\",\"IS\" : true,\"IL\" : \"VERIFIED\",\"IF\" : [\"RFID_NONE\",\"OCPP_NONE\",\"ISO15118_NONE\",\"PLMN_NONE\"],\"IT\" : \"EMAID\",\"ID\" : \"04ab076a345b85\",\"CT\" : \"CBIDC\",\"CI\" : \"CI\",\"RD\" : [{\"TM\" : \"2021-10-26T10:20:52,000+0200 I\",\"TX\" : \"B\",\"RV\" : \"       9.038\",\"RI\" : \"01-00:01.08.00.FF\",\"RU\" : \"kWh\",\"RT\" : \"AC\",\"EF\" : \"\",\"ST\" : \"G\"}]}|{\"SA\" : \"ECDSA-secp256k1-SHA256\",\"SD\" : \"3046022100A4C188533ECA1793336520F7F99E010E62DEC32ABD344A562B00D396F65DFFE9022100CB0FB3782E406525641D689F4326D2118365A722EE75AAAB976C14B090BE49DA\"}"
    },
    "transactionEnd": {
      "signedData": "OCMF|{\"FV\" : \"1.0\",\"GI\" : \"Nano CH-10311C\",\"GS\" : \"060643\",\"GV\" : \"v017\",\"PG\" : \"T199\",\"MV\" : \"DZG\",\"MM\" : \"DVH4013\",\"MS\" : \"1DZG0033016824\",\"IS\" : true,\"IL\" : \"VERIFIED\",\"IF\" : [\"RFID_NONE\",\"OCPP_NONE\",\"ISO15118_NONE\",\"PLMN_NONE\"],\"IT\" : \"EMAID\",\"ID\" : \"04ab076a345b85\",\"CT\" : \"CBIDC\",\"CI\" : \"CI\",\"RD\" : [{\"TM\" : \"2021-10-26T10:21:22,000+0200 I\",\"TX\" : \"E\",\"RV\" : \"       9.038\",\"RI\" : \"01-00:01.08.00.FF\",\"RU\" : \"kWh\",\"RT\" : \"AC\",\"EF\" : \"\",\"ST\" : \"G\"},{\"TM\" : \"2021-10-26T10:21:22,000+0200 I\",\"TX\" : \"E\",\"RV\" : \"      30\",\"RI\" : \"01-00:00.08.06.FF\",\"RU\" : \"sec\",\"RT\" : \"AC\",\"EF\" : \"\",\"ST\" : \"G\"}]}|{\"SA\" : \"ECDSA-secp256k1-SHA256\",\"SD\" : \"3045022016FD6DF51EE338CC56F6035670172653C93A77F263B7B24DD5DC84EF7C4A98AB022100ADE8D7D9EC4EFFE2B3C0781C108B9DF2688776F81AE94D9230C92ED570C9693C\"}"
    }
  }
]

Verification Object

Key
Type
Description
Required

type

String

Type of verification

✅

version

String

Standard version

✅

publicKey

String

Public key for verifying data

✅

transactionId

String

Transaction identifier

✅

currentType

String

Current type

✅

transactionBegin

Transaction Event Object

Transaction Begin event data

✅ *

transactionEnd

Transaction Event Object

Transaction End event data

✅

* transactionBegin is mandatory when type=AC

Transaction Event Object

Key
Type
Description
Required

signedData

String

Signed transaction event data for verification

✅

Attachments

Attachments such as entrance tickets and gift cards can be included.

This is a premium feature. To enable this option, please reach out to the ReceiptHero sales team.

"attachments": [
    {
        "type": "QRCODE",
        "kind": "TICKET",
        "title": "Here is your ticket!",
        "description": "Present this code at the entrance to maintain your access.",
        "data": "89942344234",
        "validUntil": "2024-09-10T00:00:00.000+02:00"
    }
]
Key
Type
Description
Required

type

String

Type of attachment

✅

kind

String

Kind represents the purpose of the attachment

✅

title

String

Title shown on top of the attachment

✅

data

String

Data encoded to the attachment according to the provided type

✅

description

String

Description providing more details on how this attachment is used

validUntil

String

ISO 8601 string with offset, representing the last moment the attachment is valid for use

PreviousReceiptHero JSONNextPayment Types

Last updated 1 month ago

streetAddress

city

zipCode

country

VATRate

VATAmount

totalAmountExcVAT

totalAmountIncVAT

amount

percentage

description

key

value

VATRate

totalVATAmount

totalAmountExcVAT

totalAmountIncVAT

Key

Value

Allowed values
  TRAIN
  BUS
  TAXI
  FLIGHT
  FERRY
Allowed values
PURCHASE
RETURN
Allowed values
  AC
  DC
Allowed values
BARCODE
QRCODE
Allowed values
TICKET
RETURN
VOUCHER
Journey Location Object
Journey Location Object
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️
〰️