Provides API endpoints related to customer portal
Summary
Functions
Get Benefit Grant
List Benefit Grants
Update Benefit Grant
Get Customer Meter
List Meters
Get Authenticated Portal User
Introspect Customer Session
Add Customer Payment Method
Check Email Change Token
Confirm Customer Payment Method
Delete Customer Payment Method
Get Customer
List Customer Payment Methods
Request Email Change
Update Customer
Verify Email Change
List Downloadables
Activate License Key
Deactivate License Key
Get License Key
List License Keys
Validate License Key
List Members
Remove Member
Confirm Retry Payment
Generate Order Invoice
Get Order Payment Status
Get Order Invoice
List Orders
Get Order Receipt
Update Order
Get Organization
List Claimed Subscriptions
List Seats
Resend Invitation
Cancel Subscription
Get Subscription
List Subscriptions
Update Subscription
Get Wallet
List Wallets
Functions
@spec customer_portal_benefit_grants_get(id :: String.t(), opts :: keyword()) :: {:ok, Polarex.CustomerBenefitGrantCustom.t() | Polarex.CustomerBenefitGrantDiscord.t() | Polarex.CustomerBenefitGrantDownloadables.t() | Polarex.CustomerBenefitGrantFeatureFlag.t() | Polarex.CustomerBenefitGrantGitHubRepository.t() | Polarex.CustomerBenefitGrantLicenseKeys.t() | Polarex.CustomerBenefitGrantMeterCredit.t()} | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}
Get Benefit Grant
Get a benefit grant by ID for the authenticated customer.
Scopes: customer_portal:read customer_portal:write
@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.
@spec customer_portal_benefit_grants_update( id :: String.t(), body :: Polarex.CustomerBenefitGrantCustomUpdate.t() | Polarex.CustomerBenefitGrantDiscordUpdate.t() | Polarex.CustomerBenefitGrantDownloadablesUpdate.t() | Polarex.CustomerBenefitGrantFeatureFlagUpdate.t() | Polarex.CustomerBenefitGrantGitHubRepositoryUpdate.t() | Polarex.CustomerBenefitGrantLicenseKeysUpdate.t() | Polarex.CustomerBenefitGrantMeterCreditUpdate.t(), opts :: keyword() ) :: {:ok, Polarex.CustomerBenefitGrantCustom.t() | Polarex.CustomerBenefitGrantDiscord.t() | Polarex.CustomerBenefitGrantDownloadables.t() | Polarex.CustomerBenefitGrantFeatureFlag.t() | Polarex.CustomerBenefitGrantGitHubRepository.t() | Polarex.CustomerBenefitGrantLicenseKeys.t() | Polarex.CustomerBenefitGrantMeterCredit.t()} | {:error, Polarex.HTTPValidationError.t() | Polarex.NotPermitted.t() | Polarex.ResourceNotFound.t()}
Update Benefit Grant
Update a benefit grant for the authenticated customer.
Scopes: customer_portal:write
Request Body
Content Types: application/json
@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
@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.
@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
@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
@spec customer_portal_customers_add_payment_method( body :: Polarex.CustomerPaymentMethodCreate.t(), opts :: keyword() ) :: {:ok, Polarex.CustomerPaymentMethodCreateRequiresActionResponse.t() | Polarex.CustomerPaymentMethodCreateSucceededResponse.t()} | {:error, Polarex.HTTPValidationError.t()}
Add Customer Payment Method
Add a payment method to the authenticated customer.
Request Body
Content Types: application/json
@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
@spec customer_portal_customers_confirm_payment_method( body :: Polarex.CustomerPaymentMethodConfirm.t(), opts :: keyword() ) :: {:ok, Polarex.CustomerPaymentMethodCreateRequiresActionResponse.t() | Polarex.CustomerPaymentMethodCreateSucceededResponse.t()} | {:error, Polarex.CustomerNotReady.t() | Polarex.HTTPValidationError.t()}
Confirm Customer Payment Method
Confirm a payment method for the authenticated customer.
Request Body
Content Types: application/json
@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.
@spec customer_portal_customers_get(opts :: keyword()) :: {:ok, Polarex.CustomerPortalCustomer.t()} | :error
Get Customer
Get authenticated customer.
Scopes: customer_portal:read customer_portal:write
@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.
@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
@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
@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
@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.
@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/activateendpoint instead.
Request Body
Content Types: application/json
@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/deactivateendpoint instead.
Request Body
Content Types: application/json
@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
@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 benefitpage: Page number, defaults to 1.limit: Size of a page, defaults to 10. Maximum is 100.
@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/validateendpoint instead.
Request Body
Content Types: application/json
@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
@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.
@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
@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
@spec customer_portal_orders_confirm_retry_payment( id :: String.t(), body :: Polarex.CustomerOrderConfirmPayment.t(), opts :: keyword() ) :: {:ok, Polarex.CustomerOrderPaymentConfirmation.t()} | {:error, Polarex.ManualRetryLimitExceeded.t() | Polarex.OrderNotEligibleForRetry.t() | Polarex.PaymentAlreadyInProgress.t() | Polarex.ResourceNotFound.t()}
Confirm Retry Payment
Confirm a retry payment using a Stripe confirmation token.
Request Body
Content Types: application/json
@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.
@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.
@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.
@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.
@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.recurringwill filter data corresponding to subscriptions creations or renewals.one_timewill 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.
@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.
@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
@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.
@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
@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.
@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 IDorder_id: Order ID
@spec customer_portal_seats_resend_invitation( seat_id :: String.t(), opts :: keyword() ) :: {:ok, Polarex.CustomerSeat.t()} | {:error, Polarex.HTTPValidationError.t()}
Resend Invitation
@spec customer_portal_seats_revoke_seat(seat_id :: String.t(), opts :: keyword()) :: {:ok, Polarex.CustomerSeat.t()} | {:error, Polarex.HTTPValidationError.t()}
Revoke Seat
@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.
@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
@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.
@spec customer_portal_subscriptions_update( id :: String.t(), body :: Polarex.CustomerSubscriptionCancel.t() | Polarex.CustomerSubscriptionUpdateClear.t() | Polarex.CustomerSubscriptionUpdateProduct.t() | Polarex.CustomerSubscriptionUpdateSeats.t(), opts :: keyword() ) :: {:ok, Polarex.CustomerSubscription.t()} | {:error, Polarex.AlreadyCanceledSubscription.t() | Polarex.HTTPValidationError.t() | Polarex.PaymentFailed.t() | Polarex.ResourceNotFound.t()}
Update Subscription
Update a subscription of the authenticated customer.
Request Body
Content Types: application/json
@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.
@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.