Solicitar la inscripción en esta asociación
const url = 'https://api.vimine.network/v1/me/membership';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"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"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Autorizaciones
Sección titulada «Autorizaciones»Cuerpo de la peticiónobligatorio
Sección titulada «Cuerpo de la peticiónobligatorio»object
object
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
La versión en vigor de la política que se ha mostrado (GET /v1/aps/{slug} → privacy_notice)
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
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
Calle y número
Solo direcciones italianas (dos letras); se descarta para las del extranjero
ISO 3166-1 alpha-2
El idioma de la página que ha usado la persona (it, en): qué traducción de la política ha leído
Respuestas
Sección titulada «Respuestas»OK
Petición no válida
object
object
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
object
object
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
object
object
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
object
object
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
object
object
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
object
object
Ejemplogenerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}