Developer

Documentación de la API

Acceso programático a los datos de tu LLC. URL base: https://devil.club/api/v1

Gestionar tus API Keys

La API requiere al menos una LLC con suscripción Manager activa. Sin Manager, los endpoints no devolverán datos.

Autenticación

Todas las peticiones a la API requieren una API key enviada en el header Authorization como Bearer token.

# Cada petición debe incluir este header Authorization: Bearer dc_live_a1b2c3d4e5f6... # Ejemplo con curl curl -H "Authorization: Bearer dc_live_TU_KEY" \ https://devil.club/api/v1/entity

Crea y gestiona tus API keys en /api-keys. Cada key tiene scopes específicos que controlan a qué puede acceder.

Límite de peticiones

Por defecto: 100 peticiones por hora por API key. Si se excede, recibirás una respuesta 429 con un header Retry-After.

IP Whitelisting

Opcionalmente puedes restringir tu API key a direcciones IP específicas. Si está configurado, las peticiones desde otras IPs recibirán una respuesta 403 que incluye tu IP actual.

Scopes de Permisos

Selecciona solo los scopes necesarios para cada clave. Principio de mínimo privilegio.

Scope Acceso Sección
read:bookkeepingLecturaBookkeeping
write:bookkeepingEscrituraBookkeeping
read:ledgerLecturaLedger de Gobernanza
write:ledgerEscrituraLedger de Gobernanza
read:documentsLecturaDocumentos
read:entityLecturaEntidad (LLC)
write:entityEscrituraEntidad (LLC)
read:profileLecturaPerfil
write:profileEscrituraPerfil
read:reportsLecturaLucy — Informes
write:reportsEscrituraLucy — Informes
read:paymentsLecturaPagos
read:presenceLecturaPresencia Fiscal

Bookkeeping

GET /v1/bookkeeping read:bookkeeping

Lista las entradas de bookkeeping de una entidad. Incluye ingresos, gastos y totales resumidos.

ParámetroTipoDescripción
entity_id obligatoriointegerID de la entidad LLC
yearintegerFiltrar por año
monthintegerFiltrar por mes (1-12)
categorystringFiltrar por categoría
limitintegerMáx. resultados (por defecto 100, máx. 500)
offsetintegerOffset de paginación
# Obtener bookkeeping de 2026 para la entidad 42 curl -H "Authorization: Bearer dc_live_..." \ "https://devil.club/api/v1/bookkeeping?entity_id=42&year=2026" # Respuesta { "data": [ { "id": 1, "year": 2026, "month": 3, "category": "SaaS Revenue", "income": 5000.00, "expense": 0, "bank_source": "Mercury", ... } ], "summary": { "total_income": 45000, "total_expenses": 12000, "net": 33000 }, "pagination": { "total": 87, "limit": 100, "offset": 0 } }
POST /v1/bookkeeping write:bookkeeping

Añade una nueva entrada de bookkeeping. Las entradas añadidas vía API se etiquetan con source: "api".

CampoTipoDescripción
entity_id obligatoriointegerID de la entidad LLC
year obligatoriointegerAño
month obligatoriointegerMes (1-12)
incomenumberImporte de ingreso (por defecto 0)
expensenumberImporte de gasto (por defecto 0)
categorystringCategoría del gasto/ingreso
descriptionstringDescripción
transaction_datedateFecha exacta (YYYY-MM-DD)
bank_sourcestringMercury, Stripe, Wise, manual
external_tx_idstringReferencia de transacción externa

Ledger de Gobernanza

GET /v1/ledger read:ledger

Lista las transacciones de gobernanza/gestión. Incluye estado de decisiones, decisiones estratégicas y resoluciones del manager.

ParámetroTipoDescripción
entity_idintegerID de la entidad LLC (obligatorio si no se indica transaction_id)
transaction_idstringTransacción específica (ej: FGSL-2026-00042)
statusstringFiltrar: PENDING, RATIFIED, VETOED, REJECTED
POST /v1/ledger write:ledger

