Ticke Developers

Official resources for integrating Ticke programmatically or enabling an AI agent to work with Ticke data. The API is REST/JSON over HTTPS and is described with OpenAPI 3.1.

Key resources

Environments

EnvironmentBase URL
Productionhttps://api.ticke.es

Need a test environment to integrate without tax-filing risk? Email [email protected]. Integration credentials or API keys for teams can also be requested at that address.

Quickstart

JWT Bearer authentication. Get tokens with your credentials and send them with each request:

# 1. Log in → accessToken + refreshToken
curl -X POST https://api.ticke.es/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "[email protected]", "password": "••••"}'

# 2. Authenticated request
curl https://api.ticke.es/api/invoices \
  -H "Authorization: Bearer <accessToken>"

# 3. Refresh an expired access token (30 minutes)
curl -X POST https://api.ticke.es/api/auth/refresh \
  -H "Content-Type: application/json" \
  -d '{"refreshToken": "<refreshToken>"}'

Login response:

{
  "accessToken": "eyJhbGciOi...",
  "refreshToken": "b7d6f1..."
}

Structured JSON errors

Every error returns JSON with a stable errorCode, a readable message and a suggested fix in resolution. The API does not return HTML error pages.

{
  "timestamp": "2026-08-22T10:30:00",
  "status": 404,
  "errorCode": "CLIENT_NOT_FOUND",
  "error": "Not Found",
  "message": "Client not found",
  "path": "/api/clients/123",
  "resolution": "Verify the client id belongs to your business via GET /api/clients"
}

Rate limits

Rate-limited responses include the RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers so your client can adjust its request rate. When the quota is exhausted, the API returns 429 with Retry-After in seconds:

HTTP/1.1 429 Too Many Requests
Retry-After: 42
RateLimit-Limit: 60
RateLimit-Remaining: 0
RateLimit-Reset: 42

{"errorCode": "RATE_LIMIT_EXCEEDED", "message": "Too many requests", "status": 429, "path": "/api/invoices", "resolution": "Wait for Retry-After seconds, then retry with a lower request rate."}

Default limits: 5 requests per minute per IP for login and 60 requests per minute per authenticated user. These headers are issued by api.ticke.es. The Ticke website (ticke.es) advertises a high informational quota without enforcement; only the backend returns 429 with Retry-After.

Versioning and deprecations

V1 does not use URL or header versioning: all clients integrate with the current version described in OpenAPI. Breaking changes will be announced here with at least six months for migration. Deprecated operations will be marked with Sunset and Deprecation headers and a schedule in their spec description. Watch for those headers; you do not need to pin a version.

CLI and automation

There is no official CLI yet; it is on the roadmap. For now, everything can be scripted with curl and the /openapi.json specification: operationIds are stable and suitable for generating clients or function calling.

For AI agents

If you are an agent, the product summary and when to use Ticke are in /en/llms.txt, with the full content in /en/llms-full.txt. Every public page is available as Markdown using Accept: text/markdown. The /openapi.json specification defines operationIds and schemas ready for function calling.

Ticke serves businesses operating in Spain. Legal documents are available in Spanish.

Ticke Developers · API, OpenAPI and resources for AI agents