Endpoint Solutions Overview
Before you open any gateway configuration page, read this. It takes five minutes and will make every other page in this portal make sense.
The Platform in One Sentence
This platform provisions merchants onto payment gateways by writing configuration to a chain of MGMT API endpoints — in a fixed order — so that each payment method a merchant supports has a complete, connected set of records.
1. The Provisioning Dependency Chain
The seven-object view is useful, but it is only the top-level abstraction. The real provisioning flow in the Jinja template is a dependency chain: each provisioning context must be created in the right order because downstream objects depend on the ones that came before them.
The current template in templates/mpgs-uat.j2 materializes
this flow as a sequence of provisioning contexts: group, merchant, mpg, apiuser,
terminals, terminalconfigs, and sts. The STS portion is especially important because
it contains sub-steps that are conceptually separate even though they sit under one STS
block in the template.
Group (optional)
└── Merchant
├── MerchantPaymentGateway entries ×N
├── API User
└── Terminal(s)
├── TerminalConfig rows ×N
└── STS context (if token flows are needed)
├── Token Space
├── Token Repository
├── STS API User / access principal
└── Token-channel permissions
| Step | Provisioning context | What it creates | Why it must come here |
|---|---|---|---|
| 1 | Group | Logical container for merchants at the same property | Establishes the owning container before any merchant-specific records |
| 2 | Merchant | Core merchant identity, gateway credentials, SKU stamp | Creates the root merchant record that all downstream objects reference |
| 3 | MerchantPaymentGateway | One or more MPG entries for the active PM slots | Depends on the merchant and on the selected payment-method configuration |
| 4 | API User | Service account used for system-to-system access | Depends on the merchant context and is required for subsequent automation steps |
| 5 | Terminal(s) | Physical or virtual point of interaction | Required before terminal-level configuration can be attached |
| 6 | TerminalConfig rows | Per-terminal routing and processing settings | Depends on the terminal object and the selected processing mode |
| 7 | STS Token Space | Logical container for STS repositories | Required before any token repository or token access can exist |
| 8 | STS Token Repository | Storage location for token records | Depends on the token space and is required for token-based flows |
| 9 | STS API User / access principal | Identity used to access the STS | Depends on the token space and is needed for token operations |
| 10 | STS token-channel permissions | Access grants for the token channel | Depends on the STS context and the channel configuration |
Why does order matter? The provisioning graph is sequential. You cannot create a MerchantPaymentGateway before the Merchant exists, you cannot create TerminalConfig before the Terminal exists, and you cannot create STS repositories or access grants before the STS token space exists. The Jinja template encodes this order so the automation can materialize the full workflow in one run.
Note: The repository currently exposes the STS setup as a single
stsblock in the template, with sub-objects for token space, repository, API user, and token-channel config. If a future version introduces separate STS user objects or additional permission objects, they should be added as additional dependency steps in this sequence.
2. SKU Naming Convention First
Before you read any schema or gateway detail, start with the SKU naming convention. A SKU is a five-segment code that uniquely identifies a merchant product configuration. Every field in the system traces back to the SKU — it determines which gateway is used, which payment methods are active, and which schema fields apply.
C2C - ALL - 0006 - A - 010010
│ │ │ │ │
│ │ │ │ └── Capability Bitmap (6 bits, one per PM slot)
│ │ │ └───────── Variant letter
│ │ └───────────────── Solution ID → maps to a gateway + integration
│ └───────────────────────── Region code (ALL = global)
└───────────────────────────────── Industry code
Decoded example — C2C-ALL-0006-A-010010:
| Segment | Value | Meaning |
|---|---|---|
| Industry | C2C |
C2C Ecommerce |
| Region | ALL |
All regions |
| Solution | 0006 |
MPGS SPF |
| Variant | A |
Baseline variant |
| Bitmap | 010010 |
PM1 (Token) + PM4 (Ecommerce) active |
See SKU Naming Convention for the full reference.
3. What Are Payment Method Slots?
A payment method slot (PM slot) defines a channel of payment acceptance. Each active slot in a merchant's bitmap requires at least one MerchantPaymentGateway entry — sometimes two if the gateway splits the same slot into sync and async processing modes.
| PM Slot | Channel | Typical use case |
|---|---|---|
| PM0 | Bank Card (Card Present) | Physical POS terminal |
| PM1 | Token | MOTO, card-on-file, recurring |
| PM2 | QR MS | QR code via Mastercard Send |
| PM3 | QR GS | QR code via Global Standard |
| PM4 | Ecommerce | Hosted payment page / Drop-in SDK |
| PM5 | Gift | Gift card / stored value |
| PM99 | MPI / 3DS | 3DS authentication (not in bitmap) |
The bitmap tells you exactly how many MPG entries to create:
| Bitmap | Active PMs | MPG entries needed |
|---|---|---|
110000 |
PM0 + PM1 | 3 (PM0×1 + PM1×2 for sync/async on MPGS) |
010010 |
PM1 + PM4 | 4 (PM1×2 + PM4×2 widget/processing on MPGS) |
110000 |
PM0 + PM1 | 2 (PM0×1 + PM1×1 on Adyen — no sync/async split) |
MPGS PM1 has two entries; Adyen PM1 has one. The gateway determines the entry count per slot — not the bitmap alone. Always read the gateway's MPG Configuration page alongside the bitmap.
See Payment Methods & Capability Bitmap for the full reference including role identifiers.
4. Solutions and Gateways
A Solution ID maps an industry product to a specific gateway and integration pattern. The solution determines which schema file applies and which gateway configuration pages to follow. For new work, microservice-based solutions are the preferred target state. SPF solutions remain documented for backward compatibility, reference, and migration planning while the platform transitions over time.
| Solution | Gateway | Integration | Status |
|---|---|---|---|
| 0001 | Adyen | SPF | Retiring |
| 0002 | FreedomPay | SPF | Active |
| 0003 | Elavon | SPF | Active |
| 0004 | Planet | SPF | Active |
| 0005 | Shift4 | SPF | Active |
| 0006 | MPGS | SPF | Active |
| 1002 | FreedomPay | MS | Active |
| 1003 | Elavon | MS | Active |
| 1004 | Planet | MS | Active |
Note
SPF (Legacy Architecture): uses a single integration endpoint where payment methods share a common integration model. Configuration is centralized, resulting in a simpler provisioning workflow.
MS (Current Architecture - Recommended): uses a microservice-based architecture where individual capabilities are provisioned and configured as independent services. This introduces additional configuration and provisioning steps while enabling capability-specific deployment and management.
See Solution IDs for the full reference.
5. Active Products (SKUs)
The portal currently documents the following active SKUs:
| SKU | Industry | Gateway | PM Slots | Documentation |
|---|---|---|---|---|
| C2C-ALL-0006-A-010010 | C2C Ecommerce | MPGS SPF | PM1 + PM4 | ✅ Full |
| FNB-ALL-0006-A-110000 | Food & Beverage | MPGS SPF | PM0 + PM1 | ✅ Full |
| FNB-ALL-0001-A-110000 | Food & Beverage | Adyen SPF | PM0 + PM1 | ⚠️ Partial |
| C2C-US-1003-A-010010 | C2C Ecommerce | Elavon MS | PM1 + PM4 | ⚠️ Partial |
| C2C-US-1003-B-010010 | C2C Ecommerce | Elavon MS | PM1 + PM4 | ⚠️ Partial |
Documentation References
The documentation is organized by task. Use the following pages based on what you need to perform.
| Task | Documentation |
|---|---|
| Understand the provisioning model and platform architecture | This page |
| Decode a SKU identifier | SKU Naming Convention |
| Determine the payment methods and MPG entries required by a SKU | Payment Methods & Bitmap |
| Understand gateway-specific behavior and configuration | Gateway Overview (for example, MPGS) |
| Configure a specific merchant or product | The applicable SKU Variant page (for example, C2C-ALL-0006-A-010010) |
| Look up a configuration field | The Gateway Field Catalog (for example, MPGS Field Catalog) |
| Decode industry codes (for example, FNB, C2C, LOD) | Industry Codes |
| Identify the gateway associated with a solution ID | Solution IDs |