Capture points API

The public endpoint that turns a submission from another platform into contact + consent. Exact contract, fields, responses, the August 2026 change and which contact level each submission creates.

View .md Updated 2026-08-26
On this page

A capture point exposes a public platform-to-platform endpoint (Zapier, Make, your backend) that turns a submission into contact + consent, with its source recorded and, if you wire one up, a welcome automation.

Points are created and managed in the app, under «Captación → API» (capture → API). Each point’s exact URL is on its own row.

The endpoint

POST https://app.konverda.com/webhooks/capture/<token-del-punto>
Content-Type: application/json

application/json is recommended; application/x-www-form-urlencoded is also accepted. The response is ALWAYS JSON.

Trying it with curl

curl -X POST 'https://app.konverda.com/webhooks/capture/<token-del-punto>' \
  -H 'Content-Type: application/json' \
  -d '{ "phone": "+34612345678", "name": "Ana Pérez", "consent": true }'

Responses

CodeBodyMeaning
200{"ok":true}Recorded — or received without a phone (counted, no contact created) — or a bot silently filtered out (_hp filled in). A bot gets the same 200 on purpose: a rejection would teach it which field gave it away.
400{"error":"bad_payload","message":"…"}The body could not be read or is not an object with fields (invalid JSON, text/plain, an empty {}).
403{"error":"verification_failed"}Turnstile not verified (the point requires it and the token does not validate).
404{"error":"not_found"}Unknown token, or deactivated point.
422{"error":"consent_required","message":"…"}The payload does not state consent (consent absent or not affirmative). The message explains in one sentence what is missing.
422{"error":"invalid_phone"}phone present but unrecognisable. (Absent is NOT an error: see fields.)
429{"error":"rate_limited"}More than 10 submissions per minute per IP and point.

Every refusal (400, 403, 422) is counted in the point’s analytics with its reason — «Rechazados en la puerta» — so a misconfigured integration shows in the funnel and not only in this error code.

A contact has TWO possible levels. «Marketing» = they can receive campaigns, waves, proactive automations and 1

templates. «No» = we can only reply to them when they write, and no message started by us reaches them (the attempt is logged as not_marketing).

Here the level is not decided by your payload alone: it is decided by the point’s configuration («Consentimiento explícito» — explicit consent, on the point’s row) combined with the consent you send.

Point configurationBasis recordedResulting opt-inWhat they can receive
«Consentimiento explícito» ON + affirmative consentcheckbox«Marketing»Everything: campaigns, waves, the welcome automation and 1
templates. Being an explicit act by the person themselves, it lifts a previous opt-out.
«Consentimiento explícito» OFF + affirmative consentform«No»Only replies when the person writes. This point’s welcome automation is NOT sent (it is logged as not_marketing). A previous opt-out is always respected.
consent absent or false, with phone— (not processed)No contact created422 consent_required.
No phone—No contact created200: the submission counts as «sin teléfono» in the point’s analytics.

A contact at level «No» is not a lost contact

The moment they write to you, the conversation opens and you can reply. That is where keywords come in: a word the person types is a door they open themselves, so it works at any consent level. If you capture leads through this endpoint, give them a word to write.

Still stuck? Contact support