BeanzPay reusable SaaS integration guide — 21 October 2026

Partner API 1.9.0 owner identity image revision.
Start with the PDF/Word guide in documentation/, then the Arabic/English source,
OpenAPI, Postman and examples. Read OWNER_IDENTITY_UPDATE_2026-10-21.md.
Each required owner_id needs one real front identity image plus complete scalar
identity fields. JSON PATCH alone does not replace the file. No separate back
image is collected by this Partner contract. signatory_id may remain fields-only
when current application requirements say requires_upload=false.

The narrow paid application repair allows only missing required owner images,
with payment, ownership, provider binding and repair-state checks. Complete
metadata is required before file storage. Once all requirements are complete,
the same application automatically returns to local review (under_review).
Do not repeat submit, merchant/provider registration or setup invoicing.
The existing owner portal is another completion channel. An upload is a receipt,
not document approval, owner Native consent, provider approval or activation.

Runtime base reviewed: 28959793176ed4894b39ce1210b88afef60188d3.
Final candidate source/deployment evidence is supplied separately by the release
record. This generic archive is not a deployment receipt or joint financial UAT.
Historical update notes retain their original versions and evidence attribution.
Use current GET /api/partner/live/integration before enabling production features.

This pack contains no assigned account, credential, private provider metadata,
customer document or partner-specific commercial agreement. All example IDs and
webhook seeds are public synthetic fixtures; never use them on a real endpoint.
Inject keys only from a secret manager, never into the exported bundle.

43 offline Node example tests passed. PHP development tests used 8.5.9 and are
not relabeled as production PHP 8.3 validation; release runtime evidence is separate.
The 19-page Word/PDF guide was rendered and visually inspected in full.
MANIFEST.json and MANIFEST.sha256 bind every payload with SHA-256.
