Versioning policy
The API surface lives under /api/v1/partner/…, and every event envelope
carries "version": 1. v1 is stable in the additive sense below — build
your parser to tolerate additions and you will not need to touch it for a v1
change.
We may (non-breaking — your parser must tolerate)
- Add fields to any response and to webhook / poll event payloads.
- Add new event types. Your default subscription is
case.received,payment.collectedandcase.closed; other types (case.assigned,visit.completed, …) are opt-in via the Fieldproof team, and a new type is never pushed to you unless you ask for it. Note that per-casesequencecounts every event type including ones you are not subscribed to, so a new type simply widens the gaps you already tolerate. The poll API returns all types regardless of subscription — skip unknowntypevalues there rather than failing. - Add values to enumerations (visit
outcome, paymentmode, closereason, casestatus). Treat an unrecognised value as "other" and keep processing; never make a payment booking depend on recognising the mode. - Add new endpoints and optional request fields / query parameters.
- Add response headers.
We will not (in v1)
- Remove or rename an existing field, header, endpoint or error code.
- Change a field's type or meaning (
amountstays incremental whole rupees;totalCollectedandoutstandingAfterstay absolute;sequencestays per-case starting at 1). - Change the signing scheme (
METHOD\nPATH\nTIMESTAMP\nRAW_BODY, HMAC in lowercase hex, unix-millisecond timestamp), the event envelope shape, or the error envelope{ success: false, error: { code, message } }. - Change the semantics of an existing error code.
Compatibility aliases
The pre-rebrand names keep working alongside the current ones:
| Current | Legacy alias |
|---|---|
X-Fieldproof-Timestamp / X-Fieldproof-Signature (requests) | X-Quikkred-Timestamp / X-Quikkred-Signature (if both are sent, the Fieldproof header wins) |
X-Fieldproof-Event / X-Fieldproof-Delivery / X-Fieldproof-Timestamp / X-Fieldproof-Signature (webhooks) | X-Quikkred-* duplicates sent on every delivery |
alpha-gig.fluxusforge.in / gig.fluxusforge.in | alpha-gig.quikkred.in / gig.quikkred.in — same keys |
New integrations should use the Fieldproof names and hosts.
Breaking changes
Anything outside the additive list ships as /api/v2/…, with v1 kept running
in parallel for a published overlap window and advance notice to your
integration contact.
The OpenAPI spec
The machine-readable spec is served by the API itself at
GET /api/v1/partner/openapi.json (a signed request, like every other
endpoint) and rendered at /api-reference.
:::note The copy on this site is maintained by hand, against behaviour
The copy rendered at /api-reference is hand-maintained to match the
running service (and was verified against it when these docs were last
revised); it is not generated from the code, so it can lag a change. Where
this documentation, the spec and the live API disagree, the live API is what
you integrate with — please tell [email protected] (with an
X-Request-Id where relevant) and we will correct the spec.
:::