MATCHi integration
MATCHi court booking events: booking created, moved, cancelled. Access: the MATCHi signature in the x-matchi-signature header.
MATCHi court booking event #
/v1/integrations/matchi/{club_id}Access: MATCHi signature Header x-matchi-signature — HMAC-SHA256 of the request body with the MATCHi event subscription secret, hex. The secret is issued by MATCHi support; the club enters it in its panel.
Subscription endpoint of club club_id for MATCHi events (Matchi Event Portal). The body is the MATCHi envelope {id, detail-type, timestamp, detail}. BookingCreated, BookingMoved and BookingCancelled V1 and V2 are accepted: a MATCHi booking creates, moves or cancels a court booking here — the court is never sold twice, recording on court starts by the booking, highlights and stats go to the players. The MATCHi court (courtId) is mapped to a club court manually in the club panel or by name; times arrive in UTC and are converted to club time; the player is a separate MATCHi player record keyed by the MATCHi customer id (the MATCHi phone is not verified and is not used to link accounts). An event with an already accepted id is not executed again (duplicate=true), so MATCHi redelivery is safe. If the link is switched off in the club panel, the response is 200 with accepted=false. outcome is a human-readable status text (in the club's language) for the integration log, not a code: branch on accepted and duplicate.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
club_id | string | yes | Club id |
Example request
curl -X POST "https://your-server/api/v1/integrations/matchi/c1"Responses
| Code | detail | Meaning |
|---|---|---|
| 200 | — | Success; example below |
| 401 | bad_signature | x-matchi-signature does not match the club subscription secret |
| 404 | not_configured | The club has no MATCHi link set up (no subscription secret) |
| 400 | bad_json | The request body is not a JSON object |
| 413 | too_large | The request body is larger than 256 KB |
| 500 | processing_failed | The event was not processed — MATCHi will retry it |
| 422 | […] | Parameter or body validation error: detail is a list of errors |
Example response
{"accepted": true, "outcome": "<status text>", "duplicate": false}