canonical: https://jentic.com/apis/moonclerk.com/moonclerk

# MoonClerk API

The MoonClerk API reads the payment forms, customers, and payments in a MoonClerk account, the recurring and one-time payment forms that run on Stripe. Customer records carry their subscription with plan, status, trial dates, and next payment attempt, along with the checkout, discount, and custom field responses captured on the form. Payments list amount, fee, amount refunded, status, coupon, and the Stripe charge and invoice references, and can be filtered by customer, date range, or status. Every operation is a GET; forms, plans, and pricing are configured in the MoonClerk interface rather than over the API.

## For AI agents

Read MoonClerk payment forms, customers with their subscription status, and payments with amounts, fees, refunds, and Stripe references. Read-only.

## Scope

Does not create charges, issue refunds, or change plans and pricing. Use for reading MoonClerk forms, customers, and payments only.

## Capabilities

- List payment forms with payment_volume and successful_checkout_count per form
- Find customers by subscription status such as past_due or canceled, or by next payment date range
- Read a customer's subscription plan, trial dates, next_payment_attempt, and discount
- List payments for a customer, a form, a date range, or a status of successful, refunded, or failed
- Match MoonClerk records to Stripe through charge_reference, invoice_reference, and customer_reference
- Read custom field responses a payer entered on the checkout form

## Use cases

### AI bookkeeping agent that reconciles MoonClerk payments

An agent closing the month needs every successful and refunded payment without a developer hand-coding the Token token= header and the required versioned Accept header. Through Jentic the agent searches for 'list MoonClerk payments in a date range', loads the payments operation with its input schema, and pages through results with count and offset. Your own Jentic One instance attaches the key at call time, and the agent gets amounts, fees, and refunds in cents with their currency.

Example prompt: Call GET /payments with date_from 2026-10-01, date_to 2026-10-31, status successful, and count 100, paging with offset, then total amount and fee by currency

### Chasing past-due subscribers

Organisations collecting recurring donations or dues on MoonClerk need to know who has fallen behind. The customers list filters on subscription status, including past_due and unpaid, and each record includes the payer's email, the delinquent flag, and a management_url where the customer can update their card. A follow-up job can send those links to each past-due subscriber.

Example prompt: Call GET /customers with status past_due and count 100, then return each customer's name, email, and management_url

### Forecasting upcoming renewals

Finance teams forecasting cash use the next payment attempt on each subscription. Filtering customers by next_payment_from and next_payment_to returns the subscribers due in a window, each with the plan amount, interval, and currency, so the expected inflow for that period can be summed.

Example prompt: Call GET /customers with next_payment_from 2026-11-10 and next_payment_to 2026-11-16 and sum each subscription plan amount by currency

### Comparing payment form performance

A MoonClerk account often runs several payment forms, for example one per campaign or membership tier. The forms list returns each form's payment_volume and successful_checkout_count, and payments and customers can be filtered by form_id to drill into a single form.

Example prompt: Call GET /forms, rank forms by payment_volume, then call GET /payments with the top form_id to list its latest payments

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/payments` | List payments |
| GET | `/payments/{id}` | Get a payment |
| GET | `/customers` | List customers |
| GET | `/customers/{id}` | Get a customer |
| GET | `/forms` | List payment forms |
| GET | `/forms/{id}` | Get a payment form |

## Key resources

- **Forms** — Payment forms with title, currency, payment volume, and successful checkout count
- **Customers** — Payers with subscription, plan, checkout, discount, payment method, and custom fields
- **Payments** — Individual charges with amount, fee, refunds, status, coupon, and Stripe references

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 66 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 85 / 100
  - Developer Experience & Jentic Compatibility: 69 / 100
  - AI-Readiness & Agent Experience: 51 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 67 / 100
- **View full report:** https://jentic.com/apis/moonclerk.com/moonclerk/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring MoonClerk by hand means sending the key with the Token token= prefix in the Authorization header, adding the versioned Accept header to every call, and handling text/plain error bodies. Through Jentic you install once, import MoonClerk from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** MoonClerk keys have no narrower scopes, so the rule layer is where access gets bounded. Record ids sit in the URL path, as in `/customers/{id}`, so a rule can pin your agent to one customer record or to just the form operations you pick.
- **Credential handling:** Your MoonClerk API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find past-due subscribers' or 'list refunded payments', and Jentic returns the matching MoonClerk operation with its input schema, including the status, date range, and paging parameters.

## Related APIs

- **Stripe API** — The payment processor behind MoonClerk, where its _reference IDs point
- **Recurly API** — Subscription billing with plans, accounts, and invoices managed over the API
- **Braintree GraphQL API** — Payment processing with recurring billing

## FAQ

### What authentication does the MoonClerk API use?

Per its OpenAPI spec, the MoonClerk API uses an apiKey scheme in the Authorization header, sent as Token token=YOUR_API_KEY. That prefix is not a Bearer token. Requests also need the Accept header application/vnd.moonclerk+json;version=1. The spec notes the key grants read access to all account data with no narrower scopes. Through Jentic the key is stored by your own Jentic One instance and attached at call time.

### Can I create or update subscriptions with the MoonClerk API?

No. Every operation in the spec is a GET. Forms, plans, and pricing are configured in the MoonClerk interface. The API reads forms, customers, and payments, including each customer's subscription status and next payment attempt.

### What are the rate limits for the MoonClerk API?

The OpenAPI spec does not publish a numeric limit. Exceeding it returns 429 Too Many Requests, and no RateLimit response headers are published, so reduce call frequency and retry later. See https://github.com/moonclerk/developer for the vendor's developer documentation.

### Is there a MoonClerk MCP server?

You don't need an MCP server to give your agent MoonClerk. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent reads forms, customers, and payments on demand without another server's tool definitions in its context.

### Can I limit what my agent is allowed to do with the MoonClerk API?

Yes. The MoonClerk key itself reads everything, so the narrowing happens in Jentic. Write a rule that allows only GET /forms and GET `/forms/{id}`, and a reporting agent can read form volumes without touching customer emails or payment details. Every call it makes is logged.

### How do I find failed payments through Jentic?

Search Jentic for 'list failed MoonClerk payments', load the GET /payments operation, and execute it with status failed and a date_from and date_to range. Each result includes the payer email, amount in cents, and customer_id. To run it on your own infrastructure, install Jentic One from its GitHub repo.
