Skip to main content

Get a membership

GET /memberships/{id}

Requires the memberships:read permission. Returns memberships belonging to the authenticated organisation.

Authorization​

X-API-Key required

Parameters​

NameLocationTypeRequiredDescription
idpathstringYesMembership _id, also returned as memberMembershipId on linked passes

Membership status and billing​

status is the stored RemyPass membership state, updated through payment webhooks. It is separate from pass status and is not a live Stripe subscription lookup. Scheduled cancellation keeps the existing status and sets cancelAtPeriodEnd to true.

Amounts use minor currency units. Dates and relationship IDs may be absent or null when unavailable. stripe contains account, customer and subscription IDs for reconciliation; paymentRecovery contains action-required, attempt-count, next-attempt and grace-period details. Checkout secrets, buyer information and internal metadata are excluded.

Request Examples​

curl -X GET "https://api.remypass.com/api/v1/public/memberships/507f1f77bcf86cd799439011" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY"

Use Case Examples​

Get membership by ID​

curl -X GET "https://api.remypass.com/api/v1/public/memberships/507f1f77bcf86cd799439011" \
-H "X-API-Key: YOUR_API_KEY"

Responses​

StatusDescription
200Success
400Invalid parameters
401Invalid API key
403Missing permission or plan access
404Membership not found
429Rate limit exceeded.
500Server error

200 Response Example​

{
"success": true,
"message": "Success",
"data": {
"_id": "507f1f77bcf86cd799439011",
"member": "507f1f77bcf86cd799439012",
"membershipType": "507f1f77bcf86cd799439013",
"passInstance": "507f1f77bcf86cd799439014",
"status": "active",
"paymentMode": "subscription",
"amount": 25000,
"currency": "dkk",
"autoRenews": true,
"cancelAtPeriodEnd": true,
"currentPeriodStart": "2026-10-01T00:00:00.000Z",
"currentPeriodEnd": "2026-11-01T00:00:00.000Z",
"expiresAt": "2026-11-01T23:59:59.999Z",
"activatedAt": "2026-01-01T12:00:00.000Z",
"lastPaymentAt": "2026-10-01T00:00:00.000Z",
"cancellationRequestedAt": "2026-10-06T12:00:00.000Z",
"createdAt": "2026-01-01T12:00:00.000Z",
"updatedAt": "2026-10-06T12:00:00.000Z",
"stripe": {
"accountId": "acct_example",
"customerId": "cus_example",
"subscriptionId": "sub_example"
},
"paymentRecovery": {
"actionRequired": false,
"attemptCount": 0,
"nextPaymentAttempt": null,
"gracePeriodEndsAt": null
}
}
}

Response Fields​

FieldTypeDescriptionAttributes
successboolean
dataobject
Show child attributes
  • _id: string
  • member: string
  • membershipType: string
  • passInstance: string
  • paymentMode: one_off, subscription
  • currency: string
  • status: pending, active, past_due, canceled, expired, refunded, failed — Stored RemyPass membership status, synchronised through payment webhooks; distinct from pass status and live Stripe subscription status
  • autoRenews: boolean
  • cancelAtPeriodEnd: boolean
  • amount: integer — Amount in minor currency units
  • currentPeriodStart: string (date-time)
  • currentPeriodEnd: string (date-time)
  • expiresAt: string (date-time)
  • activatedAt: string (date-time)
  • canceledAt: string (date-time)
  • lastPaymentAt: string (date-time)
  • lastPaymentFailedAt: string (date-time)
  • createdAt: string (date-time)
  • updatedAt: string (date-time)
  • cancellationRequestedAt: string (date-time)
  • stripe: object
    Show child attributes
    • accountId: string
    • customerId: string
    • subscriptionId: string
  • paymentRecovery: object
    Show child attributes
    • actionRequired: boolean
    • attemptCount: integer
    • nextPaymentAttempt: string (date-time)
    • gracePeriodEndsAt: string (date-time)
messagestring