{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "invoice",
    "changes"
  ],
  "properties": {
    "invoice": {
      "type": "string",
      "description": "The BOLT12 invoice we fetched"
    },
    "changes": {
      "type": "object",
      "description": "Summary of changes from offer",
      "additionalProperties": false,
      "required": [],
      "properties": {
        "description_appended": {
          "type": "string",
          "description": "extra characters appended to the *description* field."
        },
        "description": {
          "type": "string",
          "description": "a completely replaced *description* field"
        },
        "vendor_removed": {
          "type": "string",
          "description": "The *vendor* from the offer, which is missing in the invoice"
        },
        "vendor": {
          "type": "string",
          "description": "a completely replaced *vendor* field"
        },
        "amount_msat": {
          "type": "msat",
          "description": "the amount, if different from the offer amount multiplied by any *quantity* (or the offer had no amount, or was not in BTC)."
        }
      }
    },
    "next_period": {
      "type": "object",
      "description": "Only for recurring invoices if the next period is under the *recurrence_limit*",
      "additionalProperties": false,
      "required": [
        "counter",
        "starttime",
        "endtime",
        "paywindow_start",
        "paywindow_end"
      ],
      "properties": {
        "counter": {
          "type": "u64",
          "description": "the index of the next period to fetchinvoice"
        },
        "starttime": {
          "type": "u64",
          "description": "UNIX timestamp that the next period starts"
        },
        "endtime": {
          "type": "u64",
          "description": "UNIX timestamp that the next period ends"
        },
        "paywindow_start": {
          "type": "u64",
          "description": "UNIX timestamp of the earliest time that the next invoice can be fetched"
        },
        "paywindow_end": {
          "type": "u64",
          "description": "UNIX timestamp of the latest time that the next invoice can be fetched"
        }
      }
    }
  }
}
