Pular para o conteúdo

Pedir a adesão a esta associação

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

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.

Tipo de mídiaapplication/json
object
membership_type
string formato: uuid
accept_statuto
obrigatório
object
version
obrigatório
integer
sha256
string
privacy_notice

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
version
obrigatório

A versão em vigor do aviso que foi mostrada (GET /v1/aps/{slug} → privacy_notice)

integer
sha256
string
locale

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

string
address

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
kind
string
padrão: residence
Valores permitidos: residence domicile
line
obrigatório

Rua e número

string
<= 150 caracteres
postal_code
string
nullable <= 12 caracteres
city
obrigatório
string
<= 150 caracteres
province

Só endereços italianos (duas letras); descartado no exterior

string
nullable <= 2 caracteres
country

ISO 3166-1 alpha-2

string
padrão: IT >= 2 caracteres <= 2 caracteres
locale

O idioma da página que a pessoa usou (it, en): qual tradução do aviso ela leu

string
nullable

OK

Requisição inválida

Tipo de mídiaapplication/problem+json
object
type
obrigatório
string formato: uri
title
obrigatório
string
status
obrigatório
integer
detail
string
code
obrigatório
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de mídiaapplication/problem+json
object
type
obrigatório
string formato: uri
title
obrigatório
string
status
obrigatório
integer
detail
string
code
obrigatório
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de mídiaapplication/problem+json
object
type
obrigatório
string formato: uri
title
obrigatório
string
status
obrigatório
integer
detail
string
code
obrigatório
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de mídiaapplication/problem+json
object
type
obrigatório
string formato: uri
title
obrigatório
string
status
obrigatório
integer
detail
string
code
obrigatório
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de mídiaapplication/problem+json
object
type
obrigatório
string formato: uri
title
obrigatório
string
status
obrigatório
integer
detail
string
code
obrigatório
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de mídiaapplication/problem+json
object
type
obrigatório
string formato: uri
title
obrigatório
string
status
obrigatório
integer
detail
string
code
obrigatório
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplogerado
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}