Prompt examples

Copy-paste prompts to use HoneyCoin via Cursor, Claude, ChatGPT, or any AI coding assistant. Each prompt is paired with a note on what the agent should produce.

The prompts below assume your assistant has access to HoneyCoin docs (via /llms.txt, /skill.md, or the HoneyCoin MCP). Each prompt is paired with a short note on what the agent should produce.

💡

No docs context?

If your assistant doesn't have docs context, prefix the prompt with: "Use the HoneyCoin docs at https://docs.honeycoin.app/llms-full.txt. Always follow the rules at the agent-instructions page."

1. Collect KES via M-Pesa

Build a Node/Express endpoint that charges a customer 500 KES via M-Pesa STK push.
Use HoneyCoin. Generate a unique externalReference per request. Return the
HoneyCoin transactionId to the caller. Do not credit the customer until you
receive a transaction_updated webhook with status: successful.

What the agent should produce. A server route that mints (or reuses a cached) bearer token, calls POST /api/b2b/initiate-mobile-money-charge with currency: "KES", phoneNumber, amount, and a fresh externalReference. It should not include logic to mark the order paid synchronously.

2. Send Ghana mobile money payout

Send 100 GHS to phone 233500000000 via MTN Mobile Money. Use HoneyCoin payouts.
Make the call idempotent with a unique externalReference and surface failures
with errorCode-aware messages.

What the agent should produce. A POST /api/b2b/payouts call with currency: "GHS", momoOperatorId: "mtn", phoneNumber, amount, and externalReference. Error handling should branch on errorCode (e.g., PAYOUT_PROVIDER_NOT_FOUND, MOMO_OPERATOR_ID_REQUIRED).

3. Onramp NGN to USDC on Base

Convert 10,000 NGN to USDC and settle on Base. Use HoneyCoin onramp. Show me the
full flow including the webhook handler that records cryptoAmount and txId when
the onramp completes.

What the agent should produce. A two-part implementation: a server route that calls the onramp endpoint with sourceCurrency: "NGN", destinationToken: "USDC", destinationChain: "BASE"; and a webhook handler that listens for onramp_updated with status: successful and persists cryptoAmount, txId, chain, receiverAddress.

4. Offramp Base USDC to KES M-Pesa

Build an offramp that converts 50 USDC on Base into KES paid to the customer's
M-Pesa wallet. Generate the deposit address, instruct the user to send exactly
50 USDC on Base only, and credit the M-Pesa account when status is successful.

What the agent should produce. A call to the offramp initiate endpoint with sourceToken: "USDC", sourceChain: "BASE", destinationCurrency: "KES", and the customer's phone number. The agent must include explicit UI copy: "Send exactly 50 USDC on Base. Other chains or amounts will not settle."

5. Create a wallet on Base and receive USDC

Provision a HoneyCoin wallet on Base for customer cust_abc123. Subscribe to
webhooks BEFORE showing the address to the customer. When a wallet.transaction.received
webhook arrives, reconcile via GET /api/wallets/transactions/{id}?includeOnchain=true
and credit my internal ledger.

What the agent should produce. A two-step server flow: POST /api/wallets/addresses with chain: "BASE", ownerCustomerId: "cust_abc123"; then POST /api/wallets/subscriptions to register the webhook BEFORE returning the address to the client. Webhook handler reconciles and credits idempotently.

6. Handle XOF (Senegal vs Côte d'Ivoire)

Charge 5,000 XOF from a Senegalese customer via Orange Money. The XOF currency
is shared across four countries. Make sure the country is explicit so the
provider routes correctly.

What the agent should produce. Call to mobile money charge with currency: "XOF", momoOperatorId: "orange", prefillData.country: "SN", prefillData.phoneNumber. The country field is required for XOF; without it the provider does not know which national operator to route to.

7. Robust webhook receiver

Build a HoneyCoin webhook receiver in Python/FastAPI. Verify X-Webhook-Signature
against an env var, persist the raw event, return 2xx within 200ms, and process
asynchronously via Celery. Dedupe by event + transactionId + status.

What the agent should produce. A FastAPI route that compares the signature header to os.environ["HONEYCOIN_WEBHOOK_SECRET"], persists the payload, enqueues a Celery task, and returns {"ok": true}. The Celery task dedupes against Redis using f"{event}:{transactionId}:{status}" and reconciles via the transaction lookup endpoint.

8. Retry an INTERNAL_SERVER_ERROR safely

HoneyCoin returned 500 INTERNAL_SERVER_ERROR on my payout call. Write a retry
wrapper that retries up to 5 times with exponential backoff, reusing the same
externalReference. Stop on non-retryable errorCodes.

What the agent should produce. A wrapper that retries on retryable: true errors (INTERNAL_SERVER_ERROR, FX_RATE_UNAVAILABLE) up to N times with backoff (1s, 5s, 15s, 45s, 120s), and stops immediately on DUPLICATE_EXTERNAL_REFERENCE, USER_NOT_ONBOARDED, INSUFFICIENT_FUNDS, etc. The retryable flag comes from manifests/errors.json.

9. Check supported route before recommending

A customer in Cameroon wants to be paid in XAF via mobile money. Confirm this is
supported and pick the right operator. If not supported, tell me what alternatives
HoneyCoin offers.

What the agent should produce. A check against coverage.json: Cameroon (CM, XAF) is supported via MTN (mtn) and Orange (orange) for both collections and payouts, with limits 100–2,000,000 XAF. If the agent invents operators not listed, it has violated the coverage-check rule.

10. Reconcile a missed webhook

I think I missed a transaction_updated webhook for transactionId tx_abc. Show me
how to reconcile via the API, and write a daily cron job that pulls all
transactions from the last 25 hours and matches them against my ledger.

What the agent should produce. A call to GET /api/b2b/transactions/{transactionId} to get the canonical state. A daily cron that lists GET /api/b2b/transactions?from=...&to=..., joins on externalReference, and emits alerts for ledger gaps.

Tips for writing your own prompts

  • Be specific about the rail. Say "Ghana MTN mobile money" instead of "mobile money payment" — agents do better with concrete corridors.
  • State the finality rule explicitly. Add "Do not credit until status: successful" so the agent doesn't optimistically settle on the synchronous response.
  • Give it the externalReference. "Generate a UUID for externalReference" or "use the order ID" both work and prevent the agent from skipping the field.
  • Name the manifest you want it to check. "Verify against coverage.json" prompts an explicit lookup vs guessing.

Related