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

# PinkWallet API

The PinkWallet API collects stablecoin payments, holds multi-currency balances, and converts between assets on the same rails as the PinkWallet app. It generates shareable payment links that collect USDT or USDC on-chain, quotes and executes conversions between assets, and quotes and places orders to buy an asset with fiat. Accounts, balances, and a transaction history of deposits, payouts, conversions, and payments are readable, with all amounts as decimal strings and all timestamps in ISO-8601 UTC.

## For AI agents

Create USDT and USDC payment links, quote and run asset conversions, buy assets with fiat, and read PinkWallet accounts, balances, and transactions.

## Scope

Does not process card payments, run recurring subscriptions, or place exchange trades. Use for stablecoin payment links, multi-currency balances, conversions, and buy orders only.

## Capabilities

- Generate a shareable payment link that collects a USDT or USDC payment on-chain, with a reference and expires_in
- List payment links by status such as pending, paid, expired, or cancelled, and cancel an open link
- Quote a conversion between assets and execute it against the quote_id
- Quote and place a buy order for an asset paid in fiat
- Read accounts by currency and balances by asset
- List transactions filtered by type such as deposit, payout, conversion, or payment

## Use cases

### Invoicing agent collecting stablecoin payments through Jentic

An AI agent sending invoices can attach a pay-by-link option for clients who settle in stablecoins. Through Jentic the agent searches for 'create a stablecoin payment link', loads the PinkWallet createPaymentLink operation with its input schema, and submits an amount as a decimal string, an asset of USDT or USDC, and the invoice number as reference. Your pk_live_ key is injected at call time by your own Jentic One instance.

Example prompt: Call POST /payment_links with amount '250.00', asset 'USDC', reference 'INV-1042', and an Idempotency-Key header, then return the link; later call GET `/payment_links/{id}` to check whether its status is paid

### Treasury conversion between assets

A business holding several currencies converts between them when a payout is due. PinkWallet issues a quote with the rate, amounts, and expiry, and the conversion operation executes it against the quote_id. An Idempotency-Key header makes the write safely retryable for 24 hours.

Example prompt: Call POST `/convert/quotes` with from_asset 'USDT', to_asset 'USDC', and from_amount '1000.00', then POST /convert with the returned quote_id and an Idempotency-Key

### Reconciliation of balances and transactions

Finance teams reconcile what arrived against what they expected. The API lists accounts filtered by currency, balances filtered by asset, and transactions filtered by type, paged with limit and starting_after, so an agent can match paid payment links to deposits.

Example prompt: Call GET /transactions with type 'payment' and limit 50, then GET /payment_links with status 'paid' and match each link to its transaction

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/payment_links` | Create a payment link |
| GET | `/payment_links/{id}` | Retrieve a payment link |
| POST | `/payment_links/{id}/cancel` | Cancel a payment link |
| POST | `/convert/quotes` | Create a conversion quote |
| POST | `/convert` | Create a conversion |
| POST | `/buy_orders` | Create a buy order |
| GET | `/balances` | List balances |
| GET | `/transactions` | List transactions |

## Key resources

- **Payment links** — Shareable on-chain USDT or USDC payment requests with amount, reference, expiry, and status
- **Conversions and quotes** — Asset-to-asset conversion quotes with rate and expiry, and conversions executed against them
- **Buy orders** — Fiat-funded purchases of supported assets with their own quotes
- **Accounts, balances, and transactions** — Multi-currency accounts, per-asset balances, and deposit, payout, conversion, and payment history

## 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:** 62 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 59 / 100
  - AI-Readiness & Agent Experience: 44 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 55 / 100
- **View full report:** https://jentic.com/apis/pinkwallet.com/pinkwallet/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 PinkWallet by hand means sending a pk_live_ or pk_test_ key as a bearer token, choosing between the production and sandbox hosts, HMAC-signing writes with X-PW-Signature, and adding an Idempotency-Key to payment link, conversion, and buy order writes. Through Jentic you install once, import PinkWallet from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** PinkWallet puts the payment link id in the URL path (`/payment_links/{id}/cancel`), so a rule can pin your agent to one link, while conversion and buy order amounts travel in the request body. You choose the operations it may call, so fund-moving ones like POST /convert or POST /buy_orders are not included unless you add them.
- **Credential handling:** Your PinkWallet secret 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 stablecoin payment link' or 'convert USDT to USDC', and Jentic returns the matching PinkWallet operation with its input schema so the agent sends decimal-string amounts and the right asset codes without browsing the reference docs.

## Related APIs

- **NOWPayments API** — Cryptocurrency payment processing across many coins
- **Stripe API** — Card and bank payments, subscriptions, and payouts
- **Coinbase Advanced Trade** — Exchange trading for cryptocurrencies on Coinbase

## FAQ

### What authentication does the PinkWallet API use?

The PinkWallet API authenticates with your secret API key passed as an HTTP bearer token (bearerAuth) per its OpenAPI spec, with pk_live_ keys for production and pk_test_ keys for the sandbox host. The scheme description adds that write operations are additionally HMAC-signed via an X-PW-Signature header. Through Jentic the key is stored by your own instance and attached at call time.

### Can I collect USDC with a payment link using the PinkWallet API?

Yes. POST /payment_links takes an amount as a decimal string and an asset of USDT or USDC, plus an optional reference, expires_in in seconds, and metadata. It returns a shareable link that collects the payment on-chain, and GET `/payment_links/{id}` shows whether it is pending, paid, expired, or cancelled.

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

The OpenAPI spec does not specify rate limits. Check the PinkWallet developer site at https://api.pinkwallet.com for current limits; writes accept an Idempotency-Key header so retries after a throttled request do not duplicate a payment link, conversion, or buy order.

### Is there a PinkWallet MCP server?

You don't need an MCP server to give your agent PinkWallet. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls the payment link, conversion, and balance operations on demand without loading another server's tool definitions into its context.

### How do I create a payment link through Jentic?

Search Jentic for 'create a stablecoin payment link', load the POST /payment_links operation, and execute it with amount and asset, adding a reference to tie it to an invoice. Use the sandbox host with a pk_test_ key while testing. To run it on your own infrastructure, install Jentic One from its GitHub repo.

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

Yes. Write a rule that allows only POST /payment_links, GET `/payment_links/{id}`, and GET /balances, and the agent can request payments and check balances while conversions and buy orders, which move your funds, stay outside its allowed set. Every call it makes is logged for review.
