Pedir a adesão a esta associação
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" }'Cria o pedido de adesão. O que acontece depois depende de como a associação admite (GET /v1/aps/{slug} → admission): com board o pedido fica PENDING até a diretoria da associação decidir (pending_reasons: approval, depois payment — a taxa é paga depois da admissão, veja payment_open); com provisional ou automatic, a carteirinha de um tipo gratuito é emitida ACTIVE na hora, e a de um tipo pago quando a taxa é registrada. Uma carteirinha ativa ainda pode trazer um valid_from no futuro: a carteirinha é utilizável a partir de então. Um pedido que não é aceito termina como rejected. accept_statuto precisa indicar a versão do statuto em vigor (e o sha256, quando publicado). Quando a associação tem em vigor um aviso de privacidade do qual a pessoa ainda não tomou ciência, privacy_notice precisa indicá-lo da mesma forma (422 validation_failed em privacy_notice sem ele, 422 privacy_notice_outdated quando indica um mais antigo): a sua página mostra o aviso (GET /v1/aps/{slug}/privacy-notice) e a ciência é guardada como um registro de prova para esta carteirinha. Uma associação que pede um endereço a todos os associados (member_address: required no seu perfil público) exige address (422 validation_failed em address). A pessoa precisa estar IDENTIFICADA — um código fiscal, ou data, local e país de nascimento: senão, 422 identification_required, com errors[] indicando cada dado que falta; complete o perfil com PATCH /v1/me e peça de novo.
Autorizações
Seção intitulada “Autorizações”Corpo da requisiçãoobrigatório
Seção intitulada “Corpo da requisiçãoobrigatório”object
object
O aviso de privacidade da associação que a pessoa leu na sua página (de GET /v1/aps/{slug}; adicione locale quando você mostrou uma tradução). Obrigatório enquanto houver em vigor um aviso do qual a pessoa ainda não tomou ciência (GET /v1/me/acceptances lista o que está pendente); ignorado nos outros casos
object
A versão em vigor do aviso que foi mostrada (GET /v1/aps/{slug} → privacy_notice)
O idioma do aviso que você mostrou (privacy_notice.locale da resposta da qual você o leu). Cada idioma é um documento próprio, com a sua própria versão: indique-o quando você ler o perfil com ?locale=. Padrão: o locale da requisição, depois o idioma da associação
Residência ou, quando diferente, domicílio — guardado na ficha do associado mantida pela própria associação. Obrigatório quando a associação declarou member_address: required, guardado quando declarou optional, ignorado quando ela não coleta nenhum
object
Rua e número
Só endereços italianos (duas letras); descartado no exterior
ISO 3166-1 alpha-2
O idioma da página que a pessoa usou (it, en): qual tradução do aviso ela leu
Respostas
Seção intitulada “Respostas”OK
Requisição inválida
object
object
Exemplogerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}Credenciais ausentes ou inválidas
object
object
Exemplogerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}Não permitido
object
object
Exemplogerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}Não encontrado
object
object
Exemplogerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}Limite de requisições excedido
object
object
Exemplogerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}Erro interno
object
object
Exemplogerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}