# Ruba Docs > Documentation for building and operating with Ruba. ## Docs - [Create Benefit](https://docs.getruba.com/api-reference/benefits/create.md): ### Intent - [Delete Benefit](https://docs.getruba.com/api-reference/benefits/delete.md): ### Intent - [Read Benefit](https://docs.getruba.com/api-reference/benefits/get.md): ### Intent - [List Benefits](https://docs.getruba.com/api-reference/benefits/list.md): ### Intent - [List Benefit Grants](https://docs.getruba.com/api-reference/benefits/list-grants.md): ### Intent - [Change Benefit](https://docs.getruba.com/api-reference/benefits/update.md): ### Intent - [Create Checkout Link](https://docs.getruba.com/api-reference/checkout-links/create.md): ### Intent - [Delete Checkout Link](https://docs.getruba.com/api-reference/checkout-links/delete.md): ### Intent - [Read Checkout Link](https://docs.getruba.com/api-reference/checkout-links/get.md): ### Intent - [List Checkout Links](https://docs.getruba.com/api-reference/checkout-links/list.md): ### Intent - [Change Checkout Link](https://docs.getruba.com/api-reference/checkout-links/update.md): ### Intent - [Complete Checkout Session from Client](https://docs.getruba.com/api-reference/checkouts/confirm-session-from-client.md): ### Intent - [Create Checkout Session](https://docs.getruba.com/api-reference/checkouts/create-session.md): ### Intent - [Read Checkout Session](https://docs.getruba.com/api-reference/checkouts/get-session.md): ### Intent - [Read Checkout Session from Client](https://docs.getruba.com/api-reference/checkouts/get-session-from-client.md): ### Intent - [List Checkout Sessions](https://docs.getruba.com/api-reference/checkouts/list-sessions.md): ### Intent - [Change Checkout Session](https://docs.getruba.com/api-reference/checkouts/update-session.md): ### Intent - [Change Checkout Session from Client](https://docs.getruba.com/api-reference/checkouts/update-session-from-client.md): ### Intent - [Create Custom Field](https://docs.getruba.com/api-reference/custom-fields/create.md): ### Intent - [Delete Custom Field](https://docs.getruba.com/api-reference/custom-fields/delete.md): ### Intent - [Read Custom Field](https://docs.getruba.com/api-reference/custom-fields/get.md): ### Intent - [List Custom Fields](https://docs.getruba.com/api-reference/custom-fields/list.md): ### Intent - [Change Custom Field](https://docs.getruba.com/api-reference/custom-fields/update.md): ### Intent - [Read Customer Meter](https://docs.getruba.com/api-reference/customer-meters/get.md): ### Intent - [List Customer Meters](https://docs.getruba.com/api-reference/customer-meters/list.md): ### Intent - [Get](https://docs.getruba.com/api-reference/customer-portal/downloadables/get.md) - [List Downloadables](https://docs.getruba.com/api-reference/customer-portal/downloadables/list.md): ### Intent - [Read Customer](https://docs.getruba.com/api-reference/customer-portal/get-customer.md): ### Intent - [Read Organization](https://docs.getruba.com/api-reference/customer-portal/get-organization.md): ### Intent - [Activate License Key](https://docs.getruba.com/api-reference/customer-portal/license-keys/activate.md): ### Intent - [Deactivate License Key](https://docs.getruba.com/api-reference/customer-portal/license-keys/deactivate.md): ### Intent - [Read License Key](https://docs.getruba.com/api-reference/customer-portal/license-keys/get.md): ### Intent - [List License Keys](https://docs.getruba.com/api-reference/customer-portal/license-keys/list.md): ### Intent - [Validate License Key](https://docs.getruba.com/api-reference/customer-portal/license-keys/validate.md): ### Intent - [Read Order](https://docs.getruba.com/api-reference/customer-portal/orders/get.md): ### Intent - [Read Order Invoice](https://docs.getruba.com/api-reference/customer-portal/orders/get-invoice.md): ### Intent - [Read Order Receipt](https://docs.getruba.com/api-reference/customer-portal/orders/get-receipt.md): ### Intent - [List Orders](https://docs.getruba.com/api-reference/customer-portal/orders/list.md): ### Intent - [Change Order](https://docs.getruba.com/api-reference/customer-portal/orders/patch.md): ### Intent - [Build Order Invoice](https://docs.getruba.com/api-reference/customer-portal/orders/post-invoice.md): ### Intent - [Operate as an Authenticated Customer](https://docs.getruba.com/api-reference/customer-portal/overview.md): Understand the authority boundary shared by every Customer Portal API operation. - [Delete Customer Payment Method](https://docs.getruba.com/api-reference/customer-portal/payment-methods/delete.md): ### Intent - [List Customer Payment Methods](https://docs.getruba.com/api-reference/customer-portal/payment-methods/list.md): ### Intent - [Assign Seat](https://docs.getruba.com/api-reference/customer-portal/seats/assign.md): ### Intent - [List Seats](https://docs.getruba.com/api-reference/customer-portal/seats/list.md): ### Intent - [List Claimed Subscriptions](https://docs.getruba.com/api-reference/customer-portal/seats/list-subscriptions.md): ### Intent - [Resend Invitation](https://docs.getruba.com/api-reference/customer-portal/seats/resend.md): ### Intent - [End Seat](https://docs.getruba.com/api-reference/customer-portal/seats/revoke.md): ### Intent - [Create Customer Session](https://docs.getruba.com/api-reference/customer-portal/sessions/create.md): ### Intent - [End Subscription](https://docs.getruba.com/api-reference/customer-portal/subscriptions/cancel.md): ### Intent - [Read Subscription](https://docs.getruba.com/api-reference/customer-portal/subscriptions/get.md): ### Intent - [List Subscriptions](https://docs.getruba.com/api-reference/customer-portal/subscriptions/list.md): ### Intent - [Change Subscription](https://docs.getruba.com/api-reference/customer-portal/subscriptions/update.md): ### Intent - [Change Customer](https://docs.getruba.com/api-reference/customer-portal/update-customer.md): ### Intent - [Assign Seat](https://docs.getruba.com/api-reference/customer-seats/assign.md): ### Intent - [Claim Seat](https://docs.getruba.com/api-reference/customer-seats/claim.md): ### Intent - [Read Claim Info](https://docs.getruba.com/api-reference/customer-seats/get-claim-info.md): ### Intent - [List Seats](https://docs.getruba.com/api-reference/customer-seats/list.md): ### Intent - [Resend Invitation](https://docs.getruba.com/api-reference/customer-seats/resend.md): ### Intent - [End Seat](https://docs.getruba.com/api-reference/customer-seats/revoke.md): ### Intent - [Create Customer](https://docs.getruba.com/api-reference/customers/create.md): ### Intent - [Delete Customer](https://docs.getruba.com/api-reference/customers/delete.md): ### Intent - [Delete Customer by External ID](https://docs.getruba.com/api-reference/customers/delete-external.md): ### Intent - [Read Customer](https://docs.getruba.com/api-reference/customers/get.md): ### Intent - [Read Customer by External ID](https://docs.getruba.com/api-reference/customers/get-external.md): ### Intent - [List Customers](https://docs.getruba.com/api-reference/customers/list.md): ### Intent - [List Customer Payment Methods](https://docs.getruba.com/api-reference/customers/list-payment-methods.md): ### Intent - [List Customer Payment Methods by External ID](https://docs.getruba.com/api-reference/customers/list-payment-methods-external.md): ### Intent - [Read Customer State](https://docs.getruba.com/api-reference/customers/state.md): ### Intent - [Read Customer State by External ID](https://docs.getruba.com/api-reference/customers/state-external.md): ### Intent - [Change Customer](https://docs.getruba.com/api-reference/customers/update.md): ### Intent - [Change Customer by External ID](https://docs.getruba.com/api-reference/customers/update-external.md): ### Intent - [Create Discount](https://docs.getruba.com/api-reference/discounts/create.md): ### Intent - [Delete Discount](https://docs.getruba.com/api-reference/discounts/delete.md): ### Intent - [Read Discount](https://docs.getruba.com/api-reference/discounts/get.md): ### Intent - [List Discounts](https://docs.getruba.com/api-reference/discounts/list.md): ### Intent - [Change Discount](https://docs.getruba.com/api-reference/discounts/update.md): ### Intent - [Read Event](https://docs.getruba.com/api-reference/events/get.md): ### Intent - [Record Events](https://docs.getruba.com/api-reference/events/ingest.md): ### Intent - [List Events](https://docs.getruba.com/api-reference/events/list.md): ### Intent - [Finish File Upload](https://docs.getruba.com/api-reference/files/complete-upload.md): ### Intent - [Create File](https://docs.getruba.com/api-reference/files/create.md): ### Intent - [Delete File](https://docs.getruba.com/api-reference/files/delete.md): ### Intent - [List Files](https://docs.getruba.com/api-reference/files/list.md): ### Intent - [Change File](https://docs.getruba.com/api-reference/files/update.md): ### Intent - [Read the Ruba API Contract](https://docs.getruba.com/api-reference/introduction.md): Choose an environment and authority boundary, then make, page, and retry requests safely. - [Activate License Key](https://docs.getruba.com/api-reference/license-keys/activate.md): ### Intent - [Deactivate License Key](https://docs.getruba.com/api-reference/license-keys/deactivate.md): ### Intent - [Read License Key](https://docs.getruba.com/api-reference/license-keys/get.md): ### Intent - [Read Activation](https://docs.getruba.com/api-reference/license-keys/get-activation.md): ### Intent - [List License Keys](https://docs.getruba.com/api-reference/license-keys/list.md): ### Intent - [Change License Key](https://docs.getruba.com/api-reference/license-keys/update.md): ### Intent - [Validate License Key](https://docs.getruba.com/api-reference/license-keys/validate.md): ### Intent - [Create Member](https://docs.getruba.com/api-reference/members/create.md): ### Intent - [Delete Member](https://docs.getruba.com/api-reference/members/delete.md): ### Intent - [Delete Member by External ID](https://docs.getruba.com/api-reference/members/delete-external.md): ### Intent - [Read Member](https://docs.getruba.com/api-reference/members/get.md): ### Intent - [Read Member by External ID](https://docs.getruba.com/api-reference/members/get-external.md): ### Intent - [List Members](https://docs.getruba.com/api-reference/members/list.md): ### Intent - [Change Member](https://docs.getruba.com/api-reference/members/update.md): ### Intent - [Change Member by External ID](https://docs.getruba.com/api-reference/members/update-external.md): ### Intent - [Create Meter](https://docs.getruba.com/api-reference/meters/create.md): ### Intent - [Read Meter](https://docs.getruba.com/api-reference/meters/get.md): ### Intent - [Read Meter Quantities](https://docs.getruba.com/api-reference/meters/get-quantities.md): ### Intent - [List Meters](https://docs.getruba.com/api-reference/meters/list.md): ### Intent - [Change Meter](https://docs.getruba.com/api-reference/meters/update.md): ### Intent - [Read Metrics](https://docs.getruba.com/api-reference/metrics/get.md): ### Intent - [Read Metrics Limits](https://docs.getruba.com/api-reference/metrics/get-limits.md): ### Intent - [Approve authorization](https://docs.getruba.com/api-reference/oauth2/connect/authorize.md): ### Intent - [Read User Info](https://docs.getruba.com/api-reference/oauth2/connect/get-user-info.md): ### Intent - [Inspect Token](https://docs.getruba.com/api-reference/oauth2/connect/introspect-token.md): ### Intent - [Issue Token](https://docs.getruba.com/api-reference/oauth2/connect/request-token.md): ### Intent - [End Token](https://docs.getruba.com/api-reference/oauth2/connect/revoke-token.md): ### Intent - [Read Order](https://docs.getruba.com/api-reference/orders/get.md): ### Intent - [Read Order Invoice](https://docs.getruba.com/api-reference/orders/get-invoice.md): ### Intent - [Read Order Receipt](https://docs.getruba.com/api-reference/orders/get-receipt.md): ### Intent - [List Orders](https://docs.getruba.com/api-reference/orders/list.md): ### Intent - [Change Order](https://docs.getruba.com/api-reference/orders/patch.md): ### Intent - [Build Order Invoice](https://docs.getruba.com/api-reference/orders/post-invoice.md): ### Intent - [Create Organization](https://docs.getruba.com/api-reference/organizations/create.md): ### Intent - [Read Organization](https://docs.getruba.com/api-reference/organizations/get.md): ### Intent - [List Organizations](https://docs.getruba.com/api-reference/organizations/list.md): ### Intent - [Change Organization](https://docs.getruba.com/api-reference/organizations/update.md): ### Intent - [Create Product](https://docs.getruba.com/api-reference/products/create.md): ### Intent - [Read Product](https://docs.getruba.com/api-reference/products/get.md): ### Intent - [List Products](https://docs.getruba.com/api-reference/products/list.md): ### Intent - [Change Product](https://docs.getruba.com/api-reference/products/update.md): ### Intent - [Change Product Benefits](https://docs.getruba.com/api-reference/products/update-benefits.md): ### Intent - [Create Refund](https://docs.getruba.com/api-reference/refunds/create.md): ### Intent - [List Refunds](https://docs.getruba.com/api-reference/refunds/list.md): ### Intent - [Create Subscription](https://docs.getruba.com/api-reference/subscriptions/create.md): ### Intent - [Read Subscription](https://docs.getruba.com/api-reference/subscriptions/get.md): ### Intent - [List Subscriptions](https://docs.getruba.com/api-reference/subscriptions/list.md): ### Intent - [End Subscription](https://docs.getruba.com/api-reference/subscriptions/revoke.md): ### Intent - [Change Subscription](https://docs.getruba.com/api-reference/subscriptions/update.md): ### Intent - [benefit.created](https://docs.getruba.com/api-reference/webhooks/benefit.created.md) - [benefit.updated](https://docs.getruba.com/api-reference/webhooks/benefit.updated.md) - [benefit_grant.created](https://docs.getruba.com/api-reference/webhooks/benefit_grant.created.md) - [benefit_grant.cycled](https://docs.getruba.com/api-reference/webhooks/benefit_grant.cycled.md) - [benefit_grant.revoked](https://docs.getruba.com/api-reference/webhooks/benefit_grant.revoked.md) - [benefit_grant.updated](https://docs.getruba.com/api-reference/webhooks/benefit_grant.updated.md) - [checkout.created](https://docs.getruba.com/api-reference/webhooks/checkout.created.md) - [checkout.updated](https://docs.getruba.com/api-reference/webhooks/checkout.updated.md) - [customer.created](https://docs.getruba.com/api-reference/webhooks/customer.created.md) - [customer.deleted](https://docs.getruba.com/api-reference/webhooks/customer.deleted.md) - [customer.state_changed](https://docs.getruba.com/api-reference/webhooks/customer.state_changed.md) - [customer.updated](https://docs.getruba.com/api-reference/webhooks/customer.updated.md) - [customer_seat.assigned](https://docs.getruba.com/api-reference/webhooks/customer_seat.assigned.md) - [customer_seat.claimed](https://docs.getruba.com/api-reference/webhooks/customer_seat.claimed.md) - [customer_seat.revoked](https://docs.getruba.com/api-reference/webhooks/customer_seat.revoked.md) - [Create Webhook Endpoint](https://docs.getruba.com/api-reference/webhooks/endpoints/create.md): ### Intent - [Delete Webhook Endpoint](https://docs.getruba.com/api-reference/webhooks/endpoints/delete.md): ### Intent - [Read Webhook Endpoint](https://docs.getruba.com/api-reference/webhooks/endpoints/get.md): ### Intent - [List Webhook Endpoints](https://docs.getruba.com/api-reference/webhooks/endpoints/list.md): ### Intent - [Change Webhook Endpoint](https://docs.getruba.com/api-reference/webhooks/endpoints/update.md): ### Intent - [order.created](https://docs.getruba.com/api-reference/webhooks/order.created.md) - [order.paid](https://docs.getruba.com/api-reference/webhooks/order.paid.md) - [order.refunded](https://docs.getruba.com/api-reference/webhooks/order.refunded.md) - [order.updated](https://docs.getruba.com/api-reference/webhooks/order.updated.md) - [organization.updated](https://docs.getruba.com/api-reference/webhooks/organization.updated.md) - [product.created](https://docs.getruba.com/api-reference/webhooks/product.created.md) - [product.updated](https://docs.getruba.com/api-reference/webhooks/product.updated.md) - [refund.created](https://docs.getruba.com/api-reference/webhooks/refund.created.md) - [refund.updated](https://docs.getruba.com/api-reference/webhooks/refund.updated.md) - [subscription.active](https://docs.getruba.com/api-reference/webhooks/subscription.active.md) - [subscription.canceled](https://docs.getruba.com/api-reference/webhooks/subscription.canceled.md) - [subscription.created](https://docs.getruba.com/api-reference/webhooks/subscription.created.md) - [subscription.revoked](https://docs.getruba.com/api-reference/webhooks/subscription.revoked.md) - [subscription.uncanceled](https://docs.getruba.com/api-reference/webhooks/subscription.uncanceled.md) - [subscription.updated](https://docs.getruba.com/api-reference/webhooks/subscription.updated.md) - [Read Revenue and Conversion Signals](https://docs.getruba.com/features/analytics.md): Understand the formulas and event boundaries behind every Analytics chart. - [Deliver Meter Credits](https://docs.getruba.com/features/benefits/credits.md): Build your own Credits benefit - [Reveal Private Post-Purchase Content](https://docs.getruba.com/features/benefits/custom.md): Deliver a protected Markdown note to entitled customers - [Assign Discord Membership and Roles](https://docs.getruba.com/features/benefits/discord-access.md): Automate server entry and role delivery after purchase - [Deliver Feature Access](https://docs.getruba.com/features/benefits/feature-flags.md): Represent product access as a benefit grant your application can read. - [Deliver Files After Purchase](https://docs.getruba.com/features/benefits/file-downloads.md): Turn an entitlement into secure access to digital downloads - [Grant Private Repository Access](https://docs.getruba.com/features/benefits/github-access.md): Connect a purchase to a GitHub collaborator role - [Attach Delivery to the Sale](https://docs.getruba.com/features/benefits/introduction.md) - [Deliver and Validate License Keys](https://docs.getruba.com/features/benefits/license-keys.md): Issue a unique key after purchase and enforce expiry, activation, conditions, or usage limits. - [Deliver a Shared Slack Channel](https://docs.getruba.com/features/benefits/slack-shared-channel.md): Provision one Slack Connect channel for each customer who receives the benefit. - [Keep Checkout Inside Your Interface](https://docs.getruba.com/features/checkout/embed.md): Open a Ruba payment flow without sending the buyer to another page - [Collect a Payment Method In-App](https://docs.getruba.com/features/checkout/embed-payment-method.md): Let an authenticated customer save a payment method from a modal or inline frame. - [Publish Buy Links](https://docs.getruba.com/features/checkout/links.md): Configure a reusable URL that creates a fresh checkout for every visit. - [Choose Checkout Language](https://docs.getruba.com/features/checkout/localization.md): Control the language used during payment - [Create Checkout Sessions](https://docs.getruba.com/features/checkout/session.md): Create a short-lived buying flow from your backend with customer-specific context. - [Record Cost Events](https://docs.getruba.com/features/cost-insights/cost-events.md): Attach sub-cent operating cost to an event so margin can be measured beside revenue. - [Follow a Cost Trace](https://docs.getruba.com/features/cost-insights/cost-traces.md): Group related cost events into one session-level view. - [Connect Delivery Cost to Revenue](https://docs.getruba.com/features/cost-insights/introduction.md): Attach cost data to usage and measure customer profitability - [Collect Structured Answers at Checkout](https://docs.getruba.com/features/custom-fields.md): Define reusable questions, attach them to products, and read the answers - [Keep Customer Records in Sync](https://docs.getruba.com/features/customer-management.md): Gain insight into your customers and sales - [Give Customers a Self-Service Surface](https://docs.getruba.com/features/customer-portal/introduction.md): Understand the hosted billing actions customers can reach without contacting support. - [Send Customers into Their Portal](https://docs.getruba.com/features/customer-portal/navigate-customers.md): Choose between a stable sign-in URL, an authenticated handoff, and links already sent by Ruba. - [Choose What Customers Can Manage](https://docs.getruba.com/features/customer-portal/settings.md): Set the boundary between self-service actions and merchant-controlled operations. - [Design and Apply a Promotion](https://docs.getruba.com/features/discounts.md): Define an offer, constrain its eligibility, and decide how checkout receives it - [Connect Where Payouts Land](https://docs.getruba.com/features/finance/accounts.md): Create or reuse the Stripe Connect Express account that receives Ruba payouts. - [Read Your Ruba Balance](https://docs.getruba.com/features/finance/balance.md): Reconcile sales, tax, fees, currency conversion, and withdrawable funds. - [Move Funds to Your Bank](https://docs.getruba.com/features/finance/payouts.md): Understand availability, minimums, fees, invoices, and timing before requesting a payout. - [Read the Financial Record of a Sale](https://docs.getruba.com/features/orders.md): Understand the transaction record behind purchases, renewals, invoices, and receipts - [Model What You Sell](https://docs.getruba.com/features/products.md): Begin offering digital goods through Ruba within minutes. - [Return an Order Payment](https://docs.getruba.com/features/refunds.md): Choose a refundable amount, return matching tax, and decide what happens to access - [Sell Access by Team Seat](https://docs.getruba.com/features/seat-based-pricing.md): Let one billing owner buy and assign access to multiple people - [Recover Renewal Revenue](https://docs.getruba.com/features/subscriptions/failed-payments.md): Follow the retry clock, customer recovery route, and benefit grace period after a renewal fails. - [Run the Recurring Revenue Lifecycle](https://docs.getruba.com/features/subscriptions/introduction.md): Understand how a recurring catalog item becomes an ongoing customer relationship. - [Operate Existing Subscriptions](https://docs.getruba.com/features/subscriptions/manage.md): Change the commercial terms, timing, and end state of a subscription that already exists. - [Choose How Plan Changes Settle](https://docs.getruba.com/features/subscriptions/proration.md): Control when a price change takes effect and where its charge or credit appears. - [Design a Trial Journey](https://docs.getruba.com/features/subscriptions/trials.md): Configure trial length, conversion timing, reminders, and repeat-trial protection. - [Control How Tax Appears in the Price](https://docs.getruba.com/features/tax-inclusive-pricing.md): Present prices as tax-inclusive, tax-exclusive, or location-aware - [Control Team Access](https://docs.getruba.com/features/team-management.md): Invite collaborators and separate operational work from organization administration. - [Price and Invoice Metered Usage](https://docs.getruba.com/features/usage-based-billing/billing.md): Attach a unit price to a meter and settle accumulated usage with the subscription cycle. - [Put Prepaid Units Ahead of Metered Charges](https://docs.getruba.com/features/usage-based-billing/credits.md): Fund a customer's meter balance before usage becomes an overage - [Record Billable Activity](https://docs.getruba.com/features/usage-based-billing/event-ingestion.md): Send immutable customer activity into the meter pipeline and understand which billing period receives it. - [Turn Product Activity into a Charge](https://docs.getruba.com/features/usage-based-billing/introduction.md): Connect application events, meters, product prices, and customer balances - [Turn Events into Quantities](https://docs.getruba.com/features/usage-based-billing/meters.md): Filter an event stream, reduce matching events, and control how the resulting unit is displayed. - [Fund Usage After a Purchase](https://docs.getruba.com/guides/grant-meter-credits-after-purchase.md): Discover how to grant meter credits to users after a purchase using the Meter Credits benefit or Webhooks. - [Grant Usage Before a Purchase](https://docs.getruba.com/guides/grant-meter-credits-before-purchase.md): Discover how to grant meter credits to customers before they make any purchase using the Ruba API. - [Choose an Implementation Playbook](https://docs.getruba.com/guides/introduction.md): Walkthroughs with step-by-step instructions for putting common Ruba patterns into practice. - [Move Existing Seats to Members](https://docs.getruba.com/guides/migrate-seat-based-to-member-model.md): What shifts when your organization adopts the member model, and how to adapt your integration - [Implement Member-Based Seat Billing](https://docs.getruba.com/guides/seat-based-pricing.md): A complete walkthrough for building team products with seat-based pricing - [Authenticate Server-to-Server Requests](https://docs.getruba.com/integrate/authentication.md) - [Read the Customer Access State](https://docs.getruba.com/integrate/customer-state.md): The fastest route to building billing into your application - [Connect AI Tools to Ruba](https://docs.getruba.com/integrate/mcp.md): Supercharge your AI agents with Ruba's MCP Server - [Issue Organization Access Tokens](https://docs.getruba.com/integrate/oat.md) - [Exchange User Consent for API Access](https://docs.getruba.com/integrate/oauth2/connect.md): Send a user through consent, exchange the code, and call Ruba on their behalf - [Plan an OAuth Integration](https://docs.getruba.com/integrate/oauth2/introduction.md): For partners building apps and extensions for Ruba customers - [Register an OAuth Client](https://docs.getruba.com/integrate/oauth2/setup.md) - [Build Safely in the Sandbox](https://docs.getruba.com/integrate/sandbox.md) - [Make Billing Follow Better Auth Identity](https://docs.getruba.com/integrate/sdk/adapters/better-auth.md): Connect authenticated users to customers, checkout, usage, webhooks, and portal data - [Use Ruba with Express](https://docs.getruba.com/integrate/sdk/adapters/express.md): Attach Ruba checkout, portal, and webhook handlers to Express routes - [Use Ruba with Fastify](https://docs.getruba.com/integrate/sdk/adapters/fastify.md): Register Ruba checkout, portal, and webhook handlers with Fastify - [Use Ruba with Hono](https://docs.getruba.com/integrate/sdk/adapters/hono.md): Wire Ruba checkout, portal, and webhook handlers into Hono - [Use Ruba with Next.js](https://docs.getruba.com/integrate/sdk/adapters/nextjs.md): Mount checkout, portal, and verified webhook routes in the Next.js App Router - [Build with Ruba in Go](https://docs.getruba.com/integrate/sdk/golang.md): SDK for Golang - [Build with Ruba in PHP](https://docs.getruba.com/integrate/sdk/php.md) - [Build with Ruba in Python](https://docs.getruba.com/integrate/sdk/python.md) - [Build with Ruba in TypeScript](https://docs.getruba.com/integrate/sdk/typescript.md): SDK for JavaScript runtimes (Node.js and Browser) - [Build a Reliable Webhook Receiver](https://docs.getruba.com/integrate/webhooks/delivery.md): Verify signatures, acknowledge quickly, and recover from delivery failures - [Choose Where Events Are Delivered](https://docs.getruba.com/integrate/webhooks/endpoints.md): Receive notifications asynchronously when events happen instead of needing to poll for updates - [Map Ruba Events to Application Decisions](https://docs.getruba.com/integrate/webhooks/events.md): Subscribe to the smallest set of state changes your application can act on - [Build Your Revenue System](https://docs.getruba.com/introduction.md): A practical map of how catalog, checkout, billing, access, and payouts connect inside Ruba. - [Pass Merchant Review and Keep Payouts Moving](https://docs.getruba.com/merchant-of-record/account-reviews.md): Prepare identity, product, support, and risk evidence for Ruba review - [Calculate Ruba Fees](https://docs.getruba.com/merchant-of-record/fees.md): Calculate transaction adjustments, disputes, and payout costs - [Understand Who Sells the Product](https://docs.getruba.com/merchant-of-record/introduction.md): See how Ruba changes the legal, payment, and tax roles in a software sale - [Check Buyer and Payout Coverage](https://docs.getruba.com/merchant-of-record/supported-countries.md): Separate where customers can pay from where sellers can receive earnings - [Move Billing to Another Provider](https://docs.getruba.com/migrate-away.md): Transfer customer identities and saved payment methods without exposing card data ## OpenAPI Specs - [openapi](https://docs.getruba.com/openapi.yaml)