{
    "$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": "hex",
	    "description": "the hash of the *payment_preimage* which will prove payment",
	    "maxLength": 64,
	    "minLength": 64
	},
	"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": "hex",
	    "description": "the proof of payment: SHA256 of this **payment_hash**",
	    "maxLength": 64,
	    "minLength": 64
	},
	"local_offer_id": {
	    "type": "hex",
	    "description": "the *id* of our offer which created this invoice (**experimental-offers** only).",
	    "maxLength": 64,
	    "minLength": 64
	}
    }
}
