{"$schema":"https://static.smithery.ai/schemas/server-card.json","name":"CallMeter","displayName":"CallMeter","title":"CallMeter","description":"CallMeter turns till slips and mobile-money receipts into merchant/total/line-item JSON (parse.receipt) — demo: https://api.callmeter.dev/demo/receipt-to-json — plus tax-invoice parsing, structured extract, webpage extract, JSON Schema draft/validate, screenshots, PDF text, and durable webhook relay/replay. Discover tools for free via tools/list; pay per tools/call with prepaid credits (X-Api-Key / Bearer) or x402 USDC on Base (PAYMENT-SIGNATURE; unpaid → 402). Fail-closed billing — never charged on failed fulfillment.","shortDescription":"Receipt→JSON (parse.receipt) plus extract, schema, screenshot, PDF, invoices, webhook relay — pay-per-call for AI agents. Prepaid credits or x402 USDC on Base.","homepage":"https://api.callmeter.dev/","website":"https://api.callmeter.dev/","documentation":"https://api.callmeter.dev/llms.txt","docs":["https://api.callmeter.dev/llms.txt","https://api.callmeter.dev/examples"],"repository":"https://github.com/dammy/callmeter","license":"MIT","version":"0.2.0","icon":"https://api.callmeter.dev/icon.png","icons":[{"src":"https://api.callmeter.dev/icon.png","mimeType":"image/png","sizes":["512x512"]},{"src":"https://api.callmeter.dev/icon.svg","mimeType":"image/svg+xml","sizes":["any"]}],"categories":["mcp","payments","agents","document-intelligence","webhooks","utilities"],"tags":["mcp","x402","payments","agents","receipts","pdf","webhooks","schema","document-intelligence","screenshot","extract","invoices"],"keywords":["mcp","x402","payments","agents","receipts","pdf","webhooks","schema","document-intelligence","screenshot","extract","invoices"],"url":"https://api.callmeter.dev/mcp","mcpUrl":"https://api.callmeter.dev/mcp","transport":"streamable-http","serverInfo":{"name":"CallMeter","title":"CallMeter","version":"0.2.0","description":"Receipt→JSON and other pay-per-call MCP utilities for AI agents — parse.receipt, invoices, extract, schema, screenshot, PDF, webhook relay. Prepaid credits or x402 USDC on Base."},"authentication":{"required":false,"schemes":["apiKey","x402"],"notes":"tools/list is public. tools/call requires X-Api-Key / Authorization Bearer prepaid key, or x402 PAYMENT-SIGNATURE (unpaid → 402). Fail-closed: no charge on failed fulfillment."},"configSchema":{"type":"object","properties":{"apiKey":{"type":"string","title":"CallMeter API key","description":"Prepaid key (bf_live… / bf_test…). tools/list works without it; tools/call needs key or x402.","x-from":{"header":"x-api-key"}}},"required":[]},"config":{"schema":{"type":"object","properties":{"apiKey":{"type":"string","title":"CallMeter API key","description":"Prepaid key (bf_live… / bf_test…). tools/list works without it; tools/call needs key or x402.","x-from":{"header":"x-api-key"}}},"required":[]}},"instructions":"CallMeter — useful machine work for AI agents (Streamable HTTP MCP). Lead job: receipt → JSON via parse.receipt.\n\nWHAT IT IS\nStart with parse.receipt: turn till slips, POS printouts, and mobile-money confirmations into merchant / date / currency / total / line_items JSON. Live demo (Mama Chika ₦61,812.50): https://api.callmeter.dev/demo/receipt-to-json (DOC-RECEIPT-DEMO-01). Also: tax invoices, structured extract, webpage extract, JSON Schema, screenshots, PDF text, webhook relay/replay — pay per successful call instead of standing up scrapers, OCR, browsers, or webhook queues.\n\nTOOL ROUTING (prefer these names; underscore aliases still accepted on tools/call)\n• parse.receipt — till/POS/mobile-money → merchant/total/line items (~10 credits / $0.10). Prefer for receipt→JSON.\n• parse.invoice — tax invoice → seller/VAT/lines/totals (~15 credits).\n• extract.structured_data — text|html → structured JSON. NOT for live URLs.\n• extract.webpage — required url → fetch public page → structured JSON (SSRF/robots fail-closed).\n• transform.json_schema — mode draft|validate|both; cheap schema hop (~2 credits).\n• capture.screenshot — url → PNG/JPEG evidence (~10 credits).\n• extract.pdf — file_base64 → page text/tables (~10 credits). Not for receipt/invoice fields.\n• relay.webhook — endpoint id + body → verify/dedupe/forward (pay on successful forward).\n• replay.webhook — delivery id → redrive (destructive; pay on successful forward).\n\nAUTH & BILLING (fail-closed)\n• initialize, tools/list, prompts/list, resources/list are FREE.\n• tools/call is PAID: prepaid X-Api-Key or Authorization Bearer, OR x402 PAYMENT-SIGNATURE after HTTP 402.\n• Unpaid tools/call → 402 PAYMENT_REQUIRED. Bad key → 401. Failed upstream/fulfillment → no charge.\n• 1 credit = $0.01. Pricing: https://api.callmeter.dev/pricing — Examples: https://api.callmeter.dev/examples — llms.txt: https://api.callmeter.dev/llms.txt\n\nERRORS\nMachine codes: INVALID_INPUT | UNSUPPORTED_FORMAT | PAYMENT_REQUIRED | PAYMENT_FAILED | RATE_LIMITED | UPSTREAM_FAILURE | PROCESSING_FAILURE | TIMEOUT | INTERNAL_ERROR (each with retryable).\n\nHomepage: https://api.callmeter.dev/\nRepository: https://github.com/dammy/callmeter\nLicense: MIT\nIcon: https://api.callmeter.dev/icon.png","tools":[{"name":"extract.structured_data","description":"Extract structured JSON (emails, phones, URLs, key-values, or schema-shaped fields) from messy plain text or HTML. Call when the agent already has document text/HTML and needs machine-readable fields for the next step — not for fetching a live URL (use extract.webpage). Inputs: exactly one of text or html; optional instruction, schema, require_llm. Outputs structured JSON; fail-closed on invalid input. Paid (~5 credits / $0.05) via prepaid key or x402.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string","description":"Plain text to structure. Do not pass a URL here — use extract.webpage. Example: 'Contact Jane at jane@acme.io or +1-415-555-0100.'","examples":["Contact Jane at jane@acme.io or +1-415-555-0100. Site https://acme.io"]},"html":{"type":"string","description":"HTML fragment/document to structure. Example: '<p>Email us at hello@acme.io</p>'","examples":["<p>Email us at hello@acme.io</p>"]},"instruction":{"type":"string","maxLength":500,"description":"Optional focus hint (max 500 chars). Example: 'Extract contact fields only'","examples":["Extract contact fields only"]},"schema":{"type":"object","description":"Optional JSON Schema the extract should satisfy","examples":[{"type":"object","properties":{"emails":{"type":"array"}}}]},"require_llm":{"type":"boolean","description":"If true and enrichment LLM unavailable → processing failure (no charge on fail-closed). Example: false","examples":[false]}},"oneOf":[{"required":["text"]},{"required":["html"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"outputSchema":{"type":"object","description":"Structured JSON extract result (fields vary; often data + meta.path).","additionalProperties":true,"examples":[{"data":{"emails":["jane@acme.io"],"urls":["https://acme.io"],"phones":["+1-415-555-0100"]},"meta":{"path":"heuristic"}}]}},{"name":"extract.webpage","description":"Fetch a public http(s) URL and return structured page facts as JSON (SSRF/robots fail-closed). Call when the agent has a page URL to understand — not when text/HTML is already in hand (use extract.structured_data) and not for a visual capture (use capture.screenshot). Inputs: required url; optional instruction, schema, require_llm. Outputs structured JSON about the page. Paid (~5 credits / $0.05) via prepaid key or x402.","inputSchema":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to fetch and structure. Example: https://example.com/about","examples":["https://example.com/about"]},"instruction":{"type":"string","maxLength":500,"description":"Optional focus hint for extraction. Example: 'Extract company name and contact emails'","examples":["Extract company name and contact emails"]},"schema":{"type":"object","description":"Optional JSON Schema the page extract should satisfy","examples":[{"type":"object","properties":{"title":{"type":"string"}}}]},"require_llm":{"type":"boolean","description":"If true and enrichment LLM unavailable → processing failure. Example: false","examples":[false]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"outputSchema":{"type":"object","description":"Structured JSON page facts (shape varies; often data + meta.source=url).","additionalProperties":true,"examples":[{"data":{"emails":["jane@acme.io"],"urls":["https://acme.io"],"phones":["+1-415-555-0100"]},"meta":{"path":"heuristic"}}]}},{"name":"transform.json_schema","description":"Draft a JSON Schema from a sample object, or validate an instance against a schema, in one call. Call before writes when you need a deterministic schema or a cheap validity check — cheaper and more predictable than asking an LLM to invent types. Inputs: mode=draft|validate|both; sample for draft; schema+instance for validate. Outputs schema and/or validation result. Paid (~2 credits / $0.02) via prepaid key or x402.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"mode":{"type":"string","enum":["validate","draft","both"],"description":"draft | validate | both. Example: draft","examples":["draft"]},"schema":{"type":"object","description":"JSON Schema document (required for validate/both). Example: {\"type\":\"object\"}","examples":[{"type":"object"}]},"instance":{"description":"Value to validate. Example: {\"a\":1}","examples":[{"a":1}]},"sample":{"description":"Sample value to draft a schema from. Example: {\"orderId\":\"A1\",\"total\":12.5}","examples":[{"orderId":"A1","total":12.5}]},"draft":{"type":"boolean","description":"Legacy boolean alias to request drafting. Example: true","examples":[true]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"JSON with mode, valid flag, and/or drafted schema.","additionalProperties":true,"examples":[{"mode":"draft","valid":true,"schema":{"type":"object"}}]}},{"name":"capture.screenshot","description":"Render a public URL to a PNG/JPEG screenshot for vision, QA, or audit evidence. Call when you need pixels — not structured text (use extract.webpage) and not PDF bytes (use extract.pdf). Inputs: required url; optional viewport {width,height}, fullPage, format=png|jpeg. Viewport capped; SSRF/robots fail-closed. Outputs image metadata + base64. Paid (~10 credits / $0.10) via prepaid key or x402.","inputSchema":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public http(s) URL to screenshot. Example: https://example.com","examples":["https://example.com"]},"viewport":{"type":"object","description":"Viewport size within caps (width 320–1920, height 320–1080). Example: {\"width\":1280,\"height\":800}","properties":{"width":{"type":"integer","minimum":320,"maximum":1920,"description":"Viewport width px. Example: 1280","examples":[1280]},"height":{"type":"integer","minimum":320,"maximum":1080,"description":"Viewport height px. Example: 800","examples":[800]}},"examples":[{"width":1280,"height":800}]},"fullPage":{"type":"boolean","description":"If true, capture full scrollable page. Example: false","examples":[false]},"format":{"type":"string","enum":["png","jpeg"],"description":"Image format. Example: png","examples":["png"]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"outputSchema":{"type":"object","description":"Screenshot result with content_type, dimensions, and image_base64.","additionalProperties":true,"examples":[{"content_type":"image/png","width":1280,"height":800,"image_base64":"<base64>"}]}},{"name":"extract.pdf","description":"Extract page text and heuristic tables from a base64-encoded PDF for downstream reasoning. Call for general PDF text hops — receipt/invoice field extraction belongs to parse.receipt / parse.invoice. Inputs: file_base64 (or pdf/base64 aliases); optional options.includeTables / maxPages. Decoded size ≤ 10 MiB. Outputs pages[].text and optional tables. Paid (~10 credits / $0.10) via prepaid key or x402.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"file_base64":{"type":"string","description":"Base64 PDF bytes; decoded ≤ 10 MiB. Example: JVBERi0xLjQK...","examples":["JVBERi0xLjQK..."]},"pdf":{"type":"string","description":"Alias for file_base64","examples":["JVBERi0xLjQK..."]},"base64":{"type":"string","description":"Alias for file_base64","examples":["JVBERi0xLjQK..."]},"options":{"type":"object","description":"includeTables (bool), maxPages (1–100). Example: {\"includeTables\":true,\"maxPages\":10}","properties":{"includeTables":{"type":"boolean","description":"Attempt heuristic table extraction. Example: true","examples":[true]},"maxPages":{"type":"integer","minimum":1,"maximum":100,"description":"Max pages to read. Example: 10","examples":[10]}},"examples":[{"includeTables":true,"maxPages":10}]}},"description":"Provide one of file_base64 | pdf | base64"},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"PDF text extract with pages[] and optional tables[].","additionalProperties":true,"examples":[{"pages":[{"page":1,"text":"Invoice ..."}],"tables":[]}]}},{"name":"parse.receipt","description":"Parse a till slip, POS printout, supermarket receipt, or mobile-money payment confirmation into stable merchant / date / currency / subtotal / tax / total / line_items / confidence / warnings JSON. Tuned for ugly Africa documents (NGN ₦/kobo, KES M-Pesa, GHS MTN MoMo, ZAR VAT, OPay, PalmPay, Paystack, Verve POS) including blurry OCR and WhatsApp forwards. Send text (OCR dump) or file_base64. Unknown fields are null or empty arrays — totals and line items are never invented from garbage. Prefer this over manual spreadsheet entry or a generic LLM scrape when the document is a receipt or MoMo/M-Pesa slip. Costs $0.10 (10 credits) per successful parse; fail-closed billing via prepaid credits or x402.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string","maxLength":500000,"description":"OCR or plain-text dump of the receipt. Example: 'MAMA CHIKA\\nRice 50kg NGN 48000\\nTotal 61812.50'","examples":["MAMA CHIKA PROVISIONS\nRice 50kg .............. ₦48,000\nTotal ₦61,812.50"]},"file_base64":{"type":"string","description":"PDF or image bytes (jpeg/png/webp/pdf) as base64","examples":["iVBORw0KGgo..."]},"filename":{"type":"string","maxLength":512,"description":"Original filename hint. Example: receipt.jpg","examples":["receipt.jpg"]},"content_type":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp","text/plain"],"description":"MIME type of file_base64. Example: image/jpeg","examples":["image/jpeg"]},"tier":{"type":"string","enum":["S","M","L","auto"],"default":"auto","description":"Processing tier. Example: auto","examples":["auto"]}},"oneOf":[{"required":["text"]},{"required":["file_base64"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"AfricaInvoiceReceipt — always-present keys; unknown → null/[]. Never invent totals.","additionalProperties":true,"required":["doc_type","merchant","issued_at","currency","subtotal","tax","total","line_items","confidence","warnings"],"properties":{"doc_type":{"type":"string","enum":["receipt","invoice","tax_invoice","proforma","unknown"]},"merchant":{"type":"object","properties":{"name":{"type":["string","null"]},"tax_id":{"type":["string","null"]}}},"issued_at":{"type":["string","null"],"description":"YYYY-MM-DD or null"},"currency":{"type":"string"},"subtotal":{"type":["number","null"]},"tax":{"type":"object","additionalProperties":true},"total":{"type":["number","null"]},"line_items":{"type":"array","items":{"type":"object","additionalProperties":true}},"confidence":{"type":"object","additionalProperties":true},"warnings":{"type":"array","items":{"type":"string"}},"buyer":{},"document_id":{},"amount_paid":{},"balance_due":{},"payment":{},"locale_hints":{},"raw_text_excerpt":{"type":["string","null"]}}}},{"name":"parse.invoice","description":"Parse a tax invoice or commercial invoice into the AfricaInvoiceReceipt contract: seller (TIN / KRA PIN / VAT no), issued date, currency, line items, VAT rate/amount, subtotal, total, payment refs, confidence, and warnings (including vat_total_mismatch). Built for NG/KE/GH/ZA AP automation and multi-line SKU invoices — not a thin keyword grep. Use when the document is an invoice rather than a till slip; still accept OCR text or image/PDF base64. Nulls mean unknown; do not treat low-confidence totals as ledger truth without checking confidence and warnings. Costs $0.15 (15 credits) per successful response; fail-closed prepaid or x402.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string","maxLength":500000,"description":"OCR or plain-text dump of the tax invoice. Example: 'TAX INVOICE\\nDANGOTE CEMENT PLC\\nTIN: 01012345-0001'","examples":["TAX INVOICE\nDANGOTE CEMENT PLC\nTIN: 01012345-0001\nTotal NGN 2,558,500"]},"file_base64":{"type":"string","description":"PDF or image bytes as base64","examples":["JVBERi0xLjQK..."]},"filename":{"type":"string","maxLength":512,"description":"Original filename hint. Example: invoice.pdf","examples":["invoice.pdf"]},"content_type":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp","text/plain"],"description":"MIME type of file_base64. Example: application/pdf","examples":["application/pdf"]},"tier":{"type":"string","enum":["S","M","L","auto"],"default":"auto","description":"Processing tier. Example: auto","examples":["auto"]}},"oneOf":[{"required":["text"]},{"required":["file_base64"]}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"outputSchema":{"type":"object","description":"AfricaInvoiceReceipt — always-present keys; unknown → null/[]. Never invent totals.","additionalProperties":true,"required":["doc_type","merchant","issued_at","currency","subtotal","tax","total","line_items","confidence","warnings"],"properties":{"doc_type":{"type":"string","enum":["receipt","invoice","tax_invoice","proforma","unknown"]},"merchant":{"type":"object","properties":{"name":{"type":["string","null"]},"tax_id":{"type":["string","null"]}}},"issued_at":{"type":["string","null"],"description":"YYYY-MM-DD or null"},"currency":{"type":"string"},"subtotal":{"type":["number","null"]},"tax":{"type":"object","additionalProperties":true},"total":{"type":["number","null"]},"line_items":{"type":"array","items":{"type":"object","additionalProperties":true}},"confidence":{"type":"object","additionalProperties":true},"warnings":{"type":"array","items":{"type":"string"}},"buyer":{},"document_id":{},"amount_paid":{},"balance_due":{},"payment":{},"locale_hints":{},"raw_text_excerpt":{"type":["string","null"]}}}},{"name":"relay.webhook","description":"Relay a third-party webhook into CallMeter: verify HMAC or shared secret, dedupe by delivery id, store the payload, and forward to the endpoint's destinations with retries. Charges 0.01 credits ($0.0001) only per successful forward — not on receive. SIDE EFFECTS: contacts external destination URLs you configured; may retry on failure. Prefer when an agent must accept provider callbacks without running its own queue. Fail-closed on billing/ceiling errors. Inputs: required id (endpoint id) plus upstream JSON body.","inputSchema":{"type":"object","description":"Pass endpoint id plus the upstream webhook JSON body (additionalProperties allowed).","additionalProperties":true,"required":["id"],"properties":{"id":{"type":"string","description":"CallMeter webhook endpoint id (ep_…). Example: ep_live_abc123","examples":["ep_live_abc123"]},"deliveryId":{"type":"string","description":"Optional idempotent delivery id (maps to X-Webhook-Delivery-Id). Same id within 24h dedupes — no second charge.","examples":["deliv_01HXYZ"]}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"outputSchema":{"type":"object","description":"Ingress accept result. 202-style accepted forward or 200 duplicate within dedupe window.","additionalProperties":true,"properties":{"accepted":{"type":"boolean","description":"True when ingress accepted for forward pipeline"},"duplicate":{"type":"boolean","description":"True when same delivery id within 24h dedupe window (no re-charge)"},"delivery_id":{"type":"string","description":"Stored delivery id"},"status":{"type":"string","description":"accepted | duplicate | forwarded"}},"examples":[{"accepted":true,"duplicate":false,"delivery_id":"dlv_01HXYZ","status":"accepted"},{"accepted":true,"duplicate":true,"delivery_id":"dlv_01HXYZ","status":"duplicate"}]}},{"name":"replay.webhook","description":"Replay a stored webhook delivery through the same forward/retry pipeline after your consumer was down. Requires API key. Charges 0.01 credits ($0.0001) per successful forward. SIDE EFFECTS / DESTRUCTIVE: re-POSTs the original payload to destinations and may bill again — do not call casually. Prefer after confirmed consumer recovery. Fail-closed on billing errors. Inputs: required id (delivery id).","inputSchema":{"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","description":"Delivery id to replay. Example: dlv_01HXYZ","examples":["dlv_01HXYZ"]}},"description":"Empty JSON body besides path id."},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true},"outputSchema":{"type":"object","description":"Replay result. 200 on successful redrive; 409 when replay conflict / not replayable.","additionalProperties":true,"properties":{"replayed":{"type":"boolean"},"status":{"type":"string","description":"forwarded | conflict | failed"},"delivery_id":{"type":"string"},"error":{"type":"string","description":"Present on 409-style conflict"}},"examples":[{"replayed":true,"status":"forwarded","delivery_id":"dlv_01HXYZ"},{"replayed":false,"status":"conflict","delivery_id":"dlv_01HXYZ","error":"not_replayable"}]}}],"resources":[{"uri":"https://api.callmeter.dev/pricing","name":"pricing","title":"CallMeter pricing","description":"Credit peg, skill prices, settlement address, MCP/OpenAPI links.","mimeType":"application/json"},{"uri":"https://api.callmeter.dev/llms.txt","name":"llms_txt","title":"llms.txt","description":"Machine-readable overview of CallMeter tools, auth, and endpoints.","mimeType":"text/plain"},{"uri":"https://api.callmeter.dev/examples","name":"examples","title":"Examples","description":"Curl and client examples for initialize, tools/list, tools/call, and x402.","mimeType":"text/html"},{"uri":"https://api.callmeter.dev/openapi.json","name":"openapi","title":"OpenAPI spec","description":"OpenAPI for REST product routes behind CallMeter.","mimeType":"application/json"}],"prompts":[{"name":"receipt_to_json","title":"Receipt → structured JSON","description":"Parse a till slip or mobile-money receipt with parse.receipt.","arguments":[{"name":"receipt_text","description":"OCR/plain-text receipt. Example: 'MAMA CHIKA\\nRice 50kg NGN 48000\\nTotal 61812.50'","required":true}]},{"name":"invoice_to_json","title":"Tax invoice → structured JSON","description":"Extract tax invoice fields with parse.invoice.","arguments":[{"name":"invoice_text","description":"OCR/plain-text tax invoice. Example: 'TAX INVOICE\\nDANGOTE...\\nTIN: ...'","required":true}]},{"name":"webpage_to_json","title":"Webpage URL → structured JSON","description":"Fetch and structure a public page with extract.webpage (url required).","arguments":[{"name":"page_url","description":"Public http(s) URL. Example: https://example.com/about","required":true}]},{"name":"schema_transform_workflow","title":"Schema draft or validate","description":"Draft or validate JSON Schema via transform.json_schema.","arguments":[{"name":"mode","description":"draft | validate | both. Example: draft","required":true},{"name":"payload_json","description":"Sample (draft) or instance JSON. Example: {\"orderId\":\"A1\",\"total\":12.5}","required":true}]},{"name":"webhook_relay","title":"Webhook relay / replay","description":"Forward with relay.webhook or redrive with replay.webhook.","arguments":[{"name":"endpoint_or_delivery_id","description":"Endpoint id (relay) or delivery id (replay). Example: ep_live_abc123","required":true},{"name":"action","description":"relay or replay. Example: relay","required":true}]}]}