Paigo Customers API

Manage customers in Paigo.

Operations 19

GET /customers #
POST /customers #
POST /customers/{customerId}/children/{childId} #
DELETE /customers/{customerId}/children/{childId} #
PUT /customers/{customerId}/children/{childId} #
GET /customers/{customerId} #
PUT /customers/{customerId} #
DELETE /customers/{customerId} #
POST /customers/{customerId}/refunds #
GET /customers/{customerId}/refunds #
GET /customers/{customerId}/enrollment #
PUT /customers/{customerId}/enrollment #
GET /customers/{customerId}/payments #
GET /customers/{customerId}/stripePortal #
PUT /customers/{customerId}/freeTrial #
GET /customers/{customerId}/usage #
GET /customers/{customerId}/token #
POST /customers/{customerId}/transactions #
GET /customers/{customerId}/transactions #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/paigo-customers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

paigo-customers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Paigo Customers API
  description: "\nFor developer documentation of the platform, please visit https://docs.paigo.tech.\n\n## Authentication\nPaigo API supports **bearer token** as the authentication method.\nSteps to set up authentication:\n1. Sign up with Paigo platform and get **client id** and **client secret**.\n2. Make a POST request to the auth endpoint `https://auth.paigo.tech/oauth/token` with the following body:\n```json\n{\n        audience: 'https://qnonyh1pc7.execute-api.us-east-1.amazonaws.com',\n        grant_type: 'client_credentials',\n        client_id: <your client id>,\n        client_secret: <your client secret>\n}\n```\nAdditionally verify that the following headers are set by the client you are using: \n```json\n{\n    \"Content-Type\": \"application/json\"\n}\n```\n\n3. Use the access token in the response to make requests to the Paigo API. Here is an example of the response:  \n```json   \n{\n            access_token: <your access token>,\n            expires_in: 86400,\n            token_type: 'Bearer'  \n}\n```\n4. To use Paigo API, add in the header of your request:\n```json\n{\n        Authorization: \"Bearer <your access token>\"\n}\n```\n\n## API Endpoints\nPaigo API has the following endpoint:\n- Production Environment API: `https://api.prod.paigo.tech`\n        "
  version: v1.10
  contact: {}
servers:
- url: https://api.prod.paigo.tech
  description: Product Environment API
tags:
- name: Customers
  description: Manage customers in Paigo.
paths:
  /customers:
    get:
      operationId: Get all Customers
      summary: ''
      description: List all customers created in this account
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadAllCustomerResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
    post:
      operationId: Create a customer
      summary: ''
      description: Create a customer
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerDto'
      responses:
        '201':
          description: Customer Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/children/{childId}:
    post:
      operationId: Assign a child to a customer
      summary: ''
      description: Assign a child to a customer
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateChildRowDto'
      responses:
        '201':
          description: Child Added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
    delete:
      operationId: Remove a child from a customer
      summary: ''
      description: Remove a child from parent
      parameters: []
      responses:
        '200':
          description: Child Removed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
    put:
      operationId: Update a child to a customer
      summary: ''
      description: Update child relationship
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateChildRowDto'
      responses:
        '200':
          description: Child Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}:
    get:
      operationId: Get a customer by ID
      summary: ''
      description: Find one customer
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadCustomerResponseDTO'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Customers
      security:
      - bearer: []
    put:
      operationId: Update a customer
      summary: ''
      description: Update a customer
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerDto'
      responses:
        '200':
          description: Customer Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Customers
      security:
      - bearer: []
    delete:
      operationId: Delete a customer
      summary: ''
      description: Delete a customer
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      responses:
        '200':
          description: Customer Deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteCustomerResponseDto'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/refunds:
    post:
      operationId: Create a refund for customer
      summary: ''
      description: 'Create Customer Refund

        <br><br>

        <b>NOTE:</b> This endpoint currently only supports Stripe for a refund channel. Customers with manual payments will cause an 400 error response.'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerRefundDto'
      responses:
        '201':
          description: Refund Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerRefundResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
    get:
      operationId: Get a refund for customer
      summary: ''
      description: 'Get customer refunds

        <br><br>

        <b>NOTE:</b> This endpoint currently only supports Stripe for a refund channel. Customers with manual payments will cause an 400 error response.'
      parameters: []
      responses:
        '200':
          description: Refunds found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindCustomerRefundsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/enrollment:
    get:
      operationId: Get a Customer Enrollment
      summary: ''
      description: Get a Customer Enrollment
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      responses:
        '200':
          description: Enrollment Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerEnrollmentResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Customers
      security:
      - bearer: []
    put:
      operationId: Update Customer Offering Enrollment
      summary: ''
      description: Update Customer Enrollment
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerEnrollmentDto'
      responses:
        '200':
          description: Customer Enrollment Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCustomerRefundResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/payments:
    get:
      operationId: Get payments for customer
      summary: ''
      description: 'Get customer payments

        <br><br>

        <b>NOTE:</b> This endpoint currently only supports Stripe for a payment channel. Customers with manual payments will cause an 400 error response.'
      parameters:
      - name: invoiceId
        required: false
        in: query
        description: 'The Paigo invoiceId associated with the stripe payment. Can be undefined.

          This operation instructs paigo to search for payments with the given invoiceId in the metadata of the payment intent.

          <br><br>

          Example: `"476b84a0-bba7-4e05-9040-59cffdff493a"`'
        example: 476b84a0-bba7-4e05-9040-59cffdff493a
        externalDocs:
          url: https://docs.paigo.tech/invoice-and-process-payment/issue-invoice
          description: 'Paigo API Reference: Issue Invoice'
        schema:
          type: string
      responses:
        '200':
          description: Payments Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FindCustomerPaymentsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/stripePortal:
    get:
      operationId: Get Stripe Portal for customer
      summary: ''
      parameters: []
      responses:
        '200':
          description: Payments Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomerStripePortalResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/freeTrial:
    put:
      operationId: Update free trial
      summary: ''
      description: Update a free trial of a customer
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFreeTrialDto'
      responses:
        '200':
          description: Customer free trial updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateFreeTrialResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/usage:
    get:
      operationId: Get usage data for a customer
      summary: ''
      description: Get usage data for a customer
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      - name: aggregationInterval
        required: false
        in: query
        description: 'The aggregation interval to use for the query.

          <br><br>

          Default: the aggregation interval defined in the dimension definition.'
        schema:
          enum:
          - none
          - hour
          - day
          - month
          type: string
      - name: ignoreEnrollmentDate
        required: false
        in: query
        description: 'If the current offering enrollment date should be ignored for the response data. Enables looking at usage prior to the enrollment date.

          <br><br>

          Default: `false`'
        schema:
          type: string
      - name: aggregationPurpose
        required: false
        in: query
        description: 'The aggregation purpose to use for the query. Enum: `"billing"`, `"metering"`

          <br><br>

          Default: "billing"'
        schema:
          enum:
          - billing
          - metering
          type: string
      - name: endTime
        required: false
        in: query
        description: 'The end time of the time range to query.

          The time range is inclusive of the start time and exclusive of the end time.

          The end time must be after the start time.

          The end time must be before the current time.

          The end time must be in <a href="https://ijmacd.github.io/rfc3339-iso8601/">RFC3339</a> format.

          <br><br>

          Example: `"2020-01-01T00:00:00Z"`'
        schema:
          type: string
      - name: startTime
        required: false
        in: query
        description: 'The end time of the time range to query.

          The time range is inclusive of the start time and exclusive of the end time.

          The end time must be after the start time.

          The end time must be before the current time.

          The end time must be in <a href="https://ijmacd.github.io/rfc3339-iso8601/">RFC3339</a> format.

          <br><br>

          Example: `"2020-01-01T00:00:00Z"`'
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadCustomerUsageData'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/token:
    get:
      operationId: Get a customer auth token
      summary: ''
      description: Get a token to allow SaaS customers to view their billing data in paigo securely
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `248fc14e-9934-4d3c-a39f-ce43cbb3f7b2`'
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerAuthenticationTokenResponse'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: The error message
                    example: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error:
                    type: string
                    description: The error name
                    example: Not Found
                  statusCode:
                    type: number
                    description: The HTTP status code
                    example: 404
                    externalDocs:
                      description: MDN Documentation Reference
                      url: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
                example:
                  message: 'Customer with ID: 807867e0-26ca-4831-846b-a670224db055 not found'
                  error: Not Found
                  statusCode: 404
                required:
                - message
                - error
                - statusCode
      tags:
      - Customers
      security:
      - bearer: []
  /customers/{customerId}/transactions:
    post:
      operationId: Create a wallet transaction
      summary: ''
      description: Commit a transaction to the ledger for a customer. This will update thier credit balances
      parameters:
      - name: customerId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCreditDto'
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
      tags:
      - Customers
    get:
      operationId: Get customer credit ledger
      summary: ''
      description: Get the ledger of wallet transactions applied to a customer
      parameters:
      - name: customerId
        required: true
        in: path
        description: 'The unique identifier assigned by Paigo.<br><br> Example: `f8e8c18c-0a59-40f4-bf72-356090366355`'
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditLedgerResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicResponseDTO'
        '404':
          description: Customer Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
      tags:
      - Customers
