Polarex.CustomerPortal (Polarex v0.3.0)

View Source

Provides API endpoints related to customer portal

Summary

Functions

Functions

customer_portal_benefit_grants_get(id, opts \\ [])

Get Benefit Grant

Get a benefit grant by ID for the authenticated customer.

Scopes: customer_portal:read customer_portal:write

customer_portal_benefit_grants_list(opts \\ [])

@spec customer_portal_benefit_grants_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerBenefitGrant.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Benefit Grants

List benefits grants of the authenticated customer.

Scopes: customer_portal:read customer_portal:write

Options

  • query: Filter by benefit description.
  • type: Filter by benefit type.
  • benefit_id: Filter by benefit ID.
  • checkout_id: Filter by checkout ID.
  • order_id: Filter by order ID.
  • subscription_id: Filter by subscription ID.
  • member_id: Filter by member ID.
  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.
  • sorting: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.

customer_portal_benefit_grants_update(id, body, opts \\ [])

Update Benefit Grant

Update a benefit grant for the authenticated customer.

Scopes: customer_portal:write

Request Body

Content Types: application/json

customer_portal_customer_meters_get(id, opts \\ [])

@spec customer_portal_customer_meters_get(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerCustomerMeter.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Customer Meter

Get a meter by ID for the authenticated customer.

Scopes: customer_portal:read customer_portal:write

customer_portal_customer_meters_list(opts \\ [])

@spec customer_portal_customer_meters_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerCustomerMeter.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Meters

List meters of the authenticated customer.

Scopes: customer_portal:read customer_portal:write

Options

  • meter_id: Filter by meter ID.
  • query: Filter by meter name.
  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.
  • sorting: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.

customer_portal_customer_session_get_authenticated_user(opts \\ [])

@spec customer_portal_customer_session_get_authenticated_user(opts :: keyword()) ::
  {:ok, Polarex.PortalAuthenticatedUser.t()} | :error

Get Authenticated Portal User

Get information about the currently authenticated portal user.

Scopes: customer_portal:read customer_portal:write

customer_portal_customer_session_introspect(opts \\ [])

@spec customer_portal_customer_session_introspect(opts :: keyword()) ::
  {:ok, Polarex.CustomerCustomerSession.t()} | :error

Introspect Customer Session

Introspect the current session and return its information.

Scopes: customer_portal:read customer_portal:write

customer_portal_customers_add_payment_method(body, opts \\ [])

Add Customer Payment Method

Add a payment method to the authenticated customer.

Request Body

Content Types: application/json

customer_portal_customers_check_email_update(opts \\ [])

@spec customer_portal_customers_check_email_update(opts :: keyword()) ::
  :ok | {:error, Polarex.HTTPValidationError.t()}

Check Email Change Token

Check if an email change verification token is still valid.

Options

  • token

customer_portal_customers_confirm_payment_method(body, opts \\ [])

Confirm Customer Payment Method

Confirm a payment method for the authenticated customer.

Request Body

Content Types: application/json

customer_portal_customers_delete_payment_method(id, opts \\ [])

@spec customer_portal_customers_delete_payment_method(
  id :: String.t(),
  opts :: keyword()
) ::
  :ok
  | {:error,
     Polarex.HTTPValidationError.t()
     | Polarex.PaymentMethodInUseByActiveSubscription.t()
     | Polarex.ResourceNotFound.t()}

Delete Customer Payment Method

Delete a payment method from the authenticated customer.

customer_portal_customers_get(opts \\ [])

@spec customer_portal_customers_get(opts :: keyword()) ::
  {:ok, Polarex.CustomerPortalCustomer.t()} | :error

Get Customer

Get authenticated customer.

Scopes: customer_portal:read customer_portal:write

customer_portal_customers_list_payment_methods(opts \\ [])

@spec customer_portal_customers_list_payment_methods(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerPaymentMethod.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Customer Payment Methods

Get saved payment methods of the authenticated customer.

Options

  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.

customer_portal_customers_request_email_update(body, opts \\ [])

@spec customer_portal_customers_request_email_update(
  body :: Polarex.CustomerEmailUpdateRequest.t(),
  opts :: keyword()
) :: {:ok, map()} | {:error, Polarex.HTTPValidationError.t()}

Request Email Change

Request an email change for the authenticated customer.

Request Body

Content Types: application/json

customer_portal_customers_update(body, opts \\ [])

@spec customer_portal_customers_update(
  body :: Polarex.CustomerPortalCustomerUpdate.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.CustomerPortalCustomer.t()}
  | {:error, Polarex.HTTPValidationError.t()}

Update Customer

Update authenticated customer.

Request Body

Content Types: application/json

customer_portal_customers_verify_email_update(body, opts \\ [])

@spec customer_portal_customers_verify_email_update(
  body :: Polarex.CustomerEmailUpdateVerifyRequest.t(),
  opts :: keyword()
) :: {:ok, Polarex.CustomerEmailUpdateVerifyResponse.t()} | :error

Verify Email Change

Verify an email change using the token from the verification email.

Request Body

Content Types: application/json

customer_portal_downloadables_list(opts \\ [])

@spec customer_portal_downloadables_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceDownloadableRead.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Downloadables

Scopes: customer_portal:read customer_portal:write

Options

  • benefit_id: Filter by benefit ID.
  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.

customer_portal_license_keys_activate(body, opts \\ [])

@spec customer_portal_license_keys_activate(
  body :: Polarex.LicenseKeyActivate.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.LicenseKeyActivationRead.t()}
  | {:error,
     Polarex.HTTPValidationError.t()
     | Polarex.NotPermitted.t()
     | Polarex.ResourceNotFound.t()}

Activate License Key

Activate a license key instance.

This endpoint doesn't require authentication and can be safely used on a public client, like a desktop application or a mobile app. If you plan to validate a license key on a server, use the /v1/license-keys/activate endpoint instead.

Request Body

Content Types: application/json

customer_portal_license_keys_deactivate(body, opts \\ [])

@spec customer_portal_license_keys_deactivate(
  body :: Polarex.LicenseKeyDeactivate.t(),
  opts :: keyword()
) ::
  :ok | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Deactivate License Key

Deactivate a license key instance.

This endpoint doesn't require authentication and can be safely used on a public client, like a desktop application or a mobile app. If you plan to validate a license key on a server, use the /v1/license-keys/deactivate endpoint instead.

Request Body

Content Types: application/json

customer_portal_license_keys_get(id, opts \\ [])

@spec customer_portal_license_keys_get(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.LicenseKeyWithActivations.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get License Key

Get a license key.

Scopes: customer_portal:read customer_portal:write

customer_portal_license_keys_list(opts \\ [])

@spec customer_portal_license_keys_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceLicenseKeyRead.t()}
  | {:error,
     Polarex.HTTPValidationError.t()
     | Polarex.ResourceNotFound.t()
     | Polarex.Unauthorized.t()}

List License Keys

Scopes: customer_portal:read customer_portal:write

Options

  • benefit_id: Filter by a specific benefit
  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.

customer_portal_license_keys_validate(body, opts \\ [])

@spec customer_portal_license_keys_validate(
  body :: Polarex.LicenseKeyValidate.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.ValidatedLicenseKey.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Validate License Key

Validate a license key.

This endpoint doesn't require authentication and can be safely used on a public client, like a desktop application or a mobile app. If you plan to validate a license key on a server, use the /v1/license-keys/validate endpoint instead.

Request Body

Content Types: application/json

customer_portal_members_add_member(body, opts \\ [])

@spec customer_portal_members_add_member(
  body :: Polarex.CustomerPortalMemberCreate.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.CustomerPortalMember.t()}
  | {:error, Polarex.HTTPValidationError.t()}

Add Member

Add a new member to the customer's team.

Only available to owners and billing managers of team customers.

Rules:

  • Cannot add a member with the owner role (there must be exactly one owner)
  • If a member with this email already exists, the existing member is returned

Request Body

Content Types: application/json

customer_portal_members_list_members(opts \\ [])

@spec customer_portal_members_list_members(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerPortalMember.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Members

List all members of the customer's team.

Only available to owners and billing managers of team customers.

Options

  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.

customer_portal_members_remove_member(id, opts \\ [])

@spec customer_portal_members_remove_member(id :: String.t(), opts :: keyword()) ::
  :ok | {:error, Polarex.HTTPValidationError.t()}

Remove Member

Remove a member from the team.

Only available to owners and billing managers of team customers.

Rules:

  • Cannot remove yourself
  • Cannot remove the only owner

customer_portal_members_update_member(id, body, opts \\ [])

@spec customer_portal_members_update_member(
  id :: String.t(),
  body :: Polarex.CustomerPortalMemberUpdate.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.CustomerPortalMember.t()}
  | {:error, Polarex.HTTPValidationError.t()}

Update Member

Update a member's role.

Only available to owners and billing managers of team customers.

Rules:

  • Cannot modify your own role (to prevent self-demotion)
  • Customer must have exactly one owner at all times

Request Body

Content Types: application/json

customer_portal_orders_confirm_retry_payment(id, body, opts \\ [])

Confirm Retry Payment

Confirm a retry payment using a Stripe confirmation token.

Request Body

Content Types: application/json

customer_portal_orders_generate_invoice(id, opts \\ [])

@spec customer_portal_orders_generate_invoice(id :: String.t(), opts :: keyword()) ::
  {:ok, map()}
  | {:error,
     Polarex.MissingInvoiceBillingDetails.t() | Polarex.NotPaidOrder.t()}

Generate Order Invoice

Trigger generation of an order's invoice.

customer_portal_orders_get(id, opts \\ [])

@spec customer_portal_orders_get(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerOrder.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Order

Get an order by ID for the authenticated customer.

customer_portal_orders_get_payment_status(id, opts \\ [])

@spec customer_portal_orders_get_payment_status(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerOrderPaymentStatus.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Order Payment Status

Get the current payment status for an order.

customer_portal_orders_invoice(id, opts \\ [])

@spec customer_portal_orders_invoice(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerOrderInvoice.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Order Invoice

Get an order's invoice data.

customer_portal_orders_list(opts \\ [])

@spec customer_portal_orders_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerOrder.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Orders

List orders of the authenticated customer.

Options

  • product_id: Filter by product ID.
  • product_billing_type: Filter by product billing type. recurring will filter data corresponding to subscriptions creations or renewals. one_time will filter data corresponding to one-time purchases.
  • subscription_id: Filter by subscription ID.
  • query: Search by product or organization name.
  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.
  • sorting: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.

customer_portal_orders_receipt(id, opts \\ [])

@spec customer_portal_orders_receipt(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerOrderReceipt.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Order Receipt

Get a presigned URL to download an order's receipt PDF.

customer_portal_orders_update(id, body, opts \\ [])

@spec customer_portal_orders_update(
  id :: String.t(),
  body :: Polarex.CustomerOrderUpdate.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.CustomerOrder.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Update Order

Update an order for the authenticated customer.

Request Body

Content Types: application/json

customer_portal_organizations_get(slug, opts \\ [])

@spec customer_portal_organizations_get(slug :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerOrganizationData.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Organization

Get a customer portal's organization by slug.

customer_portal_seats_assign_seat(body, opts \\ [])

@spec customer_portal_seats_assign_seat(
  body :: Polarex.SeatAssign.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.CustomerSeat.t()} | {:error, Polarex.HTTPValidationError.t()}

Assign Seat

Request Body

Content Types: application/json

customer_portal_seats_list_claimed_subscriptions(opts \\ [])

@spec customer_portal_seats_list_claimed_subscriptions(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerSubscription.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Claimed Subscriptions

List all subscriptions where the authenticated customer has claimed a seat.

Scopes: customer_portal:read customer_portal:write

Options

  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.

customer_portal_seats_list_seats(opts \\ [])

@spec customer_portal_seats_list_seats(opts :: keyword()) ::
  {:ok, Polarex.SeatsList.t()} | {:error, Polarex.HTTPValidationError.t()}

List Seats

Scopes: customer_portal:read customer_portal:write

Options

  • subscription_id: Subscription ID
  • order_id: Order ID

customer_portal_seats_resend_invitation(seat_id, opts \\ [])

@spec customer_portal_seats_resend_invitation(
  seat_id :: String.t(),
  opts :: keyword()
) ::
  {:ok, Polarex.CustomerSeat.t()} | {:error, Polarex.HTTPValidationError.t()}

Resend Invitation

customer_portal_seats_revoke_seat(seat_id, opts \\ [])

@spec customer_portal_seats_revoke_seat(seat_id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerSeat.t()} | {:error, Polarex.HTTPValidationError.t()}

Revoke Seat

customer_portal_subscriptions_cancel(id, opts \\ [])

@spec customer_portal_subscriptions_cancel(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerSubscription.t()}
  | {:error,
     Polarex.AlreadyCanceledSubscription.t()
     | Polarex.HTTPValidationError.t()
     | Polarex.ResourceNotFound.t()}

Cancel Subscription

Cancel a subscription of the authenticated customer.

customer_portal_subscriptions_get(id, opts \\ [])

@spec customer_portal_subscriptions_get(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerSubscription.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Subscription

Get a subscription for the authenticated customer.

Scopes: customer_portal:read customer_portal:write

customer_portal_subscriptions_list(opts \\ [])

@spec customer_portal_subscriptions_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerSubscription.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Subscriptions

List subscriptions of the authenticated customer.

Scopes: customer_portal:read customer_portal:write

Options

  • product_id: Filter by product ID.
  • active: Filter by active or cancelled subscription.
  • query: Search by product or organization name.
  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.
  • sorting: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.

customer_portal_subscriptions_update(id, body, opts \\ [])

Update Subscription

Update a subscription of the authenticated customer.

Request Body

Content Types: application/json

customer_portal_wallets_get(id, opts \\ [])

@spec customer_portal_wallets_get(id :: String.t(), opts :: keyword()) ::
  {:ok, Polarex.CustomerWallet.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}

Get Wallet

Get a wallet by ID for the authenticated customer.

customer_portal_wallets_list(opts \\ [])

@spec customer_portal_wallets_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomerWallet.t()}
  | {:error, Polarex.HTTPValidationError.t()}

List Wallets

List wallets of the authenticated customer.

Options

  • page: Page number, defaults to 1.
  • limit: Size of a page, defaults to 10. Maximum is 100.
  • sorting: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign - before the criteria name to sort by descending order.