canonical: https://jentic.com/apis/pos.api.slyp.com.au/slyp-pos

# Pos Api Slyp Slyp POS API

The Slyp POS API connects a point-of-sale system to Slyp digital receipts and merchant loyalty programs in Australia. A POS looks up a consumer by phone number, loyalty id, or OAuth code, signs them up to a program, and opens a transaction to get the points earned and loyalty-adjusted prices for the basket. It then records points redemptions as payments, finalises or cancels the transaction, and submits the receipt, with a separate adjust operation for refunds, exchanges, and extra discounts after the sale. A sandbox host mirrors production for integration testing.

## For AI agents

Look up and enrol loyalty members, open and finalise POS transactions with points redemption, and submit or adjust Slyp digital receipts.

## Scope

Does not process card payments, settle funds, or manage product inventory. Use for POS loyalty transactions and Slyp digital receipts only.

## Capabilities

- Look up a consumer's loyalty account and available_credit by phone_number, loyalty_id, or oauth_code
- Sign a consumer up to a merchant loyalty program with program_id and phone_number
- Open a POS transaction to get points earned and loyalty-adjusted basket prices, then update it as items change
- Record a points payment against a transaction and cancel it by payment_xref before finalising
- Finalise or cancel a transaction so points are attributed or the consumer's account is unlocked
- Submit a digital receipt with pos_id, tid, and payment_data, and adjust it later for refunds or exchanges

## Use cases

### Agent-run POS integration testing through Jentic

A developer building a POS integration asks their agent to walk the full loyalty checkout flow against the Slyp sandbox. Through Jentic the agent finds each operation by intent, sends the bearer JWT and the required x-client header that your own instance supplies, and chains account lookup, transaction open, payment, and finalise. The developer gets a working end-to-end trace without hand-wiring the JWT exchange or the call order.

Example prompt: Call GET /account with loyalty_id, POST `/transaction/open` with the basket and loyalty, POST `/transaction/{transaction_id}/payment` with currency_value_redeemed 10, then POST `/transaction/{transaction_id}/finalise` including the payment_xref in other_payments

### Points redemption at the register

When a member taps their card, the POS needs their balance and a way to spend it. GET /account returns available_credit for the loyalty_id, the payment operation locks the redeemed points against the open transaction, and finalising debits them and attributes new points. If the customer changes their mind, the payment is cancelled by payment_xref and the points unlock.

Example prompt: Fetch available_credit with GET /account?loyalty_id=L-123, record a redemption with POST `/transaction/{transaction_id}/payment`, and cancel it with POST `/transaction/{transaction_id}/payment/{payment_xref}/cancel` if the sale is abandoned

### Digital receipts for every sale

A retailer wants every in-store purchase to produce a digital receipt the shopper can find later. POST /receipts accepts the basket, payment_data used to match the receipt to a consumer, the issuing pos_id and terminal tid, and an external_id to prevent duplicates. GET /receipt retrieves the stored receipt by external_id or transaction_id.

Example prompt: Submit a receipt with POST /receipts including pos_id POS_1, tid TERMINAL_1, and external_id RPT-123, then confirm it with GET /receipt?external_id=RPT-123

### Refunds and exchanges after the sale

Returns happen days after purchase and must update both the receipt and the loyalty balance. POST `/receipts/{receipt_xref}/adjust` takes only the delta: refunded items with negative prices, refunded payments with negative amounts, and extra discounts as adjustment basket items, so the original receipt and points stay consistent.

