# Peyeli evaluation integration kit

Edition 1.2 — selected payment contracts, synthetic-only execution.

Requires Node 22.18+; no installation, dependency, account or API key. Download all four `.mjs` files into the same folder. Run `node example.mjs` for the in-process scenario. To use HTTP/Postman, run `node server.mjs`, import `partner-postman.json` and run requests in collection order. The server binds only `127.0.0.1:3061`. Stop with Ctrl+C; all state disappears. Do not expose or tunnel it. Use synthetic data only.

The JavaScript SDK (`sdk.mjs`) implements create, list, detail, start attempt and cancel. Import `createEvaluationClient`; default transport calls the local server. Pass `{ request: createSandbox() }` for in-process use. Five-second timeout, no automatic retry, explicit mutation keys, no cookies, no redirects, no remote base URL. Read errors through `.code`, `.status`, `.requestId`. SDK is an evaluation artifact, not a production-supported client, package registry release or compatibility guarantee. No TypeScript/Python/Java SDK is supplied.

Fixed fixtures: `org_synthetic`, `asset_synthetic_htg`, `connection_synthetic`. Amounts remain positive integer minor-unit strings, including values above JavaScript's exact-number range. Create expiry defaults to 30 minutes; null is equivalent to omission. Replay with the same key and canonical JSON returns the same response; changed body returns 409. Keys are scoped to the simulated operation; no authenticated actor exists in this mock.

Attempts remain `processing`; there is no fabricated provider confirmation, receipt or settled balance. Cancel an untouched intent successfully. Cancel after attempt submission receives `invalid_transition`. Restart to reset. Capacity: 1000 intents, request body 16 KiB, single process and in-memory state. No DB, auth, tenant security test, provider execution, settlement, webhooks, refund, ledger mutation, recovery queue, durable idempotency or production capacity measurement is simulated. Synthetic list date filters use UTC; production uses America/Port-au-Prince and its separately documented confirmation predicate. This simulator does not certify equivalence to the production service.

`partner-openapi.json` is OpenAPI 3.1, executable against this loopback simulator. Its selected request/response schemas derive from the source-reviewed application shape snapshot. There are five operations, not a full platform catalog. The application uses separately authorized verified cookie sessions and membership checks; the simulator uses no authentication and cannot validate those controls. No live Peyeli server URL, token flow, partner API key, OAuth grant or provider credential is supplied.

Postman uses collection variables for synthetic identifiers, fresh keys, chained intent IDs and loopback-only URLs. Create / replay / detail / attempt / cancellation rejection / list / second create / clean cancellation are provided. Requests and scripts contact only the local server. Do not replace variables with real identifiers, customer data or credentials. Postman's own client behavior and data-sync settings are outside this kit; an offline local client is sufficient.

Public artifact review and provider-hosted sandbox acceptance are different decisions. This kit grants no account, partner authorization, provider access, financial approval, service level or right to publish restricted evidence. Request a scoped reviewed environment separately.

Français : kit d’évaluation synthétique, pas d’API partenaire de production. Node 22.18+, aucune installation ni clé. Exécuter `node example.mjs`, ou `node server.mjs` puis importer la collection Postman. Serveur limité à 127.0.0.1:3061, état en mémoire, aucun fournisseur ni fonds réels. Les tentatives restent en traitement ; aucune confirmation ou preuve de règlement inventée. Utiliser uniquement les identifiants et données synthétiques. Les accès réels, contrats, audits et validations fournisseurs sont distincts.
