Status: Approved. Parent: MS22, Phases 2 and 3.
- A developer creates an invoice for an issuer without using the app.
- The developer can have it sent by email and gets its public payment link.
- The developer reads its mail and payment state until it reaches the state they need.
- A key belongs to one issuer.
- The issuer makes and revokes keys in the app.
- Requests are rate limited per key.
- A request carries the client, the lines, and whether to send the invoice.
- The invoice follows the same rules as one made in the app.
- Retrying a request never makes a second invoice.
- The response carries the invoice, its public link, its payment details, and its state.
- Payment details are the address, the BTC amount, the payment URI a wallet scans, and the rate used. CryptoZing sets the rate; the request cannot.
- A read returns the invoice, its public link, its payment details, and its state.
- State tells apart mail queued, mail delivered, payment seen, and payment confirmed.
- Only confirmed is safe to fulfill. The developer decides what to do with every other state.
- A draft can be edited or deleted.
- Once the public link is on, the invoice cannot change. Delete it and create a new one.
- Deleting keeps the record and any payments on it.
- Errors are documented and stable.
- An error names the field or the rule that failed.
- Webhooks and other push notifications.
- Anything other than invoices.