Subsbase Documentation

website·Indexed 33 days ago

https://docs.subsbase.com

Documentation for Subsbase, a subscription management platform. Includes guides for the Admin and Management Portals, onboarding, invoicing, and plan management. Technical resources cover GraphQL Schema V1 and V2, Payment Schedules API, webhooks, and third-party integrations such as QuickBooks.

Tokens
85K
Snippets
258
Records
588
Agent score
51%

What's inside Subsbase

  1. Overview of Tax Invoicing in Subsbase

    Subsbase allows businesses to configure and automatically apply taxes to invoices globally. It specifically supports tax collection integrations with the Egyptian Tax Authority (ETA) and the Zakat, Tax and Customs Authority (ZATCA).
  2. Overview of Subsbase subscription billing platform

    Subsbase is a subscription billing and revenue management platform designed to automate recurring billing, payments, and invoicing for SaaS, e-commerce, and other recurring revenue business models. It provides tools for managing customer subscriptions, tracking revenue performance metrics, and integrating with external platforms.
  3. Overview of Subsbase Wallets

    Wallets in Subsbase are virtual accounts tied to a specific currency that allow customers to hold, adjust, and use funds for subscriptions, auto-payments, and checkouts. They can be created automatically upon subscription or manually by admins. Customers can also add funds via the Customer Portal.
  4. Overview of Subsbase API integration

    Subsbase provides a GraphQL-based API to integrate external solutions. It allows developers to add, edit, or assign customers to plans and manage custom fields in customer profiles. The system uses role-based data access rules to determine permissions for authenticated users. Integration typically involves three components: Webhooks, GraphQL API V1, and GraphQL API V2.
  5. Overview of the Subsbase Management Portal

    The Management Portal is a self-serve interface for managing Subsbase subscriptions. It allows users to create and manage test and live sites (within subscription limits), add users, configure integrations, and manage payment methods for their organization.
  6. Overview of Subsbase Event Notifications

    The Event Notifications service monitors critical site events related to customers, subscriptions, plans, and invoices. When a specified event occurs, the system can trigger one or more automated actions based on configured conditions and delays. Supported actions include triggering a Webhook, sending an Email, sending an SMS, or sending a Message.
  7. Retrieve details for a specific plan

    Use the plan query to fetch detailed information about a single plan using its planCode and siteId. This query provides comprehensive data including tax profiles, dunning profiles, pricing rules, and associated add-ons.
    query GetPlan($siteId: String!, $planCode: String!) {
      plan(siteId: $siteId, planCode: $planCode) {
        id
        planCode
        name
        canBeDeleted
        billingModel
        billingType
        hostedPageUrl
        pricingModel
        hasActiveSubscribers
        activeSubscribersCount
        status
        baseCurrency {
          code
          displayText
          symbol
        }
        description
        setupFee
        trialPeriod {
          duration
          requiresCreditCard
          unit
        }
        billingCycle {
          duration
          unit
          termLimit {
            actionOnEnd
            cycles
          }
        }
        # Additional fields available: taxProfile, dunningProfile, fixedPricing, perUnitPricing, variablePricing, addOns, etc.
      }
    }

    // Variables Sample: { "planCode": "semi-annual-plan", "siteId": "test-site" }

  8. Retrieve a specific payment schedule by ID

    Use the paymentSchedule query to fetch detailed information about a single payment schedule using its unique ID and the site ID.
    query GetPaymentSchedule(
      $siteId: String!
      $paymentScheduleId: String!
    ) {
      paymentSchedule(siteId: $siteId, paymentScheduleId: $paymentScheduleId) {
        id
        reference
        name
        product
        createdOn
        baseCurrency { code displayText symbol }
        billingCurrency { code displayText symbol }
        displayCurrency { code displayText symbol }
        data {
          invoicing
          comments
          allowPaymentMethodChange
          status
          currencySettings {
            billingCurrency { target useApiForConversion useSiteGlobalConversion currenciesConversion }
            displayCurrency { target useApiForConversion useSiteGlobalConversion currenciesConversion }
            billingCapRate
            billingFloorRate
          }
        }
        infoFields { label name value }
        customFields
        customer {
          customerId
          firstName
          lastName
          fullName
          emailAddress
        }
        scheduledPayments {
          id
          reference
          name
          date
          amount
          status
          statusDate
          data { billingRate }
          infoFields { label name value }
          customFields
          url
        }
        totalOutstandingAmount
        totalOverdueAmount
      }
    }
    
    // Variables Sample:
    {
      "siteId": "test-site",
      "paymentScheduleId": "86105eb2-4ba2-40a3-a88f-7cefd1f58214"
    }
  9. Retrieve a specific campaign by ID

    Use the campaign query to fetch detailed information about a single campaign using its campaignId and siteId. This includes validity rules, usage rules, and detailed promo code invoice data.
    query GetCampaign($siteId: String!, $campaignId: String!) {
      campaign(siteId: $siteId, campaignId: $campaignId) {
        id
        name
        type
        value
        status
        salesPreOffer
        salesPostOffer
        discountValue
        localizationDictionary
        validityRule {
          name
          operation
        }
        usageRule {
          name
          operation
        }
        promoCodes {
          id
          code
          redemptionCount
          usageCount
          discountValue
          salesPreOffer
          salesPostOffer
          promoCodeInvoices {
            invoice {
              id
              number
              createdOn
              customer {
                id
                customerId
                fullName
              }
              relatedEntity
              relatedEntityId
            }
            salesPreOffer
            discountValue
            salesPostOffer
          }
        }
      }
    }
    
    # Variables Sample:
    # {
    #   "siteId": "test-site",
    #   "campaignId": "22eca929-410d-4bb4-bfeb-3edf6e9b4567"
    # }
  10. Access Customer data via CustomerGQLType

    The CustomerGQLType object provides comprehensive details about a customer, including their identity, contact information, billing history, and associated subscriptions. It links to other types such as AddressGQLType for shipping/billing and KeyValuePairGQLType for custom fields.
    type CustomerGQLType {
        activePlan: String
        activities: [ActivityLogGQLType]
        address: AddressGQLType
        comment: String
        company: String
        customFields: [KeyValuePairGQLType]
        customerId: String
        documents: [StorageObjectGQLType]
        emailAddress: String
        emails: [EmailGQLType]
        firstJoined: DateTime
        firstName: String
        fullName: String
        id: ID
        infoFields: [CustomerInfoFieldGQLType]
        invoices: [InvoiceInfoGQLType]
        lastName: String
        lastPaymentDate: DateTime
        lifeTimeRevenue: Decimal!
        lifeTimeRevenueCurrency: String!
        manualPayment: Boolean
        paymentMethods: [PaymentMethodGQLType]
        paymentSchedules: [PaymentScheduleGQLType]
        shippingAddress: AddressGQLType
        siteId: String!
        status: SubscriptionStatusGQLType
        subscriptions: [SubscriptionGQLType]
        transactions: [TransactionGQLType]
    }
  11. Retrieve site information using the Site Info Query

    Use the GetSiteInfo query to retrieve specific information about a site. You must provide the siteId as a variable. The response includes a success flag, a message, and the site information value.
    query GetSiteInfo($siteId: String!) {
        siteInfo (siteId: $siteId) {
            isSuccess
            message
            value {
                name
                # All properties are found in the SiteInfoGQLType
            }
        }
    }
    
    // Variables Sample:
    {"siteId":"test-site"}