canonical: https://jentic.com/apis/safaricom.et/safaricom-et

# Safaricom Et M-PESA Ethiopia API

M-PESA mobile money platform for Ethiopia. The API exposes 2 endpoints secured with apiKey authentication.

## For AI agents

Programmatically create payment, get payment status. Covers 2 operations with apiKey authentication.

## Scope

Does not handle payments, communications, or crm - use for developer tools only.

## Capabilities

- Create payment
- Get payment status
- Integrate M-PESA Ethiopia API into automated workflows
- Query and filter M-PESA Ethiopia API records by parameters
- Monitor M-PESA Ethiopia API operational status and events

## Use cases

### Developer Tools Operations

Use the M-PESA Ethiopia API to perform developer tools operations programmatically. The API provides 2 endpoints covering core functionality including create payment, get payment status.

Example prompt: Call POST /payments to create payment

### Data Retrieval and Monitoring

Query M-PESA Ethiopia API resources on a schedule to track changes, generate alerts, or feed downstream dashboards. Agents poll relevant endpoints, compare against previous state, and trigger actions when thresholds are crossed.

Example prompt: Poll the primary M-PESA Ethiopia API endpoint, compare response to last known state, and alert if changed

### AI Agent Integration via Jentic

AI agents discover and call M-PESA Ethiopia API endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle apiKey tokens manually.

Example prompt: Search Jentic for 'create payment', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/payments` | Create payment |
| GET | `/payments/{id}` | Get payment status |

## Key resources

- **Payments** — Operations related to Payments

## 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:** 65 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 100 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 45 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/safaricom.et/safaricom-et/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 the M-PESA Ethiopia API by hand means managing its X-API-Key header, attaching it to each call against api.safaricom.et, and handling your own retries. Through Jentic you install once, import the M-PESA Ethiopia API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The M-PESA Ethiopia API takes payment details in the request body rather than pinning to a resource path, so scope the agent to the operations it needs, such as checking a payment's status by id, and leave out creating payments unless the agent needs them.
- **Credential handling:** Your M-PESA Ethiopia 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 'create a payment' or 'check payment status', and Jentic returns the matching M-PESA Ethiopia API operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Github** — Alternative developer tools API
- **Gitlab** — Alternative developer tools API

## FAQ

### What authentication does the M-PESA Ethiopia API use?

The M-PESA Ethiopia API uses an API key passed in the `X-API-Key` header. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I create payment with the M-PESA Ethiopia API?

Yes. Use the POST /payments endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the M-PESA Ethiopia API?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I create payment through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'create payment'. Jentic returns the matching M-PESA Ethiopia API operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the M-PESA Ethiopia API have?

The M-PESA Ethiopia API exposes 2 endpoints covering payments operations.

### Can I limit what my agent is allowed to do with the M-PESA Ethiopia API?

Yes. Because you run Jentic One yourself, your own rules decide which M-PESA Ethiopia API operations and credentials the agent may use. The API has just two operations, creating a payment via POST /payments and checking a payment's status by id via GET `/payments/{id}`, so you can allow the read-only status check while withholding payment creation until the agent genuinely needs it. Your API key is injected only for the operations you permit, so the agent never sees the raw secret or calls an endpoint you have not scoped it to.
