[Ginger Payments] The JSON Schema of a «POST /v1/orders/» request

https://www.gingerpayments.com/docs#Reference
It differs from the Kassa Compleet schema.

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Order",
    "definitions": {
        "order": {
            "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
                },
                "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",
                    "pattern": "^[a-zA-Z]{3}$"
                },
                "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": ["has-refunds", "is-refund"],
                        "readOnly": true
                    },
                    "readOnly": true
                },
                "transactions": {
                    "$ref": "transactions.json#"
                },
                "return_url": {
                    "description": "Your customer will be redirected here after payment",
                    "type": ["string", "null"],
                    "format": "uri"
                },
                "order_lines": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/order_line",
                        "required": ["currency", "amount", "description", "quantity"]
                    },
                    "minItems": 0,
                    "uniqueItems": false
                },
                "customer": {
                    "$ref": "#/definitions/customer"
                },
                "extra": {
                    "type": "object"
                }
            },
            "additionalProperties": false
        },
        "order_line": {
            "type": "object",
            "properties": {
                "id": {
                    "description": "Order line identifier",
                    "type": "string",
                    "readOnly": true
                },
                "merchant_order_line_id": {
                    "description": "Merchant's internal order line identifier",
                    "type": ["string", "null"]
                },
                "currency": {
                    "description": "Currency code (ISO 4217)",
                    "type": "string",
                    "pattern": "^[a-zA-Z]{3}$"
                },
                "amount": {
                    "description": "Amount for a single item (including VAT)",
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "quantity": {
                    "type": "number"
                },
                "vat_currency": {
                    "description": "Currency code (ISO 4217)",
                    "type": ["string", "null"],
                    "pattern": "^[a-zA-Z]{3}$"
                },
                "vat_amount": {
                    "type": ["integer", "null"]
                },
                "vat_percentage": {
                    "type": ["number", "null"],
                    "minimum": 0,
                    "maximum": 100
                }
            },
            "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}$"
                },
                "phone_numbers": {
                    "type": ["array", "null"],
                    "items": { "type": "string" }
                }
            },
            "additionalProperties": false
        }
    },
    "$ref": "#/definitions/order",
    "required": ["currency", "amount", "transactions"]
}

See also: