Ir al contenido

Confirmar una solicitud de inscripción enviada en tu nombre (enlace del correo)

POST
/v1/enroll/confirm
curl --request POST \
--url https://api.vimine.network/v1/enroll/confirm \
--header 'Content-Type: application/json' \
--data '{ "token": "example", "identification": { "dob": "2026-04-15", "birthplace": "example", "birth_country": "example", "codicefiscale": "example", "codicefiscale_confirmed": true }, "address": { "kind": "residence", "line": "example", "postal_code": "example", "city": "example", "province": "example", "country": "IT" } }'

Consume el token que lleva el enlace de confirmación y crea la solicitud de inscripción pendiente. Idempotente ante repeticiones: usar el enlace dos veces solo devuelve el estado actual.

Tipo de medioapplication/json
object
token
obligatorio
string
identification

Solo después de un 409 identification_required: lo que todavía le falta a la cuenta — un código fiscal, o la fecha, el lugar y el país de nacimiento. Completa los campos VACÍOS del perfil, nunca sobrescribe lo que ya hay

object
dob
string formato: date
birthplace
string
<= 150 caracteres
birth_country
string
>= 2 caracteres <= 2 caracteres
codicefiscale
string
<= 16 caracteres
codicefiscale_confirmed
boolean
address

Solo después de un 409 address_required: la asociación pide una dirección a todos sus socios (member_address: required en su perfil público). Opcional donde ha declarado optional; se ignora donde no recoge ninguna

object
kind
string
por defecto: residence
Valores permitidos: residence domicile
line
obligatorio

Calle y número

string
<= 150 caracteres
postal_code
string
nullable <= 12 caracteres
city
obligatorio
string
<= 150 caracteres
province

Solo direcciones italianas (dos letras); se descarta para las del extranjero

string
nullable <= 2 caracteres
country

ISO 3166-1 alpha-2

string
por defecto: IT >= 2 caracteres <= 2 caracteres

La solicitud de inscripción en la asociación

Tipo de medioapplication/json
object
status
obligatorio
string
Valores permitidos: pending active suspended revoked rejected
already
obligatorio

La persona ya tenía aquí una solicitud de inscripción o una inscripción

boolean
pending_reasons

Por qué la inscripción sigue pendiente, en orden: primero la aprobación de la asociación (cuando admite por decisión de su junta directiva), luego la cuota. Vacío cuando está activa

Array<string>
Valores permitidos: approval payment
payment_open

¿Se puede pagar ya la cuota? Es false mientras la aprobación está pendiente: la aprobación abre el pago

boolean
valid_from

Cuándo se podrá usar el carné, para una inscripción activa dentro del intervalo de la asociación; null en los demás casos

string formato: date-time
nullable
association
obligatorio
object
name
string
slug
string
event

Solo para un enlace enviado por la página de inscripción alojada de la asociación cuando esa página se abrió desde uno de sus eventos públicos: qué ha pasado con la plaza que la persona pidió junto con la solicitud. null para cualquier otro enlace

object
slug
string
title
string
starts_at
string formato: date-time
timezone
string
place
string
nullable
registration_type
object
uid
string formato: uuid
name
string
amount

0 = gratuito

number
currency
string
state

confirmed: la plaza es suya. reserved: retenida, consulta waiting. held: la propia solicitud de inscripción todavía espera a que se confirme la dirección, y no se ha pedido ninguna plaza. unavailable: ninguna plaza, consulta reasons

string
Valores permitidos: confirmed reserved held unavailable
waiting

Lo que espera una plaza reserved: que la inscripción se active (entonces se confirma sola, si es gratuita), la contribución, o ambas cosas

Array<string>
Valores permitidos: membership contribution
reasons

Por qué la plaza está unavailable: los motivos de GET /v1/events/{slug}/eligibility

Array<string>
reserved_until
string formato: date-time
nullable
payment_instructions

Cómo pagar una contribución pendiente, con las palabras de la asociación

string
nullable
already

La persona ya tenía retenida esta plaza antes de que se usara el enlace

boolean
Ejemplo
{
"status": "pending",
"pending_reasons": [
"approval"
],
"event": {
"state": "confirmed",
"waiting": [
"membership"
]
}
}

El enlace no es válido o ha caducado (invalid_token)

No encontrado

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Ejemplogenerado
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

El estatuto ha cambiado desde que se envió el enlace (statuto_outdated); la cuenta todavía no está identificada (identification_required, errors[] indica lo que falta): vuelve a enviar el token con identification; o la asociación pide una dirección a todos sus socios (address_required): vuelve a enviar el token con address

El bloque identification no cuadra (validation_failed)

Límite de frecuencia superado

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Ejemplogenerado
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Error interno

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Ejemplogenerado
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}