https://s3-eu-west-1.amazonaws.com/wl1-apidocs/api.kassacompleet.nl/index.html#Reference
It differs from the Ginger Payments schema.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Order",
"definitions": {
"order_line": {
"type": "object",
"properties": {
"id": {
"description": "Order line identifier",
"type": "string",
"readOnly": true
},
"type": {
"description": "Type: physical, discount or shipping_fee",
"type": "string",
"enum": ["physical", "discount", "shipping_fee"]
},
"ean": {
"description": "Internation article number",
"type": "string"
},
"merchant_order_line_id": {
"description": "Merchant's internal order line identifier",
"type": "string"
},
"name": {
"description": "Name, usually a short description",
"type": "string"
},
"url": {
"description": "Item product page URI",
"type": "string",
"format": "uri"
},
"image_url": {
"description": "Item image URI",
"type": "string",
"format": "uri"
},
"currency": {
"description": "Currency code (ISO 4217)",
"type": "string",
"enum": ["EUR"]
},
"amount": {
"description": "Amount for a single item (including VAT) in cents",
"type": "integer"
},
"quantity": {
"type": "integer"
},
"discount_rate": {
"description": "Percentage of discount, multiplied by 100 and provided as an integer. i.e. 11.57% should be sent as 1157",
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"vat_percentage": {
"description": "Percentage of tax rate, multiplied by 100 and provided as an integer. i.e. 17.50% should be sent as 1750",
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": ["merchant_order_line_id", "name", "quantity", "amount", "vat_percentage", "currency"],
"additionalProperties": false
},
"customer": {
"type": "object",
"properties": {
"merchant_customer_id": {
"description": "Merchant's internal customer identifier",
"type": ["string", "null"]
},
"email_address": {
"type": ["string", "null"],
"format": "email"
},
"first_name": {
"type": ["string", "null"]
},
"last_name": {
"type": ["string", "null"]
},
"address_type": {
"type": ["string", "null"],
"enum": ["customer", "delivery", "billing"]
},
"address": {
"type": ["string", "null"]
},
"postal_code": {
"type": ["string", "null"]
},
"housenumber": {
"type": ["string", "null"]
},
"country": {
"description": "ISO 3166-1 alpha-2 country code",
"type": ["string", "null"],
"pattern": "^[a-zA-Z]{2}$"
},
"locale": {
"description": "POSIX locale without codeset and modifier",
"type": ["string", "null"],
"pattern": "^[a-zA-Z]{2}(_[a-zA-Z]{2})?$"
},
"phone_numbers": {
"type": ["array", "null"],
"items": { "type": "string" }
},
"ip_address": {
"description": "Customer's IP address",
"type": "string",
"format": "ipv4"
}
},
"additionalProperties": false
},
"client": {
"type": "object",
"properties": {
"user_agent": {
"description": "HTTP user agent",
"type": ["string", "null"],
"readOnly": true
},
"platform_name": {
"description": "Name of the software used to connect to the API, e.g. Magento Community Edition",
"type": ["string", "null"]
},
"platform_version": {
"description": "Version of the software used to connect to the API, e.g. 1.9.2.2",
"type": ["string", "null"]
}
},
"additionalProperties": false
}
},
"type": "object",
"properties": {
"id": {
"description": "Order identifier",
"type": "string",
"readOnly": true
},
"refund_of_order_id": {
"description": "Order identifier of the original order, if this is a refund",
"type": "string",
"readOnly": true
},
"chargeback_of_order_id": {
"description": "Order identifier of the original order, if this is a chargeback",
"type": "string",
"readOnly": true
},
"project_id": {
"description": "Project identifier",
"type": "string",
"readOnly": true
},
"merchant_order_id": {
"description": "Merchant's internal order identifier",
"type": ["string", "null"]
},
"created": {
"description": "Date & time (ISO 8601 / RFC 3339)",
"type": "string",
"format": "date-time",
"readOnly": true
},
"modified": {
"description": "Date & time (ISO 8601 / RFC 3339)",
"type": ["string", "null"],
"format": "date-time",
"readOnly": true
},
"completed": {
"description": "Date & time (ISO 8601 / RFC 3339)",
"type": ["string", "null"],
"format": "date-time",
"readOnly": true
},
"expiration_period": {
"description": "Time interval (ISO 8601 / RFC 3339)",
"type": ["string", "null"]
},
"currency": {
"description": "Currency code (ISO 4217)",
"type": "string",
"enum": ["EUR"]
},
"amount": {
"description": "Order amount (including VAT)",
"type": "integer",
"minimum": 1
},
"description": {
"type": "string"
},
"status": {
"type": "string",
"enum": ["new", "processing", "error", "completed", "cancelled", "expired", "see-transactions"],
"readOnly": true
},
"flags": {
"type": "array",
"items": {
"type": "string",
"enum": ["is-test", "has-refunds", "is-refund", "has-chargebacks", "is-chargeback"],
"readOnly": true
},
"readOnly": true
},
"transactions": {
"$ref": "transactions.json#"
},
"return_url": {
"description": "Your customer will be redirected here after payment",
"type": ["string", "null"],
"format": "uri"
},
"webhook_url": {
"description": "Used for transaction updates",
"type": "string",
"format": "uri"
},
"order_lines": {
"type": "array",
"items": {
"$ref": "#/definitions/order_line",
"required": ["currency", "amount", "description", "quantity"]
},
"uniqueItems": false
},
"customer": {
"$ref": "#/definitions/customer"
},
"client": {
"$ref": "#/definitions/client"
},
"extra": {
"type": "object"
}
},
"required": ["currency", "amount"],
"additionalProperties": false
}