{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "invoices"
  ],
  "properties": {
    "invoices": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true,
        "required": [
          "label",
          "payment_hash",
          "status",
          "expires_at"
        ],
        "properties": {
          "label": {
            "type": "string",
            "description": "unique label supplied at invoice creation"
          },
          "description": {
            "type": "string",
            "description": "description used in the invoice"
          },
          "payment_hash": {
            "type": "hash",
            "description": "the hash of the *payment_preimage* which will prove payment",
            "maxLength": 64,
            "minLength": 64
          },
          "status": {
            "type": "string",
            "enum": [
              "unpaid",
              "paid",
              "expired"
            ],
            "description": "Whether it's paid, unpaid or unpayable"
          },
          "expires_at": {
            "type": "u64",
            "description": "UNIX timestamp of when it will become / became unpayable"
          },
          "msatoshi": {
            "deprecated": "true"
          },
          "amount_msat": {
            "type": "msat",
            "description": "the amount required to pay this invoice"
          },
          "bolt11": {
            "type": "string",
            "description": "the BOLT11 string (always present unless *bolt12* is)"
          },
          "bolt12": {
            "type": "string",
            "description": "the BOLT12 string (always present unless *bolt11* is)"
          },
          "local_offer_id": {
            "type": "hex",
            "description": "the *id* of our offer which created this invoice (**experimental-offers** only).",
            "maxLength": 64,
            "minLength": 64
          },
          "payer_note": {
            "type": "string",
            "description": "the optional *payer_note* from invoice_request which created this invoice (**experimental-offers** only)."
          }
        },
        "allOf": [
          {
            "if": {
              "properties": {
                "status": {
                  "type": "string",
                  "enum": [
                    "paid"
                  ]
                }
              }
            },
            "then": {
              "additionalProperties": false,
              "required": [
                "pay_index",
                "amount_received_msat",
                "paid_at",
                "payment_preimage"
              ],
              "properties": {
                "label": {},
                "description": {},
                "payment_hash": {},
                "status": {},
                "msatoshi": {},
                "amount_msat": {},
                "bolt11": {},
                "bolt12": {},
                "local_offer_id": {},
                "payer_note": {},
                "expires_at": {},
                "pay_index": {
                  "type": "u64",
                  "description": "Unique incrementing index for this payment"
                },
                "msatoshi_received": {
                  "deprecated": true
                },
                "amount_received_msat": {
                  "type": "msat",
                  "description": "the amount actually received (could be slightly greater than *amount_msat*, since clients may overpay)"
                },
                "paid_at": {
                  "type": "u64",
                  "description": "UNIX timestamp of when it was paid"
                },
                "payment_preimage": {
                  "type": "secret",
                  "description": "proof of payment",
                  "maxLength": 64,
                  "minLength": 64
                }
              }
            },
            "else": {
              "additionalProperties": false,
              "properties": {
                "label": {},
                "description": {},
                "payment_hash": {},
                "status": {},
                "msatoshi": {},
                "amount_msat": {},
                "bolt11": {},
                "bolt12": {},
                "local_offer_id": {},
                "payer_note": {},
                "expires_at": {}
              }
            }
          }
        ]
      }
    }
  }
}
