Skip to content

Request a membership in this association

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

Creates the membership request. What happens next depends on how the association admits (GET /v1/aps/{slug} → admission): with board the request stays PENDING until the association’s board decides (pending_reasons: approval, then payment — the fee is paid after the admission, see payment_open); with provisional or automatic a free type is issued ACTIVE at once and a paid one when the fee is recorded. An active membership may still carry a valid_from in the future: the card is usable from then. A request that is not accepted ends as rejected. accept_statuto must name the in-force statuto version (and sha256 when published). When the association has a privacy notice in force that the person has not acknowledged yet, privacy_notice must name it the same way (422 validation_failed on privacy_notice without it, 422 privacy_notice_outdated when it names an older one): your page shows the notice (GET /v1/aps/{slug}/privacy-notice) and the acknowledgement is stored as a proof row for this membership. An association that asks every member for an address (member_address: required on its public profile) needs address (422 validation_failed on address). The person must be IDENTIFIED — a fiscal code, or date, place and country of birth: otherwise 422 identification_required, with errors[] naming each missing particular; complete the profile with PATCH /v1/me and ask again.

Media typeapplication/json
object
membership_type
string format: uuid
accept_statuto
required
object
version
required
integer
sha256
string
privacy_notice

The association’s privacy notice the person read on your page (from GET /v1/aps/{slug}; add locale when you showed a translation). Required while a notice is in force that the person has not acknowledged yet (GET /v1/me/acceptances lists what is pending); ignored otherwise

object
version
required

The in-force notice version shown (GET /v1/aps/{slug} → privacy_notice)

integer
sha256
string
locale

The language of the notice you showed (privacy_notice.locale of the answer you read it from). Each language is its own document, with its own version: name it when you read the profile with ?locale=. Default: the request’s locale, then the association’s language

string
address

Residence or, where different, domicile — kept on the association’s own record of the member. Required where the association declared member_address: required, stored where it declared optional, ignored where it collects none

object
kind
string
default: residence
Allowed values: residence domicile
line
required

Street and number

string
<= 150 characters
postal_code
string
nullable <= 12 characters
city
required
string
<= 150 characters
province

Italian addresses only (two letters); dropped abroad

string
nullable <= 2 characters
country

ISO 3166-1 alpha-2

string
default: IT >= 2 characters <= 2 characters
locale

The language of the page the person used (it, en): which translation of the notice they read

string
nullable

OK

Invalid request

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Missing or invalid credentials

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Not allowed

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Not found

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Rate limited

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Internal error

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}