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

# PulliPay API

The PulliPay API reads a PulliPay customer's cash wallet, cashback wallet, and unified balance overview, and starts cash wallet top-ups. It also returns summaries of the customer's buy-now-pay-later credit: a monthly BNPL summary and a 4x installment summary. Onboarding is covered too, with signup by phone and national ID plus one-time-password send and verify steps.

## For AI agents

Check PulliPay cash and cashback wallet balances, read BNPL and 4x installment summaries, and create cash wallet top-ups for a signed-in customer.

## Scope

Does not handle merchant checkout, card acquiring, or bank account transfers. Use for reading PulliPay wallet and BNPL balances and creating cash wallet top-ups only.

## Capabilities

- Read the cash wallet balance and the cashback wallet balance separately
- Pull a unified overview of all PulliPay balances in one call via `/overview/balances`
- Create a cash wallet top-up with an amount, currency, optional source, and callback_url
- Summarise the customer's monthly buy-now-pay-later position with the BNPL summary
- Review the 4x installment plan summary for split purchases
- Register a customer with phone and national_id, then send and verify a one-time password

## Use cases

### Agent balance check through Jentic

A personal finance agent answers questions like 'how much can I spend this month?' by calling the PulliPay overview, cash wallet, and cashback wallet balance operations through Jentic. The bearer token is injected by the developer's own Jentic One instance, so the agent reads balances without holding the token itself.

Example prompt: Call GET `/overview/balances`, then GET `/wallets/cashback/balance`, and report the combined cash and cashback position to the user

### Wallet top-up

When a customer wants to add funds, the create top-up operation accepts the required amount and currency plus an optional source and a callback_url that PulliPay can notify when the top-up completes. Pair it with the cash wallet balance read to confirm the new balance afterwards.

Example prompt: POST `/wallets/cash/topups` with amount 250 and currency 'SAR', then GET `/wallets/cash/balance` to confirm the updated balance

### BNPL and installment monitoring

Buy-now-pay-later users need to see what they owe. The monthly BNPL summary and the 4x installment summary give an agent the data to remind a customer of upcoming obligations or explain their current credit position.

Example prompt: GET `/credit/bnpl/monthly/summary` and GET `/credit/installments/4x/summary`, then summarise the outstanding amounts for the user

### Phone-based onboarding

New customers sign up with a phone number and national_id (with an optional invite_code), then confirm the phone through the OTP send and verify operations, where send takes the phone and a purpose. This lets an onboarding flow register and verify a customer in sequence.

Example prompt: POST `/auth/signup` with phone and national_id, POST `/auth/otp/send` with the phone and purpose, then POST `/auth/otp/verify` with the phone and the received otp

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/overview/balances` | Unified overview of balances |
| GET | `/wallets/cash/balance` | Cash wallet balance |
| POST | `/wallets/cash/topups` | Create a cash wallet top-up |
| GET | `/wallets/cashback/balance` | Cashback wallet balance |
| GET | `/credit/bnpl/monthly/summary` | Monthly BNPL summary |
| GET | `/credit/installments/4x/summary` | 4x installment summary |
| POST | `/auth/signup` | Sign up a customer |

## Key resources

- **Wallets** — Cash wallet balance, cashback wallet balance, and cash wallet top-ups
- **Credit** — Monthly BNPL summary and 4x installment summary
- **Overview** — Unified view of all balances
- **Auth** — Signup plus OTP send and verify

## 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:** 30 / 100
- **Maturity:** Non-Ready
- **Dimensions:**
  - Foundational Compliance: 82 / 100
  - Developer Experience & Jentic Compatibility: 64 / 100
  - AI-Readiness & Agent Experience: 19 / 100
  - Agent Usability: 94 / 100
  - Security: 75 / 100
  - AI Discoverability: 8 / 100
- **View full report:** https://jentic.com/apis/pullipay.com/pullipay/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 PulliPay by hand means obtaining a JWT bearer token through its signup and OTP flow and attaching it to each wallet and credit call yourself. Through Jentic you install once, import PulliPay from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** PulliPay paths carry no resource ids, so rules bound which operations your agent may call rather than which wallet. You choose the operations it may call, so a money-moving one like the cash wallet top-up is not included unless you add it.
- **Credential handling:** Your PulliPay bearer token 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 'check my wallet balance' or 'show my BNPL summary', and Jentic returns the matching PulliPay operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Afterpay API** — Buy-now-pay-later provider with merchant-side checkout and order operations
- **Stripe API** — Broad payments platform for accepting card and wallet payments
- **Twilio Verify API** — Dedicated phone and email verification service

## FAQ

### What authentication does the PulliPay API use?

The PulliPay API declares an HTTP bearer scheme (BearerAuth) with a JWT bearer format in its OpenAPI spec, applied globally. Through Jentic, the token is stored encrypted by your own Jentic One instance and injected at execution time, so it never enters the agent's context.

### Can I top up a PulliPay cash wallet through the API?

Yes. POST `/wallets/cash/topups` creates a top-up. The body requires amount and currency, and accepts an optional source and a callback_url for completion notification. Read GET `/wallets/cash/balance` afterwards to confirm the new balance.

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

The OpenAPI spec does not specify rate limits. Check PulliPay's own developer documentation for current limits before running high-volume balance polling.

### How do I check wallet balances with the PulliPay API through Jentic?

Install Jentic One, import the PulliPay API from the Jentic API Directory, and store your bearer token. Your agent searches for 'check my wallet balance', Jentic returns the GET `/overview/balances` operation with its schema, and the agent calls it. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there a PulliPay MCP server?

You don't need an MCP server to give your agent PulliPay. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls it, with operations discovered on demand instead of loading a full tool list into its context.

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

Yes. Write a rule that allows only GET `/overview/balances`, GET `/wallets/cash/balance`, and GET `/wallets/cashback/balance`, and your agent can report balances while a top-up request is outside what it may call. Add POST `/wallets/cash/topups` to the rule only when you want it to move money.
