GrowthZone Scheduled Billing API

Recurring membership billing runs by membership type.

OpenAPI Specification

growthzone-scheduled-billing-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: GrowthZone REST Certifications Scheduled Billing API
  description: 'Programmatic access to a GrowthZone association management (AMS) database - contacts (members and organizations), memberships, groups and directories, scheduled billing, certifications, and events. GrowthZone is a REST-based, JSON API served per customer database at https://{subdomain}.growthzoneapp.com/api, where {subdomain} is the customer database sub-domain visible in the application URL (some databases are served from app.memberzone.org). The API is customer/partner-gated: an account must have API Access enabled, and an API Key is issued by GrowthZone WebSupport (websupport@growthzone.com). Authenticate by sending an `Authorization: ApiKey {API_Key}` header (Server authentication); OAuth 2.0 / OpenID Connect is also supported for user (SSO) flows.


    Endpoint status: paths marked "Confirmed" appear in GrowthZone''s public integration documentation and Curated API reference. Paths marked "Modeled" are honestly inferred to round out standard CRUD or reflect the ChamberMaster/MemberZone (MicroNet) event feed; verify exact shapes against the gated full reference at documentation.growthzoneapp.com.'
  version: '1.0'
  contact:
    name: GrowthZone WebSupport
    url: https://integration.growthzone.com
    email: websupport@growthzone.com
  license:
    name: Proprietary
    url: https://www.growthzone.com
servers:
- url: https://{subdomain}.growthzoneapp.com/api
  description: GrowthZone customer database (replace {subdomain} with your database sub-domain)
  variables:
    subdomain:
      default: app
      description: The customer database sub-domain from your GrowthZone application URL.
- url: https://app.memberzone.org/api
  description: MemberZone-hosted GrowthZone databases
security:
- apiKeyAuth: []
tags:
- name: Scheduled Billing
  description: Recurring membership billing runs by membership type.
paths:
  /scheduledbilling/membershiptype/items:
    post:
      operationId: previewScheduledBillingItems
      tags:
      - Scheduled Billing
      summary: Preview scheduled billing items by membership type (Confirmed)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledBillingRequest'
      responses:
        '200':
          description: Preview of items that would be billed.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduledbilling/membershiptype/items/export:
    post:
      operationId: exportScheduledBillingItems
      tags:
      - Scheduled Billing
      summary: Export scheduled billing items (Confirmed)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledBillingRequest'
      responses:
        '200':
          description: Exported billing items.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduledbilling/membershiptype/items/run/setup:
    post:
      operationId: setupScheduledBillingRun
      tags:
      - Scheduled Billing
      summary: Set up a scheduled billing run (Confirmed)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledBillingRequest'
      responses:
        '200':
          description: Billing run configured.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduledbilling/membershiptype/items/run:
    post:
      operationId: runScheduledBilling
      tags:
      - Scheduled Billing
      summary: Run scheduled billing for a membership type (Confirmed)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledBillingRequest'
      responses:
        '200':
          description: Billing run started; returns a system job identifier.
          content:
            application/json:
              schema:
                type: object
                properties:
                  SystemJobId:
                    type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduledbilling/membershiptype/run/history:
    get:
      operationId: listScheduledBillingRunHistory
      tags:
      - Scheduled Billing
      summary: List scheduled billing run history (Confirmed)
      responses:
        '200':
          description: History of past scheduled billing runs.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BillingRun'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduledbilling/membershiptype/run/history/download/{systemjobid}:
    post:
      operationId: downloadScheduledBillingRun
      tags:
      - Scheduled Billing
      summary: Download a scheduled billing run result (Confirmed)
      parameters:
      - name: systemjobid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The billing run result file.
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    BillingRun:
      type: object
      properties:
        SystemJobId:
          type: string
        RunDate:
          type: string
          format: date-time
        Status:
          type: string
        RecordCount:
          type: integer
    ScheduledBillingRequest:
      type: object
      properties:
        MembershipTypeId:
          type: integer
        BillingDate:
          type: string
          format: date
    Error:
      type: object
      properties:
        Message:
          type: string
        Code:
          type: string
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Server authentication. Send `Authorization: ApiKey {API_Key}` where the API Key is issued per application by GrowthZone WebSupport. OAuth 2.0 / OpenID Connect (authorize/token/userinfo at growthzoneapp.com) is used for user SSO flows.'