# ArifPay Developer Portal — guidance for AI assistants and LLM crawlers # https://llmstxt.org/ > ArifPay Developer Portal documents payment APIs for Ethiopia (Telebirr, CBE, M-Pesa, Awash, banks, cards) plus hosted checkout, webhooks, B2C payouts, and an interactive sandbox. ## Primary URLs - Home: / - Documentation: /docs - Sandbox: /sandbox - Payments overview: /payments - Machine-readable sitemap: /sitemap.xml ## Start here (humans and agents) 1. /docs/overview — gateway capabilities 2. /docs/get-api-keys — authentication with x-arifpay-key 3. /docs/create-checkout-session — hosted checkout 4. /docs/transaction-lifecycle — async statuses (PENDING → SUCCESS/FAILED) 5. /docs/recommended-merchant-pattern — verify + webhook pattern 6. /docs/webhook-shape — notifyUrl JSON payload 7. /sandbox — try C2B / B2C against sandbox APIs ## C2B payment docs - /docs/c2b/telebirr - /docs/c2b/cbe - /docs/c2b/mpesa - /docs/c2b/awash - /docs/c2b/boa - /docs/c2b/yaya - /docs/c2b/kacha - /docs/c2b/ahadu - /docs/c2b/binget - /docs/c2b/zamzam - /docs/c2b/paypal - /docs/c2b/mastercard - /docs/c2b/visa ## B2C payout docs - /docs/b2c/telebirr - /docs/b2c/cbe - /docs/b2c/mpesa ## Verification - /docs/verify/session-id - /docs/verify/transaction-id ## Important API facts - Production API responses use JSON envelope: { "error", "msg", "data" }. - Merchant webhooks POST raw JSON to notifyUrl (not wrapped in that envelope). - Transaction statuses include PENDING, SUCCESS, FAILED, CANCELLED, EXPIRED. - Prefer verify APIs when a webhook is missing; do not trust browser redirects alone. - Reusing the same nonce returns "session already exist". ## Optional - Contact / support: see site footer (contact center 9395 where shown) - Set NEXT_PUBLIC_SITE_URL in deployment for correct canonical URLs in sitemap and metadata