components:
  schemas:
    UpdateFreeTrialDto:
      type: object
      properties:
        offeringId:
          type: string
        freeTrialEndDate:
          type: string
          description: 'The end date of the free trial. Must be in the future and must be an RFC3339 date string.

            <br><br>

            Example: `"2021-01-01T00:00:00Z"`'
          example: '2021-01-01T00:00:00Z'
        freeTrialStartDate:
          type: string
          description: 'The start date of the free trial. Must be in the future and must be an RFC3339 date string. Optional to set, determines the free trial start date for a customer.

            This is used during billing calculations to determine the proration amount for their free trial invoice.

            <br><br>

            Example: `"2021-01-01T00:00:00Z"`'
          example: '2017-01-01T00:00:00Z'
      required:
      - freeTrialEndDate
    KafkaDeploymentParametersDto:
      type: object
      properties:
        securityMechanism:
          type: string
          externalDocs:
            url: https://docs.confluent.io/platform/current/kafka/authentication_sasl/authentication_sasl_plain.html#sasl-plain-overview
          example: PLAIN
          description: 'The security protocol to use when connecting to the Kafka cluster. Defaults to `PLAIN`. Note this is not PLAINTEXT. PLAIN is the SASL_PLAIN protocol. <br><br> Example: `"PLAIN"`'
        username:
          type: string
          description: 'The username to use when connecting to the Kafka cluster. <br><br> Example: `"admin"`'
          example: admin
        password:
          type: string
          description: 'The password to use when connecting to the Kafka cluster. <br><br> Example: `"hunter2"`'
          example: hunter2
        bootstrapServerEndpoint:
          type: string
          description: 'The endpoint of the Kafka cluster to connect to. <br><br> Example: `"kafka.paigo.tech"`'
          example: kafka.paigo.tech
        topic:
          type: string
          description: 'The topic to subscribe to. <br><br> Example: `"test-topic"`'
          example: '"test-topic"'
        dlqTopic:
          type: string
          description: 'The DLQ topic to write to when a message fails to be processed. <br><br> Example: `"dlq-topic"`'
          example: '"dlq-topic"'
      required:
      - securityMechanism
      - username
      - password
      - bootstrapServerEndpoint
      - topic
      - dlqTopic
    InvoiceCommunicationHistory:
      type: object
      properties:
        time:
          type: string
          description: 'The RFC 3339 time of communication that was sent to the customer.

            <br><br>

            Example: `"2022-01-01T00:00:00.000Z"`'
          example: '2022-01-01T00:00:00.000Z'
        type:
          type: string
          description: 'The type of communication that was sent to the customer.

            <br><br>

            Example: `INVOICE_EMAIL`'
          example: INVOICE_EMAIL
          enum:
          - REMINDER_EMAIL
          - INVOICE_EMAIL
        metadata:
          type: object
          description: 'The metadata of the communication that was sent to the customer.

            <br><br>

            Example: `{"subject": "Invoice for January 2022"}`'
    CustomerContractDiscount:
      type: object
      properties:
        name:
          type: string
          example: Super Cool Discount
          description: The name of the discount. This will appear as is on the Invoice. <br><br> Example:`"Super Cool Discount"`
        percentage:
          type: string
          example: '10'
          description: 'The percentage of the discount. This will be used to calculate the discount amount. Must be between 0 and 100 (inclusive). <br><br> Example: `"10"`'
        endDate:
          type: string
          example: '2030-01-01T00:00:00Z'
          description: 'The end date of the discount. If not provided, the discount will be applied indefinitely. The date format should be an RFC3339 string. The discount will be applied to any generated invoice that has an invoice creation date before the discount end date. <br><br> Example: `"2030-01-01T00:00:00Z"`'
      required:
      - name
      - percentage
    NotFoundException:
      type: object
      properties: {}
    GetCustomerStripePortalResponse:
      type: object
      properties:
        message:
          type: string
          description: A human readable message describing the outcome of the operation
          example: This is a sample API message. The exact message may vary based on the API behavior
        portalUrl:
          type: string
          description: 'URL to a short-lived Stripe hosted portal session.

            Customers can be redirected to this URL to enter payment information.

            Example: `"https:

# --- truncated at 32 KB (112 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/paigo/refs/heads/main/openapi/paigo-customers-api-openapi.yml