- Submit SPV creation requests with structured contract attributes.
- Bulk-onboard partner-managed investors.
- Record subscriptions, upload signed forms, and post wire-transfer receipts.
- Receive lifecycle events via signed webhooks.
Who this is for
Partners that operate their own client-facing investor portal but want Zest to handle SPV vehicle setup, fund admin, and regulatory compliance.Architecture at a glance
1
Authenticate
Exchange a partner-signed JWT for a short-lived bearer access token via OAuth 2.0 JWT-Bearer assertion grant. See Authentication.
2
Submit an SPV request
POST a contract-validated payload to
/v1/spv-requests. Zest admins review and approve; on approval the SPV is materialised (Opportunity, Vehicle, SP, SPC). See SPV Requests.3
Onboard investors
Bulk-create investor records, with partial-success semantics — bad rows do not fail the batch. See Investors.
4
Record subscriptions
Create subscriptions for an SPV, then upload the signed subscription form, then the wire-transfer receipt. Strict ordering. See Subscriptions.
5
Receive webhooks
Subscribe to nine lifecycle event types delivered with HMAC-SHA256 signed envelopes. See Webhooks.
Conventions
- Wire format: All request and response bodies use JSON with camelCase field names.
- Authentication: Bearer access token in the
Authorizationheader, refreshed via JWT-Bearer assertion. - Idempotency: All write endpoints accept an
Idempotency-Keyheader (required onPOST /v1/spv-requests, optional elsewhere). See Idempotency. - Errors: Uniform envelope with a top-level
code, machine-readablevalidationErrors[], and a UUIDerrorIdfor support correlation. See Errors. - Versioning: All resource paths are prefixed with
/v1. We never change the wire shape of av1endpoint; additive changes only.
Base URLs
Get help
- Email: sara@zestholdco.com