Using these docs with AI
How this site is built to be read by AI assistants and coding agents, and how to point one at it.
Every page is Markdown
Every HTML page on this site has a Markdown twin at the same path with a .md extension. The Markdown is the source; the HTML is generated from it. Both carry the same headings, tables, code samples and anchors.
| You want | Fetch |
|---|---|
| One page | https://developer.inoviopay.com/api/sale.md |
| The site index with one-line summaries | https://developer.inoviopay.com/llms.txt |
| Every page in a single file | https://developer.inoviopay.com/llms-full.txt |
| The API as a machine-readable spec | https://developer.inoviopay.com/openapi.yaml |
| Every example request, importable | https://developer.inoviopay.com/postman.json |
Clients that send Accept: text/markdown get the Markdown for an .html URL without changing the path. Each HTML page also declares its twin with <link rel="alternate" type="text/markdown">, carries TechArticle JSON-LD, and has a Copy for AI button in the header that copies the page as Markdown to your clipboard.
curl -s -H "Accept: text/markdown" https://developer.inoviopay.com/api/sale.html
import urllib.request
md = urllib.request.urlopen("https://developer.inoviopay.com/api/sale.md").read().decode()
Point an assistant at the site
Claude Code, Cursor, Copilot, Windsurf and similar. Paste the llms.txt URL into your project rules or a docs reference, or add this line to your project's CLAUDE.md / .cursorrules:
Inovio gateway docs: https://developer.inoviopay.com/llms.txt (fetch the .md pages it lists before answering questions about the Inovio API or SDKs).
ChatGPT, Claude.ai, Gemini. Paste https://developer.inoviopay.com/llms-full.txt and ask your question; the full site is small enough to fit in a single context window.
Code generation from the spec. openapi.yaml is OpenAPI 3.1. The API is not REST: it is one form-encoded POST whose request_action field selects the operation, so use the spec for parameter names, enums and response fields rather than for generating a client. The SDKs are the supported clients.
What agents should know about this API
These are the facts an assistant most often gets wrong when reasoning from generic payment-gateway knowledge. Each links to the page that proves it.
- There is no sandbox host. Test and production use the same URL and credentials; the portal configuration decides which merchant ID is hit. Get started
- A decline is a normal response, not an error.
TRANS_STATUS_NAME=DECLINEDwithSERVICE_RESPONSEandPROCESSOR_RESPONSEexplaining why. The SDKs return it; they do not throw. How the SDKs think - The tokenization HMAC does not include the card number. The PDF says it does; the gateway disagrees. Sign
timestamp || unique_id || site_idwith the Site Key. Tokenization - A token replaces the PAN only. You still send
pmt_expiryand, where required,pmt_key. Tokenization - Send
CREDIT_ON_FAIL=1on a reversal and the gateway itself re-routes to a credit if the order has already settled. Never write a client-side "try reverse, then credit" fallback. Reversal XTL_ORDER_IDgives you idempotent retries. A retried request with the same id returns the original result instead of charging twice. After a timeout, callCCSTATUSbefore retrying. Order status- Amounts are decimal strings, never floats. The SDKs reject
1.25as a number and accept"1.25". How the SDKs think - The statement descriptor must not contain a space, underscore or slash. The whole transaction is rejected otherwise. Shopping cart plugins
Structure that makes the site easy to parse
- Stable, slugified section ids (
/api/sale.html#request-parameters), unchanged from the previous site where they existed. - One
h1per page,h2per section,h3inside a section. No deeper nesting. - Parameter tables always have the parameter in the first column with a
RequiredorOptionalbadge ((required)/(optional)in the Markdown). - Code samples are fenced with a language tag; example requests are complete and use the placeholder credentials
api_user/P@ssw0rd!/ site12345. robots.txtexplicitly allows AI crawlers;sitemap.xmllists every page.