Machines cares about privacy—and this extends to API partners. We use end‑to‑end encryption for card UI metadata so only your users can read it. Use our helper endpoints so you don’t have to implement cryptography yourself. What’s encrypted for cards:Documentation Index
Fetch the complete documentation index at: https://docs.machines.cash/llms.txt
Use this file to discover all available pages before exploring further.
- Card label (name) →
encryptedName - Color →
encryptedColor - Emoji →
encryptedEmoji - Memo/notes →
encryptedMemo
Card secrets (PAN/CVC) are different. Use
POST /cards/secrets/session + POST /cards//secrets. See Cards → Secrets.API flows (step‑by‑step)
Encrypt a card label (server-side)
Endpoint:
Body: JSON with a
Response: returns an object with
POST /encryption/encryptBody: JSON with a
value string (e.g., “Ops Card”).Response: returns an object with
value (EncryptedField)Decrypt a card label (server-side)
Endpoint:
Body: JSON with a
POST /encryption/decryptBody: JSON with a
value EncryptedField.
Response: plaintext card label in valueFields
Plaintext to encrypt. For decryption, pass the encrypted object returned by
/encryption/encrypt.Response (encrypt)
Schema version.
Base64url IV.
Base64url ciphertext + auth tag.
Card labels are optional
- You can omit
encryptedNamewhen creating a card and set it later withPATCH /cards/. - When you do set a card label, always use
/encryption/encryptand/encryption/decrypt(no manual cryptography needed).
Default flow (server-side)
Example (server-side)
Display card labels in your frontend (recommended)
- List cards:
GET /cards - Decrypt each
encryptedNamewithPOST /encryption/decrypt - Send plaintext labels to your frontend
Use
/encryption/decrypt only for card labels and metadata. Card secrets (PAN/CVC) use /cards/secrets/session + /cards//secrets.Advanced (client-side, optional)
If you need client-side encryption, fetch a per-user data key viaGET /encryption/data-key (requires encryption.read) and encrypt locally using AES-256-GCM.
Encrypted field shape
- Canonical order is
v,iv,ct(order doesn’t matter in JSON). v: schema version (currently 1)iv: 12-byte IV, base64url encodedct: ciphertext + auth tag, base64url encoded
Example (Node.js)
Card PAN/CVC secrets use a secrets session and AES-128-GCM. See Cards for that flow.