Ascend Billables API

Represents an insurance quote or endorsement to be billed to the insured.

OpenAPI Specification

ascend-billables-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Ascend API V1 Accounts Billables API
  version: v1
  description: 'Ascend REST API for insurance financial operations: billing & invoicing, premium financing, payments, installment plans, insureds, programs, loans, payouts, and refunds.'
servers:
- url: https://sandbox.api.useascend.com
  description: Test server
- url: https://api.useascend.com
  description: Production server
tags:
- name: Billables
  description: Represents an insurance quote or endorsement to be billed to the insured.
paths:
  /v1/billables:
    post:
      summary: Create Billable
      tags:
      - Billables
      operationId: createBillable
      security:
      - bearer_auth: []
      parameters: []
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Billable'
        '400':
          description: Conflicting commission parameters
        '404':
          description: Record not Found
        '422':
          description: Not found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: An insurance quote or endorsement to be billed to the insured.
              properties:
                agency_fees_cents:
                  type: integer
                  minimum: 0
                  description: Fee collected by your agency or by your partner, if you are a MGA. Fully earned, not financeable, and will be funded directly to your agency or partner.
                attachments:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: The Attachment ID
                    required:
                    - id
                billable_identifier:
                  type: string
                  description: The identifier assigned to the quote/endorsement by the issuing carrier or wholesaler.
                broker_fee_cents:
                  type: integer
                  minimum: 0
                  description: Fee collected by the wholesaler. Fully earned, not financeable, and funded directly to the wholesaler.
                carrier_identifier:
                  type: string
                  description: The identifier of the carrier who issued this quote. Required when billable is of type quote. When the billable is an endorsement the carrier will be inherited from the parent billable.
                commission_terms:
                  type: array
                  deprecated: true
                  description: 'Deprecated: use `organization_account_commission_cents` or `organization_account_commission_rate` instead.'
                  items:
                    type: object
                    properties:
                      organization_account_id:
                        type: string
                        description: The organization account to receive the commission. If null the commission will be funded to your organization.
                      commission_cents:
                        type: number
                        format: integer
                        nullable: true
                        description: The commission amount for this entity in cents. One of `commission_cents` or `commission_rate` is required.
                      commission_rate:
                        type: number
                        format: float
                        nullable: true
                        description: The commission rate for this entity. One of `commission_cents` or `commission_rate` is required.
                coverage_identifier:
                  type: string
                  description: The identifier of coverage type the quote/endorsement covers.
                description:
                  type: string
                  description: For endorsements, add a short description to explain to the insured what is changing.
                effective_date:
                  type: string
                  format: date
                  description: 'The date upon the quote/endorsement goes into effect. Expected format: YYYY-MM-DD.'
                expiration_date:
                  type: string
                  format: datetime
                  description: 'The date when the quote/endorsement is no longer active. Expected format: YYYY-MM-DD'
                metadata:
                  type: object
                  description: Metadata to be associated with the billable. Keys cannot be longer than 40 characters, cannot contain [] or {}, and the entire metadata object must be less than 5kB.
                  nullable: true
                min_earned_rate:
                  type: number
                  format: float
                  description: If there is a mininum earned on the policy, this field is required.
                organization_account_commission_cents:
                  type: number
                  format: integer
                  nullable: true
                  description: For MGAs, set this field for your partner's commission amount. You must set one of `organization_account_commission_cents` or `organization_account_commission_rates`
                organization_account_commission_rate:
                  type: number
                  format: float
                  nullable: true
                  description: For MGAs, set this field for your partner's commission rate. You must set one of `organization_account_commission_cents` or `organization_account_commission_rates`
                organization_commission_cents:
                  type: number
                  format: integer
                  nullable: true
                  description: Your commission amount for this policy. If you're an agency, you must set one of `organization_commission_cents` or `organization_commission_rates`
                organization_commission_rate:
                  type: number
                  format: float
                  nullable: true
                  description: Your commission rate for this policy. If you're an agency, you must set one of `organization_commission_cents` or `organization_commission_rates`
                other_fees_cents:
                  type: integer
                  minimum: 0
                  description: Any additional fees that come with the policy. This fee is treated as non-refundable & fully earned.
                parent_billable_id:
                  type: string
                  format: uuid
                  description: To create a premium increasing endorsement, set this to the billable ID of the policy you are endorsing. Should only be used if the intent is to create a premium increasing endorsement.
                policy_fee_cents:
                  type: integer
                  minimum: 0
                  description: Any policy fees that come with the quote. This fee is treated as non-refundable & fully earned.
                policy_number:
                  type: string
                  description: The number assigned to the policy once it has been bound.
                premium_cents:
                  type: integer
                  minimum: 0
                  description: The amount to pay for the quote or endorsement.
                program_id:
                  type: string
                  format: uuid
                  description: The id of the program the billable should be a part of.
                seller_commission_amount_cents:
                  type: number
                  format: integer
                  nullable: true
                  description: 'Deprecated: use `organization_commission_cents` instead. Your commission amount for this policy. If you''re an agency, you must set one of `seller_commission_amount_cents` or `seller_commission_rate`. If MGA or Wholesaler, set commission_terms.'
                  deprecated: true
                seller_commission_rate:
                  type: number
                  format: float
                  nullable: true
                  description: 'Deprecated: use `organization_commission_rate` instead. Your commission rate for this policy. If you''re an agency, you must set one of `seller_commission_amount_cents` or `seller_commission_rate`. If MGA or Wholesaler, set commission_terms.'
                  deprecated: true
                surplus_lines_tax_cents:
                  type: integer
                  minimum: 0
                  description: 'If you are filing surplus lines taxes & fees, set this field. These fees are financeable and will be funded to you. Note: This field is only supported for organizations with surplus lines tax functionality enabled. Contact developers@useascend.com to enable this feature.'
                taxes_and_fees_cents:
                  type: integer
                  minimum: 0
                  description: Any taxes & unearned fees. Taxes and fees are financed.
                wholesaler_identifier:
                  type: string
                  description: The identifier of the wholesaler or MGA that issued this quote. Required if you're an MGA or Wholesaler. When the billable is an endorsement the wholesaler will be inherited from the parent billable.
              required:
              - billable_identifier
              - carrier_identifier
              - coverage_identifier
              - effective_date
              - expiration_date
              - premium_cents
              - program_id
              - billable_type
    get:
      summary: List Billables
      tags:
      - Billables
      operationId: listBillables
      security:
      - bearer_auth: []
      parameters:
      - name: program_id
        in: query
        required: false
        schema:
          type: string
          format: uuid
        description: Filter by the ID of the associated program
      - name: updated_at
        in: query
        style: deepObject
        explode: true
        description: Only return billables that were updated during the given date interval. The date should be defined as an ISO-8601 datetime.
        required: false
        schema:
          type: object
          properties:
            lt:
              type: string
              format: date-time
              description: Maximum value to filter by (exclusive).
            gte:
              type: string
              format: date-time
              description: Minimum value to filter by (inclusive).
      - name: created_at
        in: query
        style: deepObject
        explode: true
        description: Only return billables that were created during the given date interval. The date should be defined as an ISO-8601 datetime.
        required: false
        schema:
          type: object
          properties:
            lt:
              type: string
              format: date-time
              description: Maximum value to filter by (exclusive).
            gte:
              type: string
              format: date-time
              description: Minimum value to filter by (inclusive).
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Billable'
                  meta:
                    type: object
                    properties:
                      count:
                        type: integer
                      next:
                        type: string
                        nullable: true
                      prev:
                        type: string
                        nullable: true
  /v1/billables/{id}:
    parameters:
    - name: id
      in: path
      description: The billable identifier
      required: true
      schema:
        type: string
    delete:
      summary: Delete Billable
      tags:
      - Billables
      operationId: deleteBillable
      security:
      - bearer_auth: []
      responses:
        '204':
          description: Billable deleted
        '404':
          description: Billable not found
    get:
      summary: Get Billable
      tags:
      - Billables
      operationId: getBillable
      security:
      - bearer_auth: []
      responses:
        '200':
          description: Billable found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Billable'
        '404':
          description: Billable not found
    patch:
      summary: Update Billable
      tags:
      - Billables
      operationId: updateBillable
      security:
      - bearer_auth: []
      parameters: []
      responses:
        '200':
          description: Billable updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Billable'
        '400':
          description: Billable type does not belong in checkout session
        '404':
          description: Billable not found
        '422':
          description: Unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: An insurance quote or endorsement to be billed to the insured.
              properties:
                attachments:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        description: The Attachment ID
                    required:
                    - id
                agency_fees_cents:
                  type: integer
                  minimum: 0
                  description: Fee collected by your agency or by your partner, if you are a MGA. Fully earned, not financeable, and will be funded directly to your agency or partner.
                billable_identifier:
                  type: string
                  description: The identifier assigned to the quote/endorsement by the issuing carrier or wholesaler.
                broker_fee_cents:
                  type: integer
                  minimum: 0
                  description: Fee collected by the wholesaler. Fully earned, not financeable, and funded directly to the wholesaler.
                carrier_identifier:
                  type: string
                  description: The identifier of the carrier who issued this quote. Required when billable is of type quote. When the billable is an endorsement the carrier will be inherited from the parent billable.
                commission_terms:
                  type: array
                  deprecated: true
                  description: 'Deprecated: use `organization_account_commission_cents` or `organization_account_commission_rate` instead.'
                  items:
                    type: object
                    properties:
                      organization_account_id:
                        type: string
                        description: The account to receive the commission. If null the commission will be funded to your organization.
                      commission_cents:
                        type: number
                        format: integer
                        description: The commission amount for this entity in cents. One of `commission_cents` or `commission_rate` is required.
                      commission_rate:
                        type: number
                        format: float
                        description: The commission rate for this entity.
                coverage_identifier:
                  type: string
                  description: The identifier of coverage type the quote/endorsement covers.
                description:
                  type: string
                  description: A short description to explain to the insured what they are purchasing.
                effective_date:
                  type: string
                  format: date
                  description: 'The date upon the quote/endorsement goes into effect. Expected format: YYYY-MM-DD.'
                expiration_date:
                  type: string
                  format: datetime
                  description: 'The date when the quote is no longer active. Expected format: YYYY-MM-DD.'
                is_auditable:
                  type: boolean
                  description: Determines if the carrier can audit customer raising premium significantly. Cannot be set when billable is of type endorsement.
                is_filed:
                  type: boolean
                  description: Determines if specific lines of business are filed with other bureaus which they have to notify on cancelation. Cannot be set when billable is of type endorsement.
                is_short_rate:
                  type: boolean
                  description: Determines if the policy is fined by 10% on top of earned premium when insured cancels. Cannot be set when billable is of type endorsement.
                metadata:
                  type: object
                  description: Metadata to be associated with the billable. Keys cannot be longer than 40 characters, cannot contain [] or {}, and the entire metadata object must be less than 5kB.
                  nullable: true
                min_days_to_cancel:
                  type: integer
                  description: Set state determined extended cancelation period for the policy.
                min_earned_rate:
                  type: number
                  format: float
                  description: The minimum rate to charge insureds when they decide to finance.
                organization_account_commission_cents:
                  type: number
                  format: integer
                  nullable: true
                  description: For MGAs, set this field for your partner's commission amount. You must set one of `organization_account_commission_cents` or `organization_account_commission_rates`
                organization_account_commission_rate:
                  type: number
                  format: float
                  nullable: true
                  description: For MGAs, set this field for your partner's commission rate. You must set one of `organization_account_commission_cents` or `organization_account_commission_rates`
                organization_commission_cents:
                  type: number
                  format: integer
                  nullable: true
                  description: Your commission amount for this policy. If you're an agency, you must set one of `organization_commission_cents` or `organization_commission_rates`
                organization_commission_rate:
                  type: number
                  format: float
                  nullable: true
                  description: Your commission rate for this policy. If you're an agency, you must set one of `organization_commission_cents` or `organization_commission_rates`
                other_fees_cents:
                  type: integer
                  minimum: 0
                  description: Any additional fees that come with the policy. This fee is treated as non-refundable & fully earned.
                parent_billable_id:
                  type: string
                  format: uuid
                  description: The id of the billable to be endorsed.
                policy_fee_cents:
                  type: integer
                  minimum: 0
                  description: Any policy fees that come with the quote. This fee is treated as non-refundable & fully earned.
                policy_number:
                  type: string
                  description: The number assigned to the policy once it has been bound.
                premium_cents:
                  type: integer
                  minimum: 0
                  description: The amount to pay for the quote or endorsement.
                seller_commission_amount_cents:
                  type: number
                  format: integer
                  nullable: true
                  description: 'Deprecated: use `organization_commission_cents` instead. Your commission amount for this policy. If you''re an agency, you must set one of `seller_commission_amount_cents` or `seller_commission_rate`. If MGA or Wholesaler, set commission_terms.'
                  deprecated: true
                seller_commission_rate:
                  type: number
                  format: float
                  nullable: true
                  description: 'Deprecated: use `organization_commission_rate` instead. Your commission rate for this policy. If you''re an agency, you must set one of `seller_commission_amount_cents` or `seller_commission_rate`. If MGA or Wholesaler, set commission_terms.'
                  deprecated: true
                taxes_and_fees_cents:
                  type: integer
                  minimum: 0
                  description: Any taxes & unearned fees. Taxes and fees are financed.
                surplus_lines_tax_cents:
                  type: integer
                  minimum: 0
                  description: 'If you are filing surplus lines taxes & fees, set this field. These fees are financeable and will be funded to you. Note: This field is only supported for organizations with surplus lines tax functionality enabled. Contact developers@useascend.com to enable this feature.'
                wholesaler_identifier:
                  type: string
                  description: The identifier of the wholesaler that issued this quote. When the billable is an endorsement the wholesaler will be inherited from the parent billable.
