# Momence public API Documentation > Documentation for Momence public API ## Guides - [Getting started](https://api.docs.momence.com/docs/get-started.md) - [Authentication](https://api.docs.momence.com/docs/getting-started.md): How to login - [Authorization](https://api.docs.momence.com/docs/authorization.md): What can you access - [Terminology](https://api.docs.momence.com/docs/terminology.md) - [User checkout process](https://api.docs.momence.com/docs/user-checkout-process.md) - [Adding payment method](https://api.docs.momence.com/docs/adding-a-new-payment-method-to-user.md) ## API Reference - [OAuth2 authorize](https://api.docs.momence.com/reference/apiv2authcontroller_authorize.md) - [OAuth2 token](https://api.docs.momence.com/reference/apiv2authcontroller_token.md): Obtain a new access token - [Get logged user data](https://api.docs.momence.com/reference/apiv2authcontroller_profile.md): Get info about currently logged user - [Logout](https://api.docs.momence.com/reference/apiv2authcontroller_logout.md): Invalidate provided access token - [Host API](https://api.docs.momence.com/reference/host.md): Management API - [Get members](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_list.md) - [Add member](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_create.md) - [Get member](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_get.md) - [Update member name](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_updatename.md) - [Update member phone number](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_updatephonenumber.md) - [Update member e-mail](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_updateemail.md) - [Assign a tag to a member](https://api.docs.momence.com/reference/apiv2hostmembertagscontroller_assign.md) - [Unassign a tag from a member](https://api.docs.momence.com/reference/apiv2hostmembertagscontroller_unassign.md) - [List available tags](https://api.docs.momence.com/reference/apiv2hosttagscontroller_list.md) - [Delete all phone number records for a member](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_deletememberphonenumber.md) - [Get session bookings by a specific member](https://api.docs.momence.com/reference/apiv2hostmemberssessionbookingscontroller_list.md) - [Get appointments by a specific member](https://api.docs.momence.com/reference/apiv2hostmembersappointmentscontroller_getappointmentreservations.md) - [Get notes for a specific member](https://api.docs.momence.com/reference/apiv2hostmembersnotescontroller_list.md) - [Get all appointment reservations](https://api.docs.momence.com/reference/apiv2hostappointmentscontroller_gethostappointmentreservations.md) - [Get sales](https://api.docs.momence.com/reference/apiv2hostsalescontroller_list.md): **Note:** This is an experimental feature, please contact support if you want to utilize this endpoint. This endpoint returns a list of host sales. The default sorting mode is DESC (newest sales first), but you can also specify ASC (oldest sales first). For session and appointment sales, additional meta data is returned in the response. - [Returns a list of sessions](https://api.docs.momence.com/reference/apiv2hostsessionscontroller_getsessions.md) - [Returns a session detail](https://api.docs.momence.com/reference/apiv2hostsessionscontroller_getsession.md) - [Returns a list of session bookings](https://api.docs.momence.com/reference/apiv2hostsessionscontroller_getsessionbookings.md) - [Add a member to a session for free](https://api.docs.momence.com/reference/apiv2hostsessionscontroller_addtosessionforfree.md): This endpoint allows staff user to add a member to a session for free | Error | Description | | --- | --- | | err-member-not-found | member not found | | err-member-not-assigned-to-host | member is not assigned to the host | | err-session-not-found | session not found | | err-session-not-provided-by-host | session not provided by the host | | err-customer-age-prevents-from-action | member is not eligible due to age restrictions | | err-missing-customer-date-of-birth | member is missing date of birth value | | err-missing-date-of-birth-setting | host is missing date of birth settings | | err-invalid-date-of-birth-value | member has invalid date of birth value | | err-session-not-recurring | session is not a recurring session | - [Add a member to a session waitlist](https://api.docs.momence.com/reference/apiv2hostsessionscontroller_addtowaitlist.md): This endpoint allows staff user to add a member to a session waitlist **NOTE**: You can use the optional `useBoughtMembershipIds` field to provide a list of bought memberships that should be attempted to use during booking from the waitlist. If you don't provide anything here the best matching membership will be used automatically. | Error | Description | | --- | --- | | err-waitlist-not-allowed | session does not have waitlist enabled | | err-waitlist-full | session waitlist is full | | err-member-already-on-waitlist | member is already on the waitlist | | err-member-not-found | member not found | | err-member-not-assigned-to-host | member is not assigned to the host | | err-session-not-found | session not found | | err-session-not-provided-by-host | session not provided by the host | | err-customer-age-prevents-from-action | member is not eligible due to age restrictions | | err-missing-customer-date-of-birth | member is missing date of birth value | | err-missing-date-of-birth-setting | host is missing date of birth settings | | err-invalid-date-of-birth-value | member has invalid date of birth value | - [Mark session booking as checked-in](https://api.docs.momence.com/reference/apiv2hostsessionbookingcheckincontroller_addsessionbookingcheckin.md) - [Mark session booking as not checked-in](https://api.docs.momence.com/reference/apiv2hostsessionbookingcheckincontroller_removesessionbookingcheckin.md) - [Get available host memberships](https://api.docs.momence.com/reference/apiv2hostmembershipscontroller_list.md) - [Get all active subscriptions and packs of a specific member](https://api.docs.momence.com/reference/apiv2hostmembersboughtmembershipscontroller_list.md) - [Cancel session booking](https://api.docs.momence.com/reference/apiv2hostsessionbookingcontroller_cancelsessionbooking.md): Cancel a single session booking identified by its ID. **Tip:** You can find the ID within the *ApiV2HostSessionBookingDto* object (`id` field) returned from the session booking list endpoint. **Note:** This endpoint does not cancel or impact any recurring bookings. There is a separate endpoint for canceling those. - [Cancel recurring session booking](https://api.docs.momence.com/reference/apiv2hostsessionrecurringbookingcontroller_cancelrecurringsessionbooking.md): Cancel recurring session booking identified by its ID and related session bookings. **Tip:** You can find the ID within the ApiV2HostSessionBookingDto object (`recurringBookingId` field) returned from the session booking list endpoint. **Note:** This endpoint cancels both recurring booking and individual bookings originating from the same. User can provide more specific filters to specify which bookings will be cancelled. - [Update credits of package-events or package-money bought membership for a specific member](https://api.docs.momence.com/reference/apiv2hostmembersboughtmembershipscontroller_updateclasscredits.md) - [Get members (with filters)](https://api.docs.momence.com/reference/apiv2hostmemberscontroller_listpost.md) - [Initiate report generation](https://api.docs.momence.com/reference/apiv2hostreportrunscontroller_createreportrun.md): Initiates generation of a report. Use "Retrieve a report" endpoint to retrieve the report data once the generation is completed. **Rate limit:** 100 req / 1 d - [Retrieve a report](https://api.docs.momence.com/reference/apiv2hostreportrunscontroller_getreportrun.md): **Rate limit:** 1000 req / 1 d - [Freeze bought membership immediately or schedule freeze/unfreeze](https://api.docs.momence.com/reference/apiv2hostmembersboughtmembershipscontroller_freezemembership.md) - [Schedule bought membership freeze](https://api.docs.momence.com/reference/apiv2hostmembersboughtmembershipscontroller_schedulemembershipfreeze.md) - [Unfreeze bought membership or remove scheduled freeze](https://api.docs.momence.com/reference/apiv2hostmembersboughtmembershipscontroller_removemembershipfreeze.md) - [Schedule bought membership unfreeze](https://api.docs.momence.com/reference/apiv2hostmembersboughtmembershipscontroller_schedulemembershipunfreeze.md) - [Remove bought membership scheduled unfreeze](https://api.docs.momence.com/reference/apiv2hostmembersboughtmembershipscontroller_removemembershipunfreeze.md) - [Member API](https://api.docs.momence.com/reference/member-api.md): Logged in customer data - [Get saved member payment methods](https://api.docs.momence.com/reference/apiv2membersavedpaymentmethodscontroller_get.md) - [Add member saved payment method](https://api.docs.momence.com/reference/apiv2membersavedpaymentmethodscontroller_post.md): This endpoint returns a temporary pre-authenticated URL that allows user to add a payment method. Redirect user to that URL, which will allow them to add a payment method using a Momence-hosted app. The URL will be valid for 3600 seconds. After the user finishes adding the payment method, they will get redirected to the URL provided. - [Get member addresses](https://api.docs.momence.com/reference/apiv2memberaddressescontroller_list.md) - [Create member address](https://api.docs.momence.com/reference/apiv2memberaddressescontroller_create.md) - [Get member address](https://api.docs.momence.com/reference/apiv2memberaddressescontroller_get.md) - [Update member address](https://api.docs.momence.com/reference/apiv2memberaddressescontroller_update.md) - [Delete member address](https://api.docs.momence.com/reference/apiv2memberaddressescontroller_delete.md) - [Get available host memberships](https://api.docs.momence.com/reference/apiv2memberhostmembershipscontroller_list.md) - [Get available host sessions](https://api.docs.momence.com/reference/apiv2memberhostsessionscontroller_list.md) - [Get available host locations](https://api.docs.momence.com/reference/apiv2memberhostlocationscontroller_list.md) - [Returns signable documents (waivers, privacy policy, contracts...) with signature status](https://api.docs.momence.com/reference/apiv2memberhostsignabledocumentscontroller_list.md) - [Signs one or multiple signable documents (waivers, privacy policy, contracts...) using one signature](https://api.docs.momence.com/reference/apiv2memberhostsignabledocumentscontroller_sign.md) - [Get member bookings](https://api.docs.momence.com/reference/apiv2membersessionbookingscontroller_list.md): Returns list of sessions current user is signed up for - [Cancel member booking](https://api.docs.momence.com/reference/apiv2membersessionbookingscontroller_cancel.md): Cancels session booking - [Get member info](https://api.docs.momence.com/reference/apiv2membercontroller_get.md): Returns general info for the current member - [Update member info](https://api.docs.momence.com/reference/apiv2membercontroller_update.md): Changes some user detail, use `/email` endpoint to change email, use `/phone-number` endpoint to change phone number - [Get member visits](https://api.docs.momence.com/reference/apiv2membercontroller_getvisits.md): Returns visits counts for the current member - [Update member email](https://api.docs.momence.com/reference/apiv2membercontroller_updateemail.md): Changes user email - [Update member phone number](https://api.docs.momence.com/reference/apiv2membercontroller_updatephonenumber.md): Changes user phone number - [Request member password reset](https://api.docs.momence.com/reference/apiv2membercontroller_requestpasswordresetemail.md): Requests a new password reset email to be sent to the user - [Delete all phone number records for a member](https://api.docs.momence.com/reference/apiv2membercontroller_deletephonenumber.md) - [Get member active memberships](https://api.docs.momence.com/reference/apiv2memberboughtmembershipscontroller_list.md) - [Remove member saved payment method](https://api.docs.momence.com/reference/apiv2membersavedpaymentmethodscontroller_delete.md): This endpoint allows members to remove their saved payment method. | Error | Description | | --- | --- | | err-active-non-cancellable-subscription | member has an active non-cancellable subscription which prevent the last payment method from being deleted | | err-no-payment-method-found | the specified payment method does not exist | - [Freeze bought membership immediately or schedule freeze/unfreeze](https://api.docs.momence.com/reference/apiv2memberboughtmembershipscontroller_freezemembership.md) - [Schedule bought membership freeze](https://api.docs.momence.com/reference/apiv2memberboughtmembershipscontroller_schedulemembershipfreeze.md) - [Unfreeze bought membership or remove scheduled freeze](https://api.docs.momence.com/reference/apiv2memberboughtmembershipscontroller_removemembershipfreeze.md) - [Schedule bought membership unfreeze](https://api.docs.momence.com/reference/apiv2memberboughtmembershipscontroller_schedulemembershipunfreeze.md) - [Remove bought membership scheduled unfreeze](https://api.docs.momence.com/reference/apiv2memberboughtmembershipscontroller_removemembershipunfreeze.md) - [Get compatible memberships](https://api.docs.momence.com/reference/apiv2membercheckoutcontroller_postcompatiblememberships.md): This endpoint will return list of bought memberships potentially compatible with specified checkout cart. **NOTE**: The endpoint also returns memberships that are incompatible which is indicated by the incompatibility field. This is so you can present user with a reason why the membership is not usable in this case. | Incompatibility | Description | | --- | --- | | session-membership-excluded | session is not included in specified membership | | session-bought-membership-will-expire | bought membership will expire before the session start and it's not scheduled to renew | | session-bought-membership-pack-will-expire | pack will expire before the session starts | | session-bought-membership-already-used | bought membership was already used for this session and it's not allowed to use it multiple times | | session-bought-membership-usage-limit-reached | subscription has reached its usage limit for the renewal period that's aligned with session | | session-bought-membership-usage-limit-reached-for-semester-or-course | subscription has reached its usage limit for the renewal period or periods that're aligned with the whole semester or course | | session-bought-membership-daily-limit-reached | bought membership was already used today and is limited to one use per day | | session-bought-membership-no-event-credits-left | no event credits are left in the pack | | session-bought-membership-no-money-credits-left | no money credits are left in the pack | | session-bought-membership-on-demand | bought membership is only usable for on-demand content, not classes | | session-bought-membership-starts-later | bought membership starts being valid after the session start | | session-bought-membership-invalid-type | bought membership is not usable for this | | session-bought-membership-disabled | membership linked with the bought membership was disabled and thus it can't be used | | session-bought-membership-frozen | bought membership is frozen when the session happens | | session-subscription-ticket-limit | subscription is limited to one ticket | | unknown | unknown reason | - [Get prices](https://api.docs.momence.com/reference/apiv2membercheckoutcontroller_postprices.md): This endpoint should be used before calling checkout to fetch correct prices for every item. The checkout endpoint will reject any request that doesn't contain correct prices even when you're using memberships to pay. - [Perform checkout](https://api.docs.momence.com/reference/apiv2membercheckoutcontroller_post.md): Perform payment for specified items in the checkout cart. The endpoint will return list of purchased items. **NOTE**: Currently the endpoint only supports buying sessions with membership payment method. **NOTE:** You should call `/prices` endpoint to fetch correct prices for every item in the cart before calling this endpoint **NOTE:** You should call `/compatible-memberships` endpoint to fetch list of bought memberships that are potentially compatible with the cart before calling this endpoint | Error | Description | | --- | --- | | err-no-payment-methods | request doesn't contain any payment methods | | err-no-items | request doesn't contain any items | | err-too-many-items | request contain more than 1 items | | err-combined-payment-methods | request contains multiple payment method types in single request | | err-cannot-pay-for-membership-with-membership | request is attempting to buy membership with membership | | err-multiple-membership-types | request is combining different membership types in payment methods | | err-multiple-subscriptions | request contains more than 1 subscription payment methods | | err-saved-card-not-found | request contains invalid saved card payment method | | err-cart-validation-failed | general error when validating cart | | err-payment-failed | error occurred during payment processing | | err-duplicate-membership-payment-methods | request contains single bought membership multiple times | | err-invalid-membership-payment-method | request contains invalid membership payment method | | err-incompatible-membership | request contains membership that's incompatible with the checkout cart | | err-unsupported-payment-methods | request contains invalid payment methods | | err-session-has-invalid-state | request contains session with status that prevent sale | | err-session-has-passed | request contains session that has already passed | | err-session-sales-ended | request contains session that has ended sales | | err-session-dropins-not-allowed | request contains session that does not allow dropins | | err-session-is-full | request contains session that's full | | err-session-purchase-limit-reached | request contains session that member has already booked and host doesn't allow that | | err-session-access-restricted | request contains session that requires specific tag to book | | err-duplicate-item-ids | request contains single item id multiple times | | err-duplicate-payment-method-ids | request contains single payment method id multiple times | | err-unsupported-item-type | request contains unsupported item type | | err-missing-customer-date-of-birth | customer has no birthday information, but it's required | | err-customer-age-prevents-from-action | customer is not eligible for the action due to age restriction | - [Webhooks Basics](https://api.docs.momence.com/reference/outoging-webhooks.md) - [Webhooks Events Reference](https://api.docs.momence.com/reference/webhooks-reference.md) - [Get payment transaction info](https://api.docs.momence.com/reference/apiv2hostpaymenttransactionscontroller_get.md): Returns all information about payment transaction. - [Get compatible memberships for checkout cart](https://api.docs.momence.com/reference/apiv2hostcheckoutcontroller_postcompatiblememberships.md): This endpoint will return list of bought memberships of the specified member potentially compatible with the given checkout cart. **NOTE**: The endpoint also returns memberships that are incompatible which is indicated by the incompatibility field. This is so you can present user with a reason why the membership is not usable in this case. | Incompatibility | Description | | --- | --- | | session-membership-excluded | session is not included in specified membership | | session-bought-membership-will-expire | bought membership will expire before the session start and it's not scheduled to renew | | session-bought-membership-pack-will-expire | pack will expire before the session starts | | session-bought-membership-already-used | bought membership was already used for this session and it's not allowed to use it multiple times | | session-bought-membership-usage-limit-reached | subscription has reached its usage limit for the renewal period that's aligned with session | | session-bought-membership-usage-limit-reached-for-semester-or-course | subscription has reached its usage limit for the renewal period or periods that're aligned with the whole semester or course | | session-bought-membership-daily-limit-reached | bought membership was already used today and is limited to one use per day | | session-bought-membership-no-event-credits-left | no event credits are left in the pack | | session-bought-membership-no-money-credits-left | no money credits are left in the pack | | session-bought-membership-on-demand | bought membership is only usable for on-demand content, not classes | | session-bought-membership-starts-later | bought membership starts being valid after the session start | | session-bought-membership-invalid-type | bought membership is not usable for this | | session-bought-membership-disabled | membership linked with the bought membership was disabled and thus it can't be used | | session-bought-membership-frozen | bought membership is frozen when the session happens | | session-subscription-ticket-limit | subscription is limited to one ticket | | unknown | unknown reason | - [Get prices for checkout](https://api.docs.momence.com/reference/apiv2hostcheckoutcontroller_postprices.md): This endpoint should be used before calling checkout to fetch correct prices for every item. - [Perform checkout](https://api.docs.momence.com/reference/apiv2hostcheckoutcontroller_post.md): Perform payment for specified items in the checkout cart on behalf of the specified member. The endpoint will return list of purchased items. The checkout endpoint will reject any request that doesn't contain correct prices even when you're using memberships to pay. **NOTE**: Currently the endpoint only supports buying sessions with membership payment method. **NOTE:** You should call `/prices` endpoint to fetch correct prices for every item in the cart before calling this endpoint **NOTE:** You should call `/compatible-memberships` endpoint to fetch list of bought memberships that are potentially compatible with the cart before calling this endpoint | Error | Description | | --- | --- | | err-no-payment-methods | request doesn't contain any payment methods | | err-no-items | request doesn't contain any items | | err-too-many-items | request contain more than 1 items | | err-combined-payment-methods | request contains multiple payment method types in single request | | err-cannot-pay-for-membership-with-membership | request is attempting to buy membership with membership | | err-multiple-membership-types | request is combining different membership types in payment methods | | err-multiple-subscriptions | request contains more than 1 subscription payment methods | | err-saved-card-not-found | request contains invalid saved card payment method | | err-cart-validation-failed | general error when validating cart | | err-payment-failed | error occurred during payment processing | | err-duplicate-membership-payment-methods | request contains single bought membership multiple times | | err-invalid-membership-payment-method | request contains invalid membership payment method | | err-incompatible-membership | request contains membership that's incompatible with the checkout cart | | err-unsupported-payment-methods | request contains invalid payment methods | | err-session-has-invalid-state | request contains session with status that prevent sale | | err-session-has-passed | request contains session that has already passed | | err-session-sales-ended | request contains session that has ended sales | | err-session-dropins-not-allowed | request contains session that does not allow dropins | | err-session-is-full | request contains session that's full | | err-session-purchase-limit-reached | request contains session that member has already booked and host doesn't allow that | | err-session-access-restricted | request contains session that requires specific tag to book | | err-duplicate-item-ids | request contains single item id multiple times | | err-duplicate-payment-method-ids | request contains single payment method id multiple times | | err-unsupported-item-type | request contains unsupported item type | | err-missing-customer-date-of-birth | customer has no birthday information, but it's required | | err-customer-age-prevents-from-action | customer is not eligible for the action due to age restriction | | err-invalid-custom-payment-method | request contains invalid custom payment method id | ## Recipes - [Customer Checkout](https://api.docs.momence.com/recipes/customer-checkout.md)