Logo Lanfrica

miki-smart/esiipayment

Domaine:

digital infrastructure

Type de record:

software
Créateur:
mik
Hôte:
This repository contains the standard definitions for the development of library or sdks for ethiopian PSPs. # ESIIPayment **A language-neutral contract for accepting payments from Ethiopian payment service providers through one uniform interface.** An integrator writes checkout code once, against six closed statuses, nine possible next-user-actions, and a handful of operations (`collect`, `sync`, `payout`, `cancel`, `refund`, `webhook`). Adding a new provider (or a new programming language) never touches that code: > **Integrator code never changes when a provider is added.** This repository is the contract itself: the domain model, the YAML manifest format that describes a provider's behaviour as data (no code, in any language), the schemas that validate it, and the test vectors/cassettes every language runtime must reproduce byte-for-byte. Language SDKs (`esiipayment-dotnet`, `esiipayment-python`, `esiipayment-node`, `esiipayment-go`, `esiipayment-php`) are separate repositories that pin this one as a submodule. ## Three roles, and where each starts This project only works if these stay separate: see spec/00-overview.md for why. | Role | Needs | Start here | |---|---|---| | **Adapter author**: describes one provider's behaviour | No programming language. YAML, a text editor, and Docker. | docs/tutorials/add-a-provider/ | | **Runtime implementer**: builds a language SDK against this spec | One programming language, zero provider-specific knowledge. | docs/tutorials/build-a-runtime/ | | **Spec contributor**: changes a schema, an enum, or the DSL itself | Familiarity with the existing `spec/` documents. | docs/tutorials/modify-the-spec/ | Using an SDK to actually accept payments (not contributing here)? See docs/use-a-provider.md. New to both roles and want a worked example before diving into the reference guides above? docs/tutorial.md walks through building one small (fictional) adapter and one minimal SDK, start to finish. ## Repository layout ``` spec/ The normative contract: domain model, invariants, manifest DSL, expression language, webhooks, con …

Languages

Licenses