components:
  schemas:
    Wholesaler:
      type: object
      description: An insurance wholesaler or MGA.
      properties:
        identifier:
          type: string
          description: A human readable unique identifier.
        title:
          type: string
          description: The wholesaler display name.
        mailing_address_street_one:
          type: string
          description: Mailing Street address
          nullable: true
        mailing_address_street_two:
          type: string
          description: Suite or unit
          nullable: true
        mailing_address_city:
          type: string
          description: Mailing city
          nullable: true
        mailing_address_state:
          $ref: '#/components/schemas/StateAnsiCodes'
          nullable: true
        mailing_address_zip_code:
          type: string
          description: Mailing zip code
          nullable: true
    Billable:
      type: object
      description: An insurance quote or endorsement to be billed to the insured.
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier for the billable.
        agency_fees_cents:
          type: integer
          minimum: 0
          description: Fee collected by your agency. Fully earned, not financeable, and funded directly to your agency.
        billable_identifier:
          type: string
          description: The identifier assigned to the quote/endorsement by the issuing carrier or wholesaler.
        broker_fee_cents:
          type: integer
          minimum: 0
          description: Fee collected by the wholesaler. Fully earned, not financeable, and funded directly to the wholesaler.
        carrier:
          $ref: '#/components/schemas/Carrier'
        description:
          type: string
          nullable: true
          description: A short description to explain to the insured what they are purchasing.
        coverage_type:
          $ref: '#/components/schemas/CoverageType'
        effective_date:
          type: string
          format: date
          description: 'The date upon the billable goes into effect. Expected format: YYYY-MM-DD.'
        expiration_date:
          type: string
          format: date
          nullable: true
          description: 'The date when the billable is no longer active. Expected format: YYYY-MM-DD.'
        documents:
          type: array
          description: A collection of documents associated with the billable.
          items:
            type: object
            properties:
              title:
                type: string
                description: The display name of the static asset.
                nullable: true
              url:
                type: string
                description: The url to access the static asset.
        is_auditable:
          type: boolean
          description: Determines if the carrier can audit customer raising premium significantly.
        is_filed:
          type: boolean
          description: Determines if specific lines of business are filed with other bureaus which they have to notify on cancelation.
        is_short_rate:
          type: boolean
          description: 'Determines if the policy is fined by 10% on top of earned premium when insured cancels '
        min_days_to_cancel:
          type: integer
          description: Set state determined extended cancelation period for the policy.
        min_earned_rate:
          type: number
          format: float
          description: The minimum rate to charge insureds when they decide to finance.
        other_fees_cents:
          type: integer
          description: Any additional fees that come with the policy. This fee is treated as non-refundable & fully earned.
        parent_billable_id:
          type: string
          nullable: true
          format: uuid
          description: The unique identifier for the parent billable.
        policy_fee_cents:
          type: integer
          description: Any policy fees that come with the billable. This fee is treated as non-refundable & fully earned.
        policy_number:
          type: string
          nullable: true
          description: The number assigned to the policy once it has been bound.
        premium_cents:
          type: integer
          description: The amount to pay for the insurance policy.
        seller_commission_amount_cents:
          type: number
          format: integer
          description: Your commission amount for this policy.
        seller_commission_rate:
          type: number
          format: float
          nullable: true
          description: Your commission rate for this policy.
        commission_terms:
          type: array
          items:
            type: object
            properties:
              organization_account_id:
                type: string
                description: The organization account to receive the commission. If null the commission will be funded to your organization.
              commission_cents:
                type: number
                description: The commission amount for this entity in cents.
        taxes_and_fees_cents:
          type: integer
          description: Any taxes & unearned fees. Taxes and fees are financed.
        program_id:
          type: string
          format: uuid
          description: The id of the program the billable should be a part of.
        surplus_lines_tax_cents:
          type: integer
          description: The amount of surplus lines tax to be collected.
        wholesaler:
          nullable: true
          allOf:
          - $ref: '#/components/schemas/Wholesaler'
        metadata:
          type: object
          description: Metadata associated with the billable.
          nullable: true
    CoverageType:
      type: object
      description: A type of coverage.
      properties:
        identifier:
          type: string
          description: A human readable unique identifier.
        title:
          type: string
          description: The coverage type display name.
    StateAnsiCodes:
      type: string
      description: 'A US State represented with their ANSI code. For ex: California = CA'
      enum:
      - AK
      - AL
      - AR
      - AS
      - AZ
      - CA
      - CO
      - CT
      - DC
      - DE
      - FL
      - GA
      - GU
      - HI
      - IA
      - ID
      - IL
      - IN
      - KS
      - KY
      - LA
      - MA
      - MD
      - ME
      - MI
      - MN
      - MO
      - MP
      - MS
      - MT
      - NC
      - ND
      - NE
      - NH
      - NJ
      - NM
      - NV
      - NY
      - OH
      - OK
      - OR
      - PA
      - PR
      - RI
      - SC
      - SD
      - TN
      - TX
      - UM
      - UT
      - VA
      - VI
      - VT
      - WA
      - WI
      - WV
      - WY
    Carrier:
      type: object
      description: An insurance company.
      properties:
        identifier:
          type: string
          description: A human readable unique identifier.
        title:
          type: string
          description: The carrier display name.
        mailing_address_street_one:
          type: string
          description: Mailing Street address
          nullable: true
        mailing_address_street_two:
          type: string
          description: Suite or unit
          nullable: true
        mailing_address_city:
          type: string
          description: Mailing city
          nullable: true
        mailing_address_state:
          $ref: '#/components/schemas/StateAnsiCodes'
          nullable: true
        mailing_address_zip_code:
          type: string
          description: Mailing zip code
          nullable: true
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer