canonical: https://jentic.com/apis/moneris.io/moneris-loyalty-api

# Moneris Loyalty API

The Moneris Loyalty API records loyalty activity for a merchant's card-based rewards program at the point of sale or checkout. It checks a member's points balance, accumulates points on a purchase with optional line items and promotions, redeems points against a transaction, and redeems reward items for a card. Full, partial, and item-level reversals undo earlier activity, a commit call finalises transactions held open, and non-member accumulation records points for shoppers who have not yet joined. The initialization and QR code calls return program settings, transaction limits, and a sign-up link.

## For AI agents

Check loyalty balances, accumulate and redeem points, redeem rewards, and reverse or commit loyalty transactions for a Moneris merchant loyalty program by card ID.

## Scope

Does not process card payments, issue refunds, or manage customer billing profiles. Use for Moneris loyalty points and rewards transactions only.

## Capabilities

- Check a member's total and available points balance and redeemable rewards by cardId
- Accumulate loyalty points on a purchase, including line items and applied promotions
- Redeem points against a transaction amount and record the redemption on an invoiceId
- Redeem reward items for a card and read the reward choices available to it
- Reverse a loyalty transaction in full, in part by points, or item by item
- Commit an accumulation or redemption that was submitted with autoCommit turned off
- Fetch program initialization settings and a QR code sign-up link for new members

## Use cases

### AI checkout assistant that awards and redeems loyalty points

An agent handling a checkout needs to show the shopper their points and apply them without a developer hand-wiring OAuth for the Moneris loyalty service. Through Jentic the agent searches for 'check a loyalty card balance', loads the Moneris balance operation with its input schema, and then calls the redemption operation for the amount the shopper chooses. The OAuth client credentials token is fetched and attached by your own Jentic One instance, so the agent only handles the cardId and transaction values.

Example prompt: Call POST `/loyalty/balance` with the channel, cardId, timestamp, currency CAD, and languageCode en, then call POST `/loyalty/redemptions` to redeem 500 redeemedPoints against a 42.50 transactionAmount on invoiceId INV-1042

### Earning points on in-store and online purchases

A merchant running a Moneris loyalty program awards points every time a member pays, whether at a terminal or an online checkout. The accumulation operation takes the transaction amount, payment method, and optional line items with eligibleForAccumulation flags, and returns the points added, promotion points, and the new total balance. A channel object identifies a terminal, checkout, or API source so activity is traced to where it happened.

Example prompt: Call POST `/loyalty/accumulations` for cardId 6012345678901234 with a TerminalChannel, a 120.00 transactionAmount, paymentMethod, currency, languageCode, and two line items, then report addedPoints and totalBalancePoints

### Reversing loyalty activity after a refund

When a purchase is refunded or a single item is returned, the points earned on it should come back off the member's balance. The Loyalty API offers a full reversal keyed on the originalTransactionId and reversedAmount, a partial reversal by reversedPoints, and an item-level reversal for specific line items. This keeps loyalty balances aligned with the merchant's refund records.

Example prompt: Call POST `/loyalty/reversal` with the channel, cardId, timestamp, currency, languageCode, originalTransactionId, reversedAmount 35.00, and invoiceId of the refunded order

### Two-step loyalty transactions with explicit commit

Some checkouts hold loyalty activity open until payment settles. Accumulation, redemption, and reward redemption requests accept an autoCommit flag; when it is off, the transaction stays pending until a commit call with the channel, cardId, originalTransactionId, and timestamp finalises it. This lets a checkout avoid awarding points for a payment that later fails.

Example prompt: Call POST `/loyalty/accumulations` with autoCommit false, wait for the payment to settle, then call POST `/loyalty/commit` with the channel, cardId, the returned transactionId as originalTransactionId, and a timestamp

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/loyalty/balance` | Get loyalty balance |
| POST | `/loyalty/accumulations` | Accumulate loyalty points |
| POST | `/loyalty/redemptions` | Redeem loyalty points |
| POST | `/loyalty/reward-redemptions` | Redeem rewards |
| POST | `/loyalty/reversal` | Full reversal |
| POST | `/loyalty/commit` | Commit a pending transaction |
| GET | `/loyalty/initialization` | Get loyalty program settings |

## Key resources

- **Balance and rewards** — Points balance, available points value, and reward choices for a loyalty card
- **Accumulations and redemptions** — Earn points on purchases, redeem points against an amount, and redeem reward items
- **Reversals and commit** — Full, partial, and item-level reversals, plus commit for transactions held open
- **Program settings** — Initialization settings with transaction limits and a QR code sign-up link

## 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:** 64 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 71 / 100
  - Developer Experience & Jentic Compatibility: 71 / 100
  - AI-Readiness & Agent Experience: 45 / 100
  - Agent Usability: 94 / 100
  - Security: 85 / 100
  - AI Discoverability: 55 / 100
- **View full report:** https://jentic.com/apis/moneris.io/moneris-loyalty-api/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 Moneris Loyalty API by hand means running the OAuth client credentials exchange against the Moneris token endpoint, refreshing the token, and building the channel object every request needs. Through Jentic you install once, import the Loyalty API from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** Every Loyalty operation carries the cardId in the request body rather than the URL path, so rules bound which operations your agent may call, not which card. You choose the operations it may call, so ones that move points like redemptions or reversals are not included unless you add them.
- **Credential handling:** Your Moneris client credentials are stored once, encrypted, by your own Jentic One instance, which fetches the access token and injects it at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'redeem loyalty points' or 'reverse a loyalty transaction', and Jentic returns the matching Moneris Loyalty operation with its input schema, including the required channel, cardId, and timestamp fields.

## Related APIs

- **Moneris API** — Moneris payments, refunds, subscriptions, and customers for the same merchant
- **Antavo Loyalty Engine API** — Standalone loyalty platform with member events, tiers, and rewards
- **LoyaltyLion API** — Loyalty and rewards for ecommerce stores

## FAQ

### What authentication does the Moneris Loyalty API use?

Per its OpenAPI spec, the Moneris Loyalty API uses OAuth 2.0 with the client credentials flow, exchanging a client ID and secret at the Moneris OAuth token endpoint for a bearer access token. The spec applies this oauth2 scheme to all 12 operations. Through Jentic your client credentials are stored by your own Jentic One instance, which obtains the token and attaches it at call time so the agent never sees it.

### Can I reverse only part of a loyalty transaction with the Moneris Loyalty API?

Yes. POST `/loyalty/partial-reversal` takes reversedPoints to remove part of the points from an earlier transaction, and POST `/loyalty/item-reversal` takes the items to reverse individual line items. For a full undo, POST `/loyalty/reversal` takes the originalTransactionId, reversedAmount, and invoiceId.

### What are the rate limits for the Moneris Loyalty API?

The OpenAPI spec does not specify rate limits for the Loyalty API. Check the Moneris developer portal at https://developer.moneris.com for current limits on your merchant account.

### Is there a Moneris Loyalty MCP server?

You don't need an MCP server to give your agent the Moneris Loyalty API. Jentic connects it directly from the API Directory: import it, store your OAuth client credentials once, and your agent calls the balance, accumulation, and redemption operations on demand without another server's tool definitions sitting in its context.

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

Yes. Write a rule that allows only the balance and reward-details operations, so the agent can tell a shopper their points and rewards but cannot accumulate, redeem, or reverse anything. If you later want it to redeem at checkout, add the redemption operation to the rule, and every call it makes is logged.

### How do I check a member's points through Jentic?

Search Jentic for 'check a loyalty card balance', load the POST `/loyalty/balance` operation, and execute it with the channel, cardId, timestamp, currency, and languageCode. The response returns totalBalancePoints, totalAvailablePoints, and any rewards on the card. To run it on your own infrastructure, install Jentic One from its GitHub repo.
