members.dev
Bookings

Create a Booking

Creates a Booking

POST
/v1/bookings

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://api.members.dev/portal/v1/bookings" \  -H "Content-Type: application/json" \  -d '{    "event_id": "string",    "member_id": "string",    "slot_starts_at_local": null,    "price_rule_id": "string"  }'
{
  "id": "string",
  "event_id": "string",
  "recurring_event_id": "string",
  "original_starts_at_local": {},
  "member_id": "string",
  "resource_id": "string",
  "starts_at_local": null,
  "ends_at_local": null,
  "timezone": "string",
  "status": "string",
  "is_schedule_desynced": true,
  "price_rule_id": "string",
  "price_name": "string",
  "price_amount": 0,
  "currency": "string",
  "price_deductions": [
    {}
  ],
  "invoice_id": "string",
  "held_until": {},
  "cancelled_at": {},
  "cancellation_notes": "string",
  "cancellation_policy_id": "string",
  "cancellation_policy_snapshot": {
    "tiers": [
      {
        "id": "string",
        "hours_before_start": 0,
        "allow_cancel": true,
        "refund_percent": 0,
        "fee_amount": 0,
        "refund_deductions": false
      }
    ]
  },
  "cancellation_settlement": {
    "scenario": "cancel",
    "settlement_source": "policy",
    "allow_cancel": true,
    "deny_reason": "string",
    "hours_before_start": 0,
    "matched_tier_hours_before_start": 0,
    "paid_amount": 0,
    "refund_amount": 0,
    "fee_amount": 0,
    "cancellation_amount": 0,
    "refund_deductions": false,
    "benefit_restorations": [
      {
        "benefit_id": "string",
        "count": 0,
        "original_usage_id": "string",
        "reversal_usage_id": "string",
        "grant_allocations": [
          {}
        ]
      }
    ]
  },
  "cancellation_preview": {
    "scenario": "cancel",
    "settlement_source": "policy",
    "allow_cancel": true,
    "deny_reason": "string",
    "hours_before_start": 0,
    "matched_tier_hours_before_start": 0,
    "paid_amount": 0,
    "refund_amount": 0,
    "fee_amount": 0,
    "cancellation_amount": 0,
    "refund_deductions": false,
    "benefit_restorations": [
      {
        "benefit_id": "string",
        "count": 0,
        "original_usage_id": "string",
        "reversal_usage_id": "string",
        "grant_allocations": [
          {}
        ]
      }
    ]
  },
  "no_show_preview": {
    "scenario": "cancel",
    "settlement_source": "policy",
    "allow_cancel": true,
    "deny_reason": "string",
    "hours_before_start": 0,
    "matched_tier_hours_before_start": 0,
    "paid_amount": 0,
    "refund_amount": 0,
    "fee_amount": 0,
    "cancellation_amount": 0,
    "refund_deductions": false,
    "benefit_restorations": [
      {
        "benefit_id": "string",
        "count": 0,
        "original_usage_id": "string",
        "reversal_usage_id": "string",
        "grant_allocations": [
          {}
        ]
      }
    ]
  },
  "penalty_fee_invoice_id": "string",
  "cancellation_credit_note_id": "string",
  "attendance_status": "attended",
  "attendance_recorded_at": {},
  "created_at": null,
  "updated_at": null
}
{
  "type": "https://api.members.dev/errors/invalid_credentials",
  "title": "Invalid credentials",
  "status": 401,
  "detail": "Invalid API Key or token.",
  "code": "invalid_credentials"
}
{
  "type": "https://api.members.dev/errors/not_linked_to_tenant",
  "title": "Not linked to tenant",
  "status": 403,
  "detail": "Not linked to this tenant",
  "code": "not_linked_to_tenant"
}
{
  "type": "https://api.members.dev/errors/member_not_found",
  "title": "Member not found",
  "status": 404,
  "detail": "No member exists with the given id in this organization.",
  "code": "member_not_found"
}
{
  "type": "https://api.members.dev/errors/members_context_required",
  "title": "Members context required",
  "status": 422,
  "detail": "This client has multiple organizations. Send the Members-Context header with the organization id (org_…) for this request.",
  "code": "members_context_required"
}
{
  "type": "https://api.members.dev/errors/rate_limit_exceeded",
  "title": "Rate limit exceeded",
  "status": 429,
  "detail": "Rate limit exceeded",
  "code": "rate_limit_exceeded"
}