Saltar al contenido

Referencia de la API

Todos los endpoints, objetos, campos, estados, eventos y errores de la API v1 de Krows.

14 min de lectura6 capítulosPara foundersAvanzadoActualizada el 17 oct 2026

Capítulo 1Ronda

GET/v1/round

Tu ronda en el modo de la clave: estado (not_started, open, succeeded, failed, in_referendum, closed), objetivo, recaudado, porcentaje, inversores, tokens, precio, fechas, dirección del contrato y red.

{
  "object": "round",
  "mode": "live",
  "startup": { "name": "Aurora Solar", "slug": "aurora-solar" },
  "status": "open",
  "goal": 120000,
  "raised": 46800,
  "currency": "USDC",
  "percent_raised": 39,
  "investors": 90,
  "tokens": 120000,
  "token_price": 1,
  "start": "2026-10-03T00:00:00.000Z",
  "end": "2027-01-15T00:00:00.000Z",
  "contract": "9fQk…",
  "network": "mainnet"
}

Capítulo 2Inversiones

GET/v1/investments

Lista de inversiones, de la más reciente a la más antigua. limit y starting_after. No incluye las pendientes ni las fallidas.

GET/v1/investments/:id

Una inversión.

Estados: confirmed, claimed (tokens entregados), refunded, withdrawn. El inversor solo aparece con su alias y su wallet: nunca su email.

{
  "object": "investment",
  "id": "inv_…",
  "mode": "live",
  "status": "confirmed",
  "amount": 250,
  "currency": "USDC",
  "tokens": 250,
  "investor": { "alias": "ana_investor", "wallet": "7xKX…gAsU" },
  "checkout_session": "cs_live_8Kd2…",
  "reference": "order-1234",
  "metadata": { "campaign": "autumn" },
  "transaction": "5hTq…",
  "created": "2026-10-17T10:03:12.000Z"
}

Capítulo 3Sesiones de checkout

POST/v1/checkout/sessions

Crea una sesión. Ver campos abajo. Admite Idempotency-Key. Responde 201.

CampoDescripción
amountnúmero, opcionalImporte fijo en USDC (mínimo 1, hasta 2 decimales, no más que el objetivo). El inversor no puede cambiarlo.
suggested_amountnúmero, opcionalImporte propuesto que el inversor puede cambiar. Usa uno u otro, no los dos.
emailtexto, opcionalRellena el email del inversor en la página.
referencetexto, opcionalTu identificador (pedido, usuario…), hasta 200 caracteres. Vuelve en la inversión y en los webhooks.
metadataobjeto, opcionalHasta 20 claves y 2.000 caracteres. Vuelve tal cual, sin traducir.
success_urlURL, opcionalAdónde va el inversor al terminar. Añadimos sesion e inversion como parámetros.
cancel_urlURL, opcionalBotón «Volver» si la sesión ha caducado o ya se pagó.
Idempotency-Keycabecera, recomendadaHasta 100 caracteres. Repetir la petición con la misma clave devuelve la misma sesión.
GET/v1/checkout/sessions/:id

Estado de una sesión: open, complete o expired.

POST/v1/checkout/sessions/:id/expire

Cierra una sesión abierta. 409 si ya no lo está.

{
  "object": "checkout.session",
  "id": "cs_live_8Kd2…",
  "mode": "live",
  "status": "open",
  "url": "https://checkout.krows.app/aurora-solar?s=cs_live_8Kd2…",
  "amount": 250,
  "amount_fixed": true,
  "email": "investor@email.com",
  "reference": "order-1234",
  "metadata": { "campaign": "autumn" },
  "success_url": "https://yoursite.com/thanks",
  "cancel_url": "https://yoursite.com/invest",
  "investment": null,
  "created": "2026-10-17T10:00:00.000Z",
  "expires_at": "2026-10-18T10:00:00.000Z",
  "completed_at": null
}

Capítulo 4Eventos

GET/v1/events

Historial de eventos. type filtra por tipo; limit y starting_after paginan.

GET/v1/events/:id

Un evento.

{
  "id": "evt_Qm3x…",
  "object": "event",
  "type": "investment.confirmed",
  "mode": "live",
  "created": "2026-10-17T10:03:13.000Z",
  "data": {
    "object": "investment",
    "id": "inv_…",
    "status": "confirmed",
    "amount": 250,
    "currency": "USDC",
    "tokens": 250,
    "investor": { "alias": "ana_investor", "wallet": "7xKX…gAsU" },
    "reference": "order-1234",
    "metadata": { "campaign": "autumn" },
    "transaction": "5hTq…"
  }
}
EventoCuándo
investment.confirmedAlguien ha invertido
investment.withdrawnUn inversor retira su inversión
checkout.session.completedSe completa una sesión creada por API
round.succeededLa ronda llega al 100 %
round.failedLa ronda no llega o se cancela
tokens.deliveredUn inversor recibe sus tokens
refund.completedSe devuelve el USDC a un inversor
milestone.requestedPides liberar un hito y se abre la votación
milestone.approvedLos inversores aprueban un hito y se libera el dinero
milestone.rejectedLos inversores rechazan un hito
report.deliveredEntregas un informe
referendum.openedSe abre una votación para cerrar la startup
referendum.closedTermina la votación de cierre
free_withdrawal.requestedPides una retirada libre y empieza el plazo de veto
free_withdrawal.paidNadie la veta y el contrato te paga
free_withdrawal.vetoedLos inversores la vetan
test.pingEvento de prueba desde el panel

Capítulo 5Hitos y recompensas

GET/v1/milestones

Hitos con número, título, descripción, importe, fecha, prueba y estado (pending, voting, approved).

GET/v1/rewards

Recompensas con título, descripción, min_tokens, hito, fecha y si es física.

Capítulo 6Errores

{
  "error": {
    "type": "invalid_request_error",
    "code": "amount_invalid",
    "message": "amount must be a USDC number, at least 1, with up to 2 decimals."
  }
}
HTTP · codeSignifica
400 · invalid_jsonEl cuerpo no es JSON.
400 · amount_invalid / amount_too_largeImporte no válido o mayor que el objetivo.
400 · email_invalid / url_invalid / metadata_invalidCampo con formato incorrecto.
401 · api_key_missing / api_key_invalidFalta la clave, está mal formada o se ha regenerado.
404 · resource_missing / route_missing / startup_missingNo existe.
409 · session_not_openLa sesión ya se completó o caducó.
429 · rate_limitMás de 100 peticiones por minuto.
500 · internal_errorError nuestro. Reintenta con la misma Idempotency-Key.
¿Te ha ayudado?