De generieke plugin stuurt gestandaardiseerde JSON data naar een instelbare endpoint
De generieke plugin kan worden gactiveerd per account.
Authenticatie
Een authenticatie sleutel moet worden ingesteld bij het activeren van de plugin. Deze wordt meegestuurd met de JSON verzoeken.
De consumerende partij controleert de header:
api-key
De api-key stuurt Scanfie op naar de consumer/ ontvangende partij.
Aanroepen van de JSON endpoint
De generieke plugin zal automatisch een JSON endpoints aanroepen, afhankelijk van de geactiveerde 'acties'. De plugin gebruikt altijd een POST http method met application/json als Content-Type.
De plugin verwacht een http status code 200 of 202 terug en zal 2 pogingen doen als deze status niet ontvangen wordt (of bij bijvoorbeeld een timeout).
Data definities
De generieke plugin schrijft prijzen weg als Double, met een maximale precisie van 6 decimalen.
Datum en tijd worden verstuurd in ISO8601 formaat; yyyy-MM-dd'T'HH:mm:ss.SSSZ
Data per financiële transactie
Deze actie wordt direct na het afrekenen van een sessie (tafel, groep of losse verkoop) uitgevoerd. De JSON payload na een financiële transactie is alsvolgt samengesteld:
{
"receipt": {
"includedInTurnover": true,
"receiptId": "821dd2ed-d5f5-474f-9dd2-edd5f5d74fb1",
"internalId": null,
"totalPrice": 68.25,
"dateTimeReceipt": "2024-09-17T14:44:57.179+0200",
"items": [
{
"internalId": "2879543b-3370-4abf-b954-3b33704abf46",
"quantity": 3,
"storedPrice": 9.75,
"storedNettPrice": 8.944953,
"product": {
"name": "Cappuccino",
"internalId": "2dc286f7-fa71-4bdc-8286-f7fa718bdc3b",
"externalId": "",
"eanSku": null,
"priceIn": 3.25,
"priceEx": 2.981651,
"vat": 9
}
},
{
"internalId": "049f47eb-8e6c-46a6-9f47-eb8e6c46a6f8",
"quantity": 6,
"storedPrice": 58.5,
"storedNettPrice": 53.669724,
"product": {
"name": "Borrelplank 9st",
"internalId": "56f07526-2113-4265-b075-262113826507",
"externalId": "",
"eanSku": null,
"priceIn": 9.75,
"priceEx": 8.944954,
"vat": 9
}
}
]
},
"payment": {
"paymentId": "821dd2ed-d5f5-474f-9dd2-edd5f5d74fb1",
"paymentMethodExternalId": "1005",
"paymentAmount": 68.25,
"paymentTypeName": "Pin",
"dateTimePayment": "2024-09-17T14:49:41.869+0200"
}
}
De receipt node is een consolidatie van de bestellingen van een sessie (bijvoorbeeld een tafelrekening of groeprekening). De payment node is de financiële transactie geassocieerd met de bijbehorende omzet.
De includedInTurnover waarde geeft aan of de omzet mag worden meegeteld, bij bijvoorbeeld Derving of Representatie zal deze waarde false zijn.
Data per verkoop (alternatieve koppeling)
De generieke plugin kan losse bestelling direct doorsturen naar een JSON endpoint, indien deze actie actief is. De inhoud van deze JSON ziet er alsvolgt uit:
{
"order": {
"orderId": 29,
"internalId": null,
"totalPrice": 9.75,
"items": [
{
"internalId": "7d4715e6-b0b3-4781-8715-e6b0b3c7811d",
"quantity": 1,
"storedPrice": 9.75,
"storedNettPrice": 8.944954,
"product": {
"name": "Borrelplank 9st",
"internalId": "56f07526-2113-4265-b075-262113826507",
"externalId": "",
"eanSku": null,
"priceIn": 9.75,
"priceEx": 8.944954,
"vat": 9
}
}
]
}
}
De inhoud van deze JSON is compacter en is vaak een onderdeel van een onderliggende sessie (tafel of groepsrekening).