Fastest
Set up with your AI agent
Vend16 has an MCP server, so a coding agent can do the whole setup with you: sign you in, create the app, put the code in, and check the store connections. You only do the parts the stores keep for humans.
1Connect your agent
Claude Code
claude mcp add --transport http vend16 https://vend16.com/mcpPrefer a plugin? This one teaches Claude the whole integration and works alongside the MCP server:
/plugin marketplace add spruikco/vend16-skill
/plugin install vend16@vend16Cursor
Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):
{
"mcpServers": {
"vend16": { "url": "https://vend16.com/mcp" }
}
}Codex
Add this to ~/.codex/config.toml:
[mcp_servers.vend16]
url = "https://vend16.com/mcp"VS Code (Copilot agent mode)
Add this to .vscode/mcp.json:
{
"servers": {
"vend16": { "type": "http", "url": "https://vend16.com/mcp" }
}
}Any other agent that speaks MCP over HTTP takes the same address: https://vend16.com/mcp.
2Ask for it
Open your app’s project and ask:
Add in-app purchases to this app with Vend16The first time, it gives you a link to approve in your browser, so it never sees your password. Then it works out your stack, creates your app in Vend16, puts the public key and the purchase code in, and lists what’s left: the two store settings only you can change.
3No MCP? Paste this instead
Any agent can do it from the written guide. Create your app in the dashboard first, then paste this with your public key filled in:
Integrate Vend16 in-app purchase verification into this app. Read https://vend16.com/llms-full.txt first and follow it exactly. Use my public key pk_REPLACE_ME. Report every completed purchase to POST /v1/receipts with the store token and my user ID, only call finish() after Vend16 replies, and unlock features from GET /v1/subscribers/:appUserId, never from the device. If this is a Capacitor app, install the plugin with: npm install github:spruikco/capacitor-iap. Tell me which App Store Connect and Play Console settings I still need to change.The guide it reads is llms-full.txt: the whole integration in one Markdown file.
4Check its work
Whatever wrote the code, these are the rules it has to follow. Read the diff for them.
- Tell the store a purchase is finished only after Vend16 answers
recorded,duplicateorrevoked. If the answer ispending, or Vend16 can’t be reached (a502or no network), leave it unfinished. The store hands it back on the next launch and you try again. - If Vend16 answers
422 invalid_receipt, finish it and unlock nothing. The store says it isn’t a real purchase. - Unlock from
active_product_idsinGET /v1/subscribers/:appUserId, never from a flag on the phone. Check it at launch and after every purchase.
Use a stable user ID from your own sign-in (or a UUID you keep on the device), never an email address.
Then make a test purchase: Test and go live.
Stuck? Email hello@spruik.co and a real person replies.