## §OIP SYSTEM ARTICLE — Messaging (5 operations)
A generated article for one OIP shelf. It lists every operation in this API/CLI/MCP/device/model/core subsystem, links each leaf article, and gives the ledger path for proof.

### Read Order
- scan operations
- open a leaf doc
- run via run_now or POST /api/dispatch
- open receipt
- repair/replay if needed

### Operations
- **SEND_PEPTIDE_INVOICE** — Create an invoice for existing customer $1 using catalog price $2 (qty $3). $4=send (true to finalize+send; de
  when: you need to send peptide invoice
  args: $1 | $2 | $3 | $4
  doc: https://miscsubjects.com/api/dispatch?key=SEND_PEPTIDE_INVOICE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SEND_PEPTIDE_INVOICE&body=%3Carg1%3E%7C%3Carg2%3E%7C%3Carg3%3E%7C%3Carg4%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SEND_PEPTIDE_INVOICE
- **SEND_NAMED_INVOICE** — Bill a named peptide. sku e.g. ESH-A9; tier starter|standard|advanced; duration 1mo|3mo|6mo|12mo; kind sub|one
  when: you need to send named invoice
  args: sku|tier|duration|kind|email|name|phone|mode
  doc: https://miscsubjects.com/api/dispatch?key=SEND_NAMED_INVOICE&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SEND_NAMED_INVOICE&body=%3Csku%3E%7C%3Ctier%3E%7C%3Cduration%3E%7C%3Ckind%3E%7C%3Cemail%3E%7C%3Cname%3E%7C%3Cphone%3E%7C%3Cmode%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SEND_NAMED_INVOICE
- **SEND_IMAGE_BLOOIO** — Send a message with an image to a Blooio chat (phone or group id)
  when: you need to send image blooio
  args: chat|text|attachment_url
  doc: https://miscsubjects.com/api/dispatch?key=SEND_IMAGE_BLOOIO&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SEND_IMAGE_BLOOIO&body=%3Cchat%3E%7C%3Ctext%3E%7C%3Cattachment_url%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SEND_IMAGE_BLOOIO
- **SEND_BY_CHANNEL** — Text Cyrus (or anyone) — the ONE way to send a message. $1=channel (use "blooio" to text Cyrus), $2=recipient 
  when: ANY "text me / send a text / message Cyrus / notify me / sms / dm me" request. This is the canonical texting row. Do NOT use BLOOIO_SEND_MES
  args: channel | recipient | text (pipe-delimited, exactly three)
  doc: https://miscsubjects.com/api/dispatch?key=SEND_BY_CHANNEL&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SEND_BY_CHANNEL&body=blooio%7C%2B14155480666%7CWoof%20woof.&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SEND_BY_CHANNEL
- **SEND_INVOICE_VIA_BLOOIO** — 
  doc: https://miscsubjects.com/api/dispatch?key=SEND_INVOICE_VIA_BLOOIO&format=markdown
  run: https://miscsubjects.com/api/dispatch?invoke=SEND_INVOICE_VIA_BLOOIO&body=%3Carg1%3E%7C%3Carg2%3E%7C%3Carg3%3E%7C%3Carg4%3E%7C%3Carg5%3E&share=<TOKEN>
  history: https://miscsubjects.com/api/invocations?object_id=SEND_INVOICE_VIA_BLOOIO

### Troubleshooting
- If a row's example has placeholders, replace only the placeholder values and preserve separators.
- If a call fails, open its receipt and repair it with POST /api/dispatch {key, body, repairs:'inv_ID'}.
- If token scope denies this system, ask the owner for a row:/rows:/pfx: token scoped to the exact operation set.

Back to the tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown