← LinkedIn demo

AILANG×developer.gocardless.com

AI agent-ready generated 2026-05-14
agent-ready privacy portable

developer.gocardless.com scored 6/10 on agent-ready.

The radar shows AILANG-readiness across three commercial concerns. High means developer.gocardless.com is already strong there; low means AILANG could meaningfully help.

Why agent-ready scored 6/10
  • Page references /.well-known/agent.json — the A2A agent card discovery endpoint. Worth only 1pt: it's bleeding-edge (A2A protocol new in 2026), no commercial site has adopted it yet — keep it as a moonshot bonus, not a baseline expectation.
  • Page references /openapi.json, /openapi.yaml, or an OpenAPI schema URL.
  • Page references an MCP endpoint such as /mcp/ or /mcp/sse.
  • Page links to public API documentation, Swagger UI, or ReDoc.
  • Page mentions webhooks, callback URLs, or event subscriptions — the most agent-callable backend pattern.
  • Page documents rate limits, throttling, or 429 handling — agents need to know how to back off.
  • Page references Server-Sent Events, text/event-stream, or a streaming endpoint — agents that read incrementally land here.
  • Page mentions a sandbox, test mode, or test environment — lets agents practise against fake state before touching production.
  • Page documents OAuth, JWT, bearer tokens, API keys, or access tokens — agents can't call the API without knowing how to authenticate.
  • Page mentions idempotency, idempotency-key, or idempotent requests — agents need this to retry safely.
  • Page mentions AG-UI (Agent-User Interaction Protocol) — streams 16 typed lifecycle/text/tool/state events from agent backend to frontend over SSE or WebSocket.
  • Page mentions x402 (Coinbase's signed crypto payment payloads) or Cloudflare's pay-per-crawl (crawler-price header for AI-crawler monetisation). Both revive HTTP 402 for agents — Cloudflare joined the x402 Foundation, so they're one umbrella signal.
  • Page mentions AP2 (Agent Payments Protocol) — Google + Mastercard + 60 orgs. Cryptographically signed Mandates (Intent + Cart) authorise agents to spend on a user's behalf with price/timing/condition bounds.
  • Page mentions UTCP (Universal Tool Calling Protocol) — MCP alternative. Tools described in a JSON UTCPManual, called via their native protocols (HTTP/gRPC/CLI).

Full breakdown ↓ · View rubric ↗

The site is for developers and technical teams who need to integrate payment processing functionalities into their applications.

This site provides developer documentation and guides for integrating GoCardless payment services. It covers API usage, setting up and managing direct debit mandates, processing one-off and recurring payments, and using webhooks for real-time updates. The content assists developers in implementing bank payment solutions.
API requests Direct Debit Mandates Payments Webhooks Integrations Recurring Payments

What AILANG Parse sees on developer.gocardless.com

Structural extraction — the same content an AI agent would consume from this page.

492 headings1 images54 lists102 tables911 linksHTML parsing by AILANG Parse

280 sections — page skeleton

2 headers 2 navs 2 mains 274 articles

492 headings

API Reference Restrictions.css-1g4fjkg{display:inline-block;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:small;height:small;} Anatomy Making Requests Cursor Pagination Errors

1 images

GC Logo

54 list items

**Customers:**Create **Customer bank accounts:**Create **Payer details**Confirm payer details **Mandate:**Create, Reinstate **Javascript flow:**All endpoints **Creditors:**Create If a Direct Debit mandate is already in place, payment is collected 2 working days after … If a Direct Debit mandate needs to be created, payment is collected 4 working days after … New mandates take up to 6 interbank business days before payments can be submitted under … For all payment collections, you must submit the collection to the banks 2 interbank busi… For all payment collections, you must submit the collection to the banks 1 interbank busi… For all payment collections, you must submit the collection to the banks 2 interbank busi…
Show the full extract — what AILANG Parse pulled from this page
# GoCardless Developers - GoCardless Developers


.css-dbkjor{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;font-family:inherit;border:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-text-decoration:none;text-decoration:none;cursor:pointer;-webkit-transition:color 100ms,background 100ms,box-shadow 100ms;transition:color 100ms,background 100ms,box-shadow 100ms;--btn-primary-on-light-bg-default:#1c1b18;--btn-primary-on-light-fg-default:#faf9f7;--btn-primary-on-light-border-default:transparent;--btn-primary-on-light-bg-hover:#383530;--btn-primary-on-light-fg-hover:#faf9f7;--btn-primary-on-light-border-hover:transparent;--btn-primary-on-light-bg-disabled:rgba(28, 27, 24, 0.08);--btn-primary-on-light-fg-disabled:rgba(28, 27, 24, 0.38);--btn-primary-on-light-border-disabled:transparent;--btn-primary-on-dark-bg-default:#f1f252;--btn-primary-on-dark-fg-default:#1c1b18;--btn-primary-on-dark-border-default:transparent;--btn-primary-on-dark-bg-hover:#f4f57d;--btn-primary-on-dark-fg-hover:#1c1b18;--btn-primary-on-dark-border-hover:transparent;--btn-primary-on-dark-bg-disabled:rgba(212, 209, 205, 0.16);--btn-primary-on-dark-fg-disabled:rgba(212, 209, 205, 0.38);--btn-primary-on-dark-border-disabled:transparent;--btn-primary-white-on-dark-bg-default:#ffffff;--btn-primary-white-on-dark-fg-default:#1c1b18;--btn-primary-white-on-dark-border-default:transparent;--btn-primary-white-on-dark-bg-hover:#faf9f7;--btn-primary-white-on-dark-fg-hover:#1c1b18;--btn-primary-white-on-dark-border-hover:transparent;--btn-primary-white-on-dark-bg-disabled:rgba(212, 209, 205, 0.16);--btn-primary-white-on-dark-fg-disabled:rgba(212, 209, 205, 0.38);--btn-primary-white-on-dark-border-disabled:transparent;--btn-primary-auto-bg-default:var(--btn-primary-on-light-bg-default);--btn-primary-auto-fg-default:var(--btn-primary-on-light-fg-default);--btn-primary-auto-border-default:var(--btn-primary-on-light-border-default);--btn-primary-auto-bg-hover:var(--btn-primary-on-light-bg-hover);--btn-primary-auto-fg-hover:var(--btn-primary-on-light-fg-hover);--btn-primary-auto-border-hover:var(--btn-primary-on-light-border-hover);--btn-primary-auto-bg-disabled:var(--btn-primary-on-light-bg-disabled);--btn-primary-auto-fg-disabled:var(--btn-primary-on-light-fg-disabled);--btn-primary-auto-border-disabled:var(--btn-primary-on-light-border-disabled);--active-focus-width:calc(4px + 1px);--btn-gutter-sm-sm:4px;--btn-gutter-sm-md:12px;--btn-gutter-md-sm:4px;--btn-gutter-md-md:16px;--btn-gutter-lg-sm:8px;--btn-gutter-lg-md:16px;--btn-font-size-sm:12px;--btn-font-size-md:14px;--btn-font-size-lg:22px;padding:var(--btn-gutter-md-md);font-size:var(--btn-font-size-md);line-height:1;border-radius:calc(var(--btn-font-size-md) + var(--btn-gutter-md-md));width:calc(var(--btn-font-size-md) + 2* var(--btn-gutter-md-md));height:calc(var(--btn-font-size-md) + 2* var(--btn-gutter-md-md));background-color:var(--btn-primary-on-light-bg-default);color:var(--btn-primary-on-light-fg-default);box-shadow:inset 0 0 0 1px var(--btn-primary-on-light-border-default),var(--flux-focus-ring, 0 0 0 0 transparent);}.css-dbkjor:disabled{cursor:not-allowed;}@media (prefers-color-scheme: dark){.css-dbkjor{--btn-primary-auto-bg-default:var(--btn-primary-on-light-bg-default);--btn-primary-auto-fg-default:var(--btn-primary-on-light-fg-default);--btn-primary-auto-border-default:var(--btn-primary-on-light-border-default);--btn-primary-auto-bg-hover:var(--btn-primary-on-light-bg-hover);--btn-primary-auto-fg-hover:var(--btn-primary-on-light-fg-hover);--btn-primary-auto-border-hover:var(--btn-primary-on-dark-border-hover);--btn-primary-auto-bg-disabled:var(--btn-primary-on-dark-bg-disabled);--btn-primary-auto-fg-disabled:var(--btn-primary-on-dark-fg-disabled);--btn-primary-auto-border-disabled:var(--btn-primary-on-dark-border-disabled);}}.css-dbkjor:focus-visible{outline:none;--flux-focus-ring:0 0 0 1px #faf9f7,0 0 0 4px #1c1b18;}.css-dbkjor:hover,.css-dbkjor:active{background-color:var(--btn-primary-on-light-bg-hover);color:var(--btn-primary-on-light-fg-hover);box-shadow:inset 0 0 0 1px var(--btn-primary-on-light-border-hover),var(--flux-focus-ring, 0 0 0 0 transparent);}.css-dbkjor:disabled{background-color:var(--btn-primary-on-light-bg-disabled);color:var(--btn-primary-on-light-fg-disabled);box-shadow:inset 0 0 0 1px var(--btn-primary-on-light-border-disabled);}.css-31la50{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:0 -1px -1px 0;overflow:hidden;position:absolute;white-space:nowrap;}Table of content.css-5b342m{display:inline-block;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}

*Header:*
[.css-y6l269{grid-area:content;}.css-tfleon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background-color:transparent;padding-left:24px;padding-right:24px;padding-top:24px;padding-bottom:24px;margin-left:0px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}
.css-1icqioj{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;color:#1c1b18;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}
.css-kgpxy1{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
.css-9hy52z{padding:0;margin:0;font-size:14px;line-height:20px;font-weight:600;}Getting Started
.css-5b342m{display:inline-block;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}](/getting-started/set-up/)

[.css-1uywxgx{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background-color:transparent;padding-left:24px;padding-right:24px;padding-top:16px;padding-bottom:16px;margin-left:32px;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}

1. Set-up](/getting-started/set-up/)

[2. Send your first API request](/getting-started/send-your-first-api-request/)

[3. Create a payment](/getting-started/create-a-payment/)

[4. Stay up-to date with webhooks](/getting-started/stay-up-to-date-with-webhooks-v2/)

[5. Go-live checklist](/getting-started/go-live-checklist/)

[Guides](/collect-payments/overview/)

[Collect Payments](/collect-payments/overview/)

[.css-q6crdc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;color:#6e685e;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}

Overview](/collect-payments/overview/)

[Integration Companion](/collect-payments/integration-companion/)

[Setting up Mandates](/billing-requests/setting-up-a-dd-mandate/)

[Direct Debit Mandates](/billing-requests/setting-up-a-dd-mandate/)

[Verified Mandates](/billing-requests/verified-mandates/)

[Collecting mandates offline](/direct-debit/offline-mandates/)

[Importing Mandates](/mandates/importing-mandates/)

[One-off Payments](/billing-requests/taking-an-instant-bank-payment/)

[One-off Direct Debit](/one-off-payments/one-off-direct-debit/)

[Instant Bank Payment](/one-off-payments/instant-bank-payment/)

[Recurring Payments](/direct-debit/taking-subscription-payments/)

[Subscription](/recurring-payments/subscriptions/)

[Instalments](/recurring-payments/instalments/)

[Variable Recurring Payments](/recurring-payments/variable-recurring-payments/)

[Instant Bank Payment + Direct Debit](/recurring-payments/instant-payment-with-direct-debit-setup/)

[Integration Types](/integration-types/gocardless-hosted-pages/)

[GoCardless Hosted Pages](/integration-types/gocardless-hosted-pages/)

[GoCardless Components.css-1fhzq6i{--tag-bg:#007a4d;--tag-color:#ffffff;--tag-hover-bg:hsl(158, 100%, 19%);--tag-hover-color:#ffffff;--tag-font-size:12px;--tag-line-height:calc(12px + 2px);--tag-gutterh:8px;--tag-gap:4px;--tag-gutterv:3px;display:inline-grid;grid-auto-flow:column;grid-auto-columns:auto;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:var(--tag-gap);padding:var(--tag-gutterv) var(--tag-gutterh);-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;color:var(--tag-color);background-color:var(--tag-bg);border-radius:6px;font-size:var(--tag-font-size);line-height:var(--tag-line-height);font-family:Haffer,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:600;max-width:100%;}.css-1fhzq6i>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;}NEW](/integration-types/gocardless-components/)

[Javascript Drop-in Flow](/integration-types/javascript-drop-in-flow/)

[Custom Payment Pages](/integration-types/custom-payment-pages/)

[Events & Webhooks](/mandates/responding-to-mandate-events/)

[Mandate Events](/mandates/responding-to-mandate-events/)

[Billing Requests Events](/billing-requests/responding-to-billing-request-events/)

[Managing payments](/payments/fx/)

[FX Payments](/payments/fx/)

[Reconciling Payouts](/payouts/reconciling-payouts/)

[Scheme guidance](/ach-and-pad-consent-types/)

[ACH and PAD Consent Types](/ach-and-pad-consent-types/)

[Billing Request Purpose Codes](/billing-request-purpose-codes/)

[VRP Commercial Payment Purpose Codes](/vrp-commercial-payment-purpose-codes/)

[PayTo Agreements and Payments](/billing-requests/taking-a-payto-mandate-and-payment/)

[Send money](/sending-money/overview/)

[Introduction to Outbound Payments](/sending-money/overview/)

[Payment Account](/sending-money/funding/)

[API request signing](/sending-money/api-request-signing/)

[Send an outbound payment](/sending-money/create-outbound-payment/)

[Adding a new recipient](/sending-money/create-recipient/)

[Initiate an outbound payment](/sending-money/create-outbound-payment/)

[Approve an outbound payment](/sending-money/approve-outbound-payment/)

[Cancel an outbound payment](/sending-money/cancel-outbound-payment/)

[Tracking outbound payments](/sending-money/get-outbound-payment-details/)

[Bank Account Holder Verification](/sending-money/bank-account-holder-verification/)

[Strong Customer Authentication](/sending-money/sca/)

[Optimise and increase revenue](/protect-plus/overview/)

[Prevent fraud with Protect+](/protect-plus/overview/)

[Retain customers with fallbacks](/billing-requests/retain-customers-with-fallbacks/)

[Reduced failed payments with Success+](/success-plus/overview/)

[Prefill customer details](/billing-requests/prefilling-customer-details/)

[New customer record](/billing-requests/prefilling-customer-details/)

[Existing customer record](/billing-requests/prefilling-existing-customer-details/)

[Populate Billing Request Flow](/billing-requests/prefilling-billing-request-flow/)

[Blocking mandates](/mandates/blocking-a-dd-mandate/)

[Tutorials](/tutorials/taking-direct-debit-payments-using-billing-requests-and-custom-payment-pages/)

[Taking Direct Debit payments using Billing Requests and Custom Payment Pages](/tutorials/taking-direct-debit-payments-using-billing-requests-and-custom-payment-pages/)

[Handling tax](/guides/handling-tax/)

[Handling Customer Notifications](/guides/handling-customer-notifications/)

[GoCardless Embed](/gc-embed/introduction/)

[Introduction](/gc-embed/introduction/)

[Creating a creditor](/gc-embed/creating-a-creditor/)

[Adding a creditor bank accountOptional](/gc-embed/adding-a-creditor-bank-account/)

[Setting a scheme identiferOptional](/gc-embed/requesting-a-scheme-identifier/)

[Setting 
page preview · the URL we fetched https://developer.gocardless.com/api-reference ↗
Screenshot of developer.gocardless.com

Couldn't render a preview for this site. Open the URL in a new tab ↗

Screenshot via thum.io

developer.gocardless.com scored 6/10 on agent-ready. AILANG opportunity is therefore 4/10. Here's where it would land first.

REST + MCP + A2A + OpenAPI in one command

ailang serve-api takes your typed AILANG functions and exposes them as REST endpoints, MCP tools, A2A skills, and OpenAPI 3.1 docs simultaneously. One module, four agent surfaces.

ailang serve-api --port 8092 --mcp-http \
  pricing.ail catalogue.ail
-- POST /api/pricing/quote, MCP at /mcp/,
-- A2A at /.well-known/agent.json, OpenAPI at /api/_meta/redoc.
→ AILANG docs

Contract-verified tool calls

Every tool an agent can call has a contract. Bounds, refusal paths, type signatures — proven before the agent ever sees it. The agent cannot exceed the tool's declared authority.

func placeOrder(item: SKU, qty: int) -> Receipt
  requires { qty > 0, qty <= 10 }
  ensures  { result.total > 0.0 }
-- the MCP server exposes this with its contract intact.
→ AILANG docs

An MCP server for your own docs and tools

Generate an MCP server from your typed AILANG functions; the docs MCP exposes a submit_feedback tool so agents can flag issues back to the maintainer. The language and its consumers stay on the same wire.

-- The AILANG docs MCP server lets Claude / Cursor / any
-- MCP client query the language directly:
--   stdlib_search "URL encoding"
--   submit_feedback "..."
→ AILANG docs

How this page was made

func sketchSite(url: string<pii>, topic: Topic) -> Sketch
  ! {Net @limit=1, AI @limit=5, FS @limit=4, Process, Declassify}
SignalTopicResultPointsAILANG primitive
agent.json referencedagent-ready0/1ailang serve-api generates A2A agent cards automatically — bonus if you're an early adopter
openapi.json referencedagent-ready2/2ailang serve-api generates OpenAPI 3.1 from Hindley-Milner type signatures
MCP endpoint referencedagent-ready2/2ailang serve-api --mcp-http exposes typed functions as MCP tools
Public API docs linkedagent-ready2/2ailang serve-api hosts Swagger + ReDoc at /api/_meta/ by default
Webhooks documentedagent-ready2/2ailang serve-api handles webhooks as typed handler functions with effect-tracked side effects
Rate limits documentedagent-ready2/2Capability budgets — Net @limit=N is the symmetric server-side primitive for what agents see as rate limits
Streaming / SSE endpointagent-ready0/2std/stream — ssePost and Stream effect handle event-source endpoints with typed event types
Sandbox / test environment offeredagent-ready2/2ailang --ai-stub plus mock effect handlers — deterministic, capability-scoped fakes for any effect, including Net and AI
Authentication documentedagent-ready2/2std/jwt for verification, IFC labels (string / string) to keep credentials out of public sinks at the type level
Idempotency keys documentedagent-ready2/2Pure functions are idempotent by construction; requires/ensures contracts express idempotence as a static guarantee
AG-UI streaming protocolagent-ready0/1std/stream — the AG-UI event lifecycle (RUN_STARTED → TEXT_MESSAGE_CONTENT → TOOL_CALL_RESULT → RUN_FINISHED) is a textbook sum type. ADTs + exhaustive pattern matching make every event-type branch a compile error to skip.
HTTP 402 agent payments (x402 / pay-per-crawl)agent-ready0/1Net @endpoint-scoped capability budgets bound payment destinations; requires { amount <= budget } gates the payload; IFC labels keep the signed payment key out of public sinks. Same primitives cover x402 payload signing and Cloudflare's crawler-price negotiation.
AP2 Agent Payments Protocolagent-ready0/1Mandates ARE contracts. requires { intent.price <= mandate.maxPrice } + ensures { cart.total <= intent.price } is a one-to-one translation of an Intent/Cart Mandate into AILANG. Z3 can verify the bounds at compile time.
UTCP tool-calling protocolagent-ready0/1Typed function signatures are the manifest. ailang serve-api emits the same metadata as a UTCPManual (name, input/output schema, native endpoint) — direct-call discovery without a proxy server.
End-to-end encryption documentedprivacy0/2IFC labels (string) force decryption to flow through a typed boundary; the compiler refuses to publish sealed values without explicit declassification
Compliance certifications citedprivacy2/2requires/ensures contracts express machine-verifiable claims; capability budgets bound audit-trail effects; effect rows leave nothing un-declared
Data minimisation languageprivacy0/2Capability scoping — each Net call declares its endpoint in the effect row, so "doesn't sell" becomes a type-system-enforceable claim, not a marketing one
Third-party domains restrainedprivacy0/2Capability scoping — each Net call declares its endpoint in the effect row
Data residency / on-prem languageprivacy0/2Three-runtime deploy — same module runs in WASM (browser), Cloud Run, and native CLI
Single-vendor LLM languageportable2/2std/ai multi-provider — switch from Anthropic to Gemini to OpenAI without rewriting
Multiple AI providers citedportable0/2std/ai — one Step API across Anthropic, OpenAI, Gemini, OpenRouter, Ollama, and custom-package providers
Cross-runtime / deployment portabilityportable0/2Effect handlers as runtime adapters — same .ail runs as WASM in the browser, a Cloud Run container, and a native CLI; only the handlers change
BYO key / model-agnosticportable0/2AILANG WASM — the full interpreter ships as a browser bundle, so caller-held keys (BYOK), offline apps, and embedded demos all work client-side