Skip to content

Tasks

Follow-up to-dos for the team, optionally linked to a quote.

What the API offers

The Tasks API has a single method: POST /api/v1/tareas, to create a task. There are no endpoints to list, edit, complete, or delete tasks through the API; that’s done from the app. To learn about changes, listen to the task.created and task.completed events with webhooks or read them from the event history.

Creating a Task

POST /api/v1/tareas creates a task in the team’s inbox. Requires a key with write permission (for a restricted key, write on the tareas resource) and accepts Idempotency-Key.

Field Required Detail
titulo Yes Task text. The first 200 characters are stored; the rest is dropped without an error.
due_date No Due date formatted as YYYY-MM-DD.
cotizacion_id No UUID of a quote from your organization to link the task to.
factura_id No UUID of an invoice from your organization (the id from /api/v1/facturas) to link the task to. It can go together with cotizacion_id.

Any other field in the body (for example asignado_a, prioridad, or notas) is ignored without an error: assignee, priority, and notes can’t be set through the API.

curl -X POST "https://cordhq.app/api/v1/tareas" \
     -H "Authorization: Bearer sk_live_tU..." \
     -H "Content-Type: application/json" \
     -H "Idempotency-Key: follow-up-cot-00104" \
     -d '{
       "titulo": "Call Stark Industries about COT-00104",
       "due_date": "2026-09-20",
       "cotizacion_id": "2a9d8e4f-6b1c-4d7a-9e3f-5c8b1a2d4e6f"
     }'
{ "data": { "id": "7c1e0b4a-3f2d-4e8c-9a6b-5d1f0e2c3b4a" } }

The task is created unassigned with normal priority. In the app, its assignee, priority, and notes are set from Tasks; while it has no assignee, the morning email reminder goes to the account owner.

With a test key (sk_test_) the task is created in test mode, which doesn’t send reminders.

Every new task emits the task.created event, with cotizacion_id and factura_id (or null). Tasks Cord creates on its own (chargeback and SPEI refund) emit it too. When someone marks it done in the app, task.completed is emitted.

Possible errors

Code When
invalid_request (400) titulo is missing (or empty), or due_date isn’t a real date formatted as YYYY-MM-DD (for example, 2026-02-30 is rejected).
not_found (404) cotizacion_id or factura_id isn’t a UUID, or isn’t a quote or invoice from your organization. The message is in your account’s language.
invalid_json (400) The body isn’t valid JSON.
insufficient_scope / insufficient_permissions (403) The key is read-only, or it’s a restricted key without write on tareas.

The rest of the common codes are in Error Handling.