{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "label",
    "payment_hash",
    "status",
    "description",
    "expires_at"
  ],
  "properties": {
    "label": {
      "type": "string",
      "description": "the label for the invoice"
    },
    "bolt11": {
      "type": "string",
      "description": "the bolt11 string (always present unless **bolt12** is)"
    },
    "bolt12": {
      "type": "string",
      "description": "the bolt12 string instead of **bolt11** (**experimental-offers** only)"
    },
    "payment_hash": {
      "type": "hash",
      "description": "the hash of the *payment_preimage* which will prove payment"
    },
    "amount_msat": {
      "type": "msat",
      "description": "The amount of the invoice (if it has one)"
    },
    "status": {
      "type": "string",
      "enum": [
        "paid",
        "expired",
        "unpaid"
      ],
      "description": "Whether it has been paid, or can no longer be paid"
    },
    "description": {
      "type": "string",
      "description": "Description extracted from **bolt11** or **bolt12**"
    },
    "expires_at": {
      "type": "u64",
      "description": "UNIX timestamp of when invoice expires (or expired)"
    },
    "pay_index": {
      "type": "u64",
      "description": "Incrementing id for when this was paid (**status** *paid* only)"
    },
    "amount_received_msat": {
      "type": "msat",
      "description": "Amount actually received (**status** *paid* only)"
    },
    "paid_at": {
      "type": "u64",
      "description": "UNIX timestamp of when invoice was paid (**status** *paid* only)"
    },
    "payment_preimage": {
      "type": "secret",
      "description": "the proof of payment: SHA256 of this **payment_hash**"
    },
    "local_offer_id": {
      "type": "hex",
      "description": "the *id* of our offer which created this invoice (**experimental-offers** only).",
      "maxLength": 64,
      "minLength": 64
    },
    "invreq_payer_note": {
      "type": "string",
      "description": "the optional *invreq_payer_note* from invoice_request which created this invoice (**experimental-offers** only)."
    }
  }
}
