Ir al contenido

Solicitar la inscripción en esta asociación

POST
/v1/me/membership
curl --request POST \
--url https://api.vimine.network/v1/me/membership \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "membership_type": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "accept_statuto": { "version": 1, "sha256": "example" }, "privacy_notice": { "version": 1, "sha256": "example", "locale": "example" }, "address": { "kind": "residence", "line": "example", "postal_code": "example", "city": "example", "province": "example", "country": "IT" }, "locale": "example" }'

Crea la solicitud de inscripción. Lo que pasa después depende de cómo admite la asociación (GET /v1/aps/{slug} → admission): con board, la solicitud queda PENDING hasta que decide la junta directiva de la asociación (pending_reasons: approval, luego payment — la cuota se paga después de la admisión, consulta payment_open); con provisional o automatic, un tipo gratuito se emite ACTIVE de inmediato, y uno de pago cuando se registra la cuota. Una inscripción activa puede llevar aun así un valid_from en el futuro: el carné se puede usar a partir de ese momento. Una solicitud que no se acepta termina como rejected. accept_statuto debe nombrar la versión del estatuto en vigor (y el sha256 cuando se publica). Cuando la asociación tiene en vigor una política de privacidad que la persona todavía no ha confirmado, privacy_notice debe nombrarla de la misma forma (422 validation_failed en privacy_notice sin él, 422 privacy_notice_outdated cuando nombra una anterior): tu página muestra la política (GET /v1/aps/{slug}/privacy-notice) y el acuse de recibo se guarda como una fila de prueba para esta inscripción. Una asociación que pide una dirección a todos sus socios (member_address: required en su perfil público) necesita address (422 validation_failed en address). La persona debe estar IDENTIFICADA — un código fiscal, o la fecha, el lugar y el país de nacimiento: si no, 422 identification_required, con errors[] que indica cada dato que falta; completa el perfil con PATCH /v1/me y repite la solicitud.

Tipo de medioapplication/json
object
membership_type
string formato: uuid
accept_statuto
obligatorio
object
version
obligatorio
integer
sha256
string
privacy_notice

La política de privacidad de la asociación que la persona ha leído en tu página (de GET /v1/aps/{slug}; añade locale cuando hayas mostrado una traducción). Obligatorio mientras haya en vigor una política que la persona todavía no ha confirmado (GET /v1/me/acceptances enumera lo que está pendiente); se ignora en los demás casos

object
version
obligatorio

La versión en vigor de la política que se ha mostrado (GET /v1/aps/{slug} → privacy_notice)

integer
sha256
string
locale

El idioma de la política que mostraste (privacy_notice.locale de la respuesta en la que la leíste). Cada idioma es un documento propio, con su propia versión: indícalo cuando leas el perfil con ?locale=. Por defecto: el locale de la petición y, después, el idioma de la asociación

string
address

Residencia o, cuando difiere, domicilio — se guarda en el libro de socios de la propia asociación. Obligatorio donde la asociación ha declarado member_address: required, se guarda 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
locale

El idioma de la página que ha usado la persona (it, en): qué traducción de la política ha leído

string
nullable

OK

Petición no válida

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"
}
]
}

Credenciales ausentes o no válidas

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"
}
]
}

No permitido

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"
}
]
}

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"
}
]
}

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"
}
]
}