Download the PHP package moffhub/mps-spec without Composer
On this page you can find all versions of the php package moffhub/mps-spec. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download moffhub/mps-spec
More information about moffhub/mps-spec
Files in moffhub/mps-spec
Package mps-spec
Short Description Moffhub Payment Standard - Interfaces, DTOs, Enums, and Event Schemas for building payment connectors.
License MIT
Homepage https://github.com/Moffhub-Solutions/mps-spec
Informations about the package mps-spec
Moffhub Payment Standard (MPS)
The contract layer for building payment and service connectors against the Moffhub Payment Standard. This package contains only interfaces, DTOs, enums, and exceptions — no runtime logic, no framework dependencies. Implement against this and you are MPS-compliant.
If you only want to use a connector, you don't need this package directly. If you are building a connector, start with moffhub/connector-sdk, which provides a base class you can extend.
Installation
Requires PHP 8.3+.
What's in the box
- Contracts (
Moffhub\MpsSpec\Contracts\) —ConnectorInterface,ServiceConnectorInterface, plus capability mixins (HasChargeCapability,HasRefundCapability,HasSettlementCapability,HasDisbursementCapability,HasWebhookCapability,HasProvisioningCapability). - Data (
Moffhub\MpsSpec\Data\) — Immutablefinal readonlyDTOs:ChargeRequest,ChargeResponse,ConnectorManifest,MoneyAmount,SettlementReport, etc. - Enums (
Moffhub\MpsSpec\Enums\) — Backed string enums:Capability,Channel,ChargeStatus,Currency,ConnectorType,SettlementModel, etc. - Exceptions (
Moffhub\MpsSpec\Exceptions\) — Domain exceptions likeChargeFailedException,WebhookVerificationFailedException.
The two connector shapes
A connector is one of two things:
| Type | Purpose | Implements |
|---|---|---|
| Payment Connector | Moves money (charges, refunds, settlements, disbursements) | ConnectorInterface + capability mixins |
| Service Connector | Domain validation and lifecycle (e.g. utility bill lookup, ticketing) | ServiceConnectorInterface |
Every connector declares its capabilities, channels, currencies, and required config in a ConnectorManifest returned from manifest(). The platform reads the manifest to wire up the connector.
Minimal example
Here's the contract surface for a connector that takes payments and processes refunds:
In practice, you should extend Moffhub\ConnectorSdk\BaseConnector instead of implementing ConnectorInterface directly — it handles config validation and lifecycle for you.
Capabilities
A connector advertises capabilities by listing them in the manifest and implementing the matching mixin:
| Capability | Interface | Methods |
|---|---|---|
Payment |
HasChargeCapability |
createCharge, queryCharge |
Refund |
HasRefundCapability |
refund |
Settlement |
HasSettlementCapability |
fetchSettlements |
Disbursement |
HasDisbursementCapability |
disburse |
Webhook |
HasWebhookCapability |
handleWebhook |
Provisioning |
HasProvisioningCapability |
provision |
The platform discovers a connector's capabilities by instanceof checks against these interfaces, so the manifest and the implementation must agree.
Spec versioning
The specVersion field on ConnectorManifest declares which version of MPS the connector targets. This package's tagged version is the spec version — pin it explicitly:
Breaking changes to interfaces or DTOs ship in a new major version.
License
MIT. See LICENSE.