Envía una nueva solicitud de transacción para revisión del Manager. Crea una entrada PENDING en el ledger de gobernanza.

CampoTipoDescripción
entity_id obligatoriointegerID de la entidad LLC
amount obligatorionumberImporte de la transacción
category obligatoriostringOPEX, CAPITAL_CONTRIBUTION, OWNER_DISTRIBUTION, etc.
descriptionstringMotivo de la transacción
strategic_decisionstringJustificación estratégica
bankstringBanco desde el que ejecutar
exec_datedateFecha de ejecución solicitada
recurringstringno, monthly, quarterly, annual

Documentos

GET /v1/documents read:documents

Lista los documentos de una entidad. Incluye articles, EIN letters, actas, tax filings y más. Cada documento incluye hash SHA-256 y estado de verificación OpenTimestamps.

ParámetroTipoDescripción
entity_idintegerID de la entidad LLC (obligatorio si no se indica id)
idintegerID de documento específico
doc_typestringFiltrar: ARTICLES, EIN_LETTER, ACTA, 8822-B, etc.

Entidad (LLC)

GET /v1/entity read:entity

Lista tus LLCs u obtén información detallada (servicios, tax filings, titularidad).

ParámetroTipoDescripción
idintegerID de entidad específica (omitir para listar todas)
PUT /v1/entity write:entity

Actualiza información de contacto/formación de la entidad.

CampoTipoDescripción
id obligatoriointegerID de la entidad
founder_namestringNombre del fundador/organizador
founder_addressstringDirección del fundador
founder_countrystringPaís del fundador
naicsstringCódigo NAICS del negocio

Perfil

GET /v1/profile read:profile

Obtén tu perfil de cuenta e identificadores (pasaporte, ITIN, etc.).

PUT /v1/profile write:profile

Actualiza tu información de contacto (nombre, teléfono, país).

Lucy — Informes y Propuestas

GET /v1/reports read:reports

Lista los informes generados por Lucy (mensuales, trimestrales, anuales). Incluye métricas, recomendaciones, alertas y decisiones propuestas.

POST /v1/reports write:reports

Responde a las recomendaciones de un reporte. Puedes aprobar, rechazar, modificar o aplazar cada recomendación.

# Aprobar recomendación #0, rechazar #1 curl -X POST -H "Authorization: Bearer dc_live_..." \ -H "Content-Type: application/json" \ -d '{ "report_id": 15, "decisions": [ {"recommendation_idx": 0, "decision": "APPROVED", "client_notes": "Adelante"}, {"recommendation_idx": 1, "decision": "REJECTED", "client_notes": "Ahora no"} ] }' \ https://devil.club/api/v1/reports

Pagos

GET /v1/payments read:payments

Consulta tu historial de pagos. Incluye detalles del servicio, importes y estado.

ParámetroTipoDescripción
entity_idintegerFiltrar por entidad
yearintegerFiltrar por año

Presencia Fiscal

GET /v1/presence read:presence

Consulta el registro de presencia fiscal geo-trazada. Devuelve días acumulados por país (con gap-fill automático), alertas de umbral 183 días y, opcionalmente, el calendario día a día.

ParámetroTipoDescripción
entity_idintegerRequerido. ID de la entidad
yearintegerAño fiscal (por defecto: año actual)
detailbooleanSi true, incluye el mapa día a día en calendar

Respuesta incluye summary (países + días), warnings (niveles: info / warning / danger / exceeded) y opcionalmente calendar (mapa YYYY-MM-DD → país).

Manejo de errores

Todos los errores siguen un formato consistente:

{ "error": "Descripción de lo que falló" }
CódigoSignificado
400Petición incorrecta — parámetros faltantes o inválidos
401No autorizado — API key inválida o no proporcionada
403Prohibido — IP no autorizada, scope insuficiente o sin titularidad
404No encontrado — el recurso no existe o no te pertenece
429Límite excedido — demasiadas peticiones, consulta el header Retry-After
500Error del servidor — contacta con soporte

¿Necesitas ayuda? [email protected]