Example prompt: Call POST `/receipts/{receipt_xref}/adjust` with a basket item priced -10.00 AUD to refund one returned item on receipt R-X-1236

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/authenticate` | Get a bearer JWT |
| GET | `/account` | Look up a consumer's loyalty account |
| POST | `/transaction/open` | Open a transaction for a basket |
| POST | `/transaction/{transaction_id}/payment` | Record a points payment |
| POST | `/transaction/{transaction_id}/finalise` | Finalise the transaction |
| POST | `/receipts` | Submit a digital receipt |
| POST | `/receipts/{receipt_xref}/adjust` | Adjust a receipt for refunds or exchanges |
| GET | `/receipt` | Retrieve receipt details |

## Key resources

- **Authentication** — Exchange the merchant apiKey and merchant id for a bearer JWT
- **Accounts** — Look up a consumer's loyalty account and sign new consumers up to a program
- **Transactions** — Open, update, finalise, or cancel a POS transaction and record or cancel points payments
- **Receipts** — Submit, retrieve, and adjust digital receipts

## 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:** 57 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 82 / 100
  - Developer Experience & Jentic Compatibility: 76 / 100
  - AI-Readiness & Agent Experience: 30 / 100
  - Agent Usability: 94 / 100
  - Security: 75 / 100
  - AI Discoverability: 70 / 100
- **View full report:** https://jentic.com/apis/pos.api.slyp.com.au/slyp-pos/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 Slyp by hand means exchanging the merchant apiKey and merchant id for a JWT at /authenticate, sending it as a bearer token with the x-client header on each call, picking the sandbox or production host, and getting the open, payment, finalise order right. Through Jentic you install once, import Slyp from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Slyp carries the consumer, merchant program, and basket in request bodies and query strings, so rules bound which operations your agent may call rather than which customer. You choose the operations it may call, so points-moving ones like recording a payment, finalising a transaction, or adjusting a receipt are not included unless you add them.
- **Credential handling:** Your Slyp merchant credentials and bearer token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'look up a loyalty member' or 'refund an item on a receipt', and Jentic returns the matching Slyp operation with its input schema, including required fields like program_id and x-client, so the agent calls the right step.

## Related APIs

- **Apideck POS API** — Unified API across many POS systems for orders, payments, and items
- **TRYB Loyalty API** — Loyalty cards and points for customer retention
- **obono RKSV API** — Fiscal cash-register receipts for Austrian compliance

## FAQ

### What authentication does the Slyp POS API use?

The Slyp POS API authenticates with a bearer JWT per its OpenAPI spec. The JWT comes from POST /authenticate, which takes the merchant's apiKey and merchant id in the request body, and the spec also declares a required x-client header naming the sending POS system, such as kosmos-pos-v1. Through Jentic the credentials are held by your own instance and attached at call time.

### Can I redeem loyalty points with the Slyp POS API?

Yes. GET /account returns the consumer's available_credit, POST `/transaction/{transaction_id}/payment` records a redemption with currency_value_redeemed and returns a payment_xref, and POST `/transaction/{transaction_id}/finalise` debits the points once the payment_xref is included in other_payments. A payment can be cancelled first to unlock the points.

### What are the rate limits for the Slyp POS API?

The OpenAPI spec does not specify rate limits for the Slyp POS API. Contact Slyp at dev@slyp.com.au, the support address named in the spec, for current limits before load testing against production.

### Is there a sandbox for the Slyp POS API?

Yes. The spec lists https://pos.api.sandbox-slyp.com.au/v1 as the sandbox host alongside production at https://pos.api.slyp.com.au/v1, and each has its own /authenticate endpoint for issuing a JWT. Point the integration at the sandbox host while testing the transaction flow.

### Is there a Slyp MCP server?

You don't need an MCP server to give your agent Slyp. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls the account, transaction, and receipt operations it needs, discovered on demand instead of loaded into its context up front.

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

Yes. For example, allow only GET /account and GET /receipt, and the agent can look up members and read receipts but cannot open transactions, redeem points, or adjust receipts. Each call the agent makes is logged, so a reporting task stays read-only and reviewable.

### How do I submit a receipt with Slyp through Jentic?

Search Jentic for 'submit a digital receipt', load the POST /receipts operation, and send the basket items, payment_data, pos_id, tid, and an external_id to prevent duplicates. To run it on your own infrastructure, install Jentic One from its GitHub repo.
