API Documentation
API Documentation
La API de 64bis.eus permite integrar funcionalidades de financiación I+D+i en tus aplicaciones. Acceso programático a proyectos, ofertas, pagos y marketplace.
Visión General
Base URL: https://64bis.eus/api
Arquitectura:
- 455 endpoints REST
- Autenticación con AWS Cognito (JWT)
- Rate limiting por endpoint
- CORS configurado para producción
- Todas las respuestas en JSON
Características clave:
- Acceso a datos de proyectos I+D+i
- Gestión de ofertas y negociaciones
- Procesamiento de pagos con Stripe
- AutoMatch inteligente con IA
- Sistema de notificaciones en tiempo real
Autenticación
Todos los endpoints (excepto /api/status y /api/health/*) requieren autenticación mediante JWT de AWS Cognito.
Obtener Token
- Registro/Login via AWS Cognito
- Obtener
idTokende Cognito - Incluir token en header
Authorization
Headers Requeridos
Authorization: Bearer <cognito-jwt-token>
Content-Type: application/json
Ejemplo de Petición
const response = await fetch('https://64bis.eus/api/projects/companies', {
method: 'GET',
headers: {
'Authorization': 'Bearer eyJraWQiOiJ...',
'Content-Type': 'application/json'
}
});
const data = await response.json();
Frontend (React)
Usa el hook useCognitoFetch para peticiones autenticadas:
import { useCognitoFetch } from '@/hooks/useCognitoFetch';
const { cognitoFetch } = useCognitoFetch();
const response = await cognitoFetch('/api/projects/companies', {
method: 'GET'
});
Rate Limiting
Límites por defecto:
- 100 peticiones/minuto para endpoints de lectura
- 20 peticiones/minuto para endpoints de escritura
- 5 peticiones/minuto para endpoints administrativos
Headers de respuesta:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640000000
Error 429 (Too Many Requests):
{
"error": "Rate limit exceeded",
"retryAfter": 60
}
Formatos de Respuesta
Éxito (200/201)
{
"success": true,
"data": {
// Datos del recurso
}
}
Error (4xx/5xx)
{
"error": "Mensaje descriptivo del error",
"code": "ERROR_CODE",
"details": {
// Información adicional (opcional)
}
}
Códigos de Estado Comunes
| Código | Significado |
|---|---|
| 200 | OK - Petición exitosa |
| 201 | Created - Recurso creado |
| 400 | Bad Request - Validación fallida |
| 401 | Unauthorized - Token inválido/ausente |
| 403 | Forbidden - Sin permisos |
| 404 | Not Found - Recurso no existe |
| 429 | Too Many Requests - Rate limit excedido |
| 500 | Internal Server Error - Error del servidor |
Paginación
Los endpoints que retornan listas admiten paginación:
Query Parameters
?page=1&limit=20
Respuesta Paginada
{
"success": true,
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8
}
}
Categorías de Endpoints
Autenticación
Registro, login, gestión de usuarios. Ver documentación →
Proyectos
Crear, editar, buscar proyectos I+D+i. Ver documentación →
Ofertas
Sistema de ofertas y negociaciones. Ver documentación →
Pagos
Pagos con Stripe, reservas, liberaciones. Ver documentación →
Marketplace
AutoMatch, filtros, búsqueda inteligente. Ver documentación →
Administración
Endpoints para administradores y consultores. Ver documentación →
Seguridad
Validación de Entrada
Todos los endpoints usan Zod schemas para validación:
import { z } from 'zod';
const CreateProjectSchema = z.object({
title: z.string().min(5).max(200),
amount: z.number().positive(),
type: z.enum(['ID', 'IT', 'INNOVACION'])
});
Protección CSRF
Headers CORS configurados para producción:
Access-Control-Allow-Origin: https://64bis.eus
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Authorization, Content-Type
Audit Logging
Todas las operaciones financieras se registran en audit logs:
- Usuario que ejecutó la acción
- Timestamp
- Endpoint
- Payload (sanitizado)
- Resultado
Webhooks
64bis.eus emite webhooks para eventos críticos:
Eventos Disponibles
| Evento | Descripción |
|---|---|
project.created | Proyecto nuevo creado |
offer.received | Nueva oferta recibida |
payment.completed | Pago procesado exitosamente |
contract.signed | Contrato firmado |
Configurar Webhook
Contacta con el equipo de 64bis.eus para configurar tu webhook endpoint.
Payload de Webhook
{
"event": "project.created",
"timestamp": "2025-12-01T10:30:00Z",
"data": {
"projectId": "proj_123",
"companyId": "comp_456"
}
}
SDKs y Ejemplos
TypeScript/Node.js
import { CognitoIdentityProviderClient } from '@aws-sdk/client-cognito-identity-provider';
// Cliente de ejemplo (próximamente SDK oficial)
class BisApiClient {
constructor(private idToken: string) {}
async getProjects() {
const response = await fetch('https://64bis.eus/api/projects/companies', {
headers: {
'Authorization': `Bearer ${this.idToken}`,
'Content-Type': 'application/json'
}
});
return response.json();
}
}
Python
import requests
class BisApiClient:
def __init__(self, id_token):
self.id_token = id_token
self.base_url = "https://64bis.eus/api"
def get_projects(self):
headers = {
"Authorization": f"Bearer {self.id_token}",
"Content-Type": "application/json"
}
response = requests.get(f"{self.base_url}/projects/companies", headers=headers)
return response.json()
Soporte
Documentación Técnica
Contacto
- Email: api@64bis.eus
- Slack: 64bis Developers
- Issues: Reporta bugs en nuestro sistema de soporte
Última actualización: 3 enero 2026 | Tiempo de lectura: 8 minutos
Explorar Endpoints por Categoría
Autenticación
Registro, login, gestión de usuarios
15 endpoints →Proyectos
CRUD de proyectos I+D+i
45 endpoints →Ofertas
Sistema de ofertas y negociaciones
12 endpoints →Pagos
Procesamiento con Stripe
8 endpoints →Marketplace
AutoMatch y búsqueda inteligente
18 endpoints →Administración
Endpoints administrativos
53 endpoints →¿Te ayudó esta página?