Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
breakoutModewide
languagejson
openapi: 3.0.3
info:
  description: ">
    ## Overview\nTax

    Tax registration number validate is a Service Provider\
    \ Interface (SPI) that
    helps Chargebee communicate with API platforms providing\ the  following
 \ the following services:\n

    - Validate tax registration number\n-

Validate tax\   - Validate \tax registration numbers in batch\n\nIf


    If you have an API that provides the services\ mentioned above and want
\ mentioned above and want Chargebee to be able to integrate with it, you can\ build an adapter  \service
build an adapter service according to this specification.\n\n## Terminology\n\


    ## Terminology

    Here's a list of terms we've used to describe this specification.\n###

    ### Merchant\ 
   \ \n  Chargebee’s customer who is carrying out the business of selling products.\     \ Also known as the Seller. The Seller has one or more Chargebee accounts.\n###\
    \### Chargebee 
    \n The SaaS which manages subscriptions and revenue operations on\     \ behalf of the Merchant. Chargebee makes API calls to the Tax Service Adapter\     \ for tax estimation and tax filing of transactions between the Merchant and the\ Customer.
    \### Customer.\n### Customer \nMerchant’s 

    Merchant’s customer who purchases products from the\ Merchant. Their customer
 \ Merchant. Their customer record(s) and other details are stored within Chargebee\ under the Merchant’s
 \ under the Merchant’s account.\n###

    ### Service Provider\nThe

service which provides\  The service which \provides services for merchants.\n###

    ### Service Adapter \nThe

    The SPI for which the spec is\
    \ defined in this document. This adapter serves
    the following purposes:\n-
Translates\
    \- Translates API requests (as defined in this document) from Chargebee to
the request format\  the request  \format specified by the Service Provider's API.\n-

Translates API responses from the\- Translates API responses from \the Service Provider APIs to the format
    understood by Chargebee (as defined in this\ document).

   \ document).\n###### Authorization\nChargebee

    Chargebee uses HTTP header-based authorization\
    \ for all the API endpoints
    associated with Service Adapter. We dynamically pass\ this authorization key
 \ this authorization key in the HTTP header. The parameter that holds this key\     \ is found in the JSON
    object `api_configuration` required for configuring your\ onboarding  on
 \ onboarding on Chargebee's marketplace. In the `api_configuration` object, our\ [Taxes
   \ [Taxes Service Adapter SPI](https://chargebee.atlassian.net/l/cp/ca5aZ1mA) checks\
    \ the authorization key parameter from `credential_configuration.id` and creates\
    \creates the HTTP header-based input query parameter for authorization. The
`credential_configuration`\     \`credential_configuration` is an array of objects with an `id` attribute,
    and the value of `id` is the\
    \ parameter containing the authorization key.\n
      
    \n  Following are the JSON snippets\ for your reference.
      \
for your reference.\n  \n   ```json\n
          \"api_configuration\": {\n
     \     \    \"api_base_url\": \"https://xyz.abc.com/chargebee\",\n
              \"credential_configuration\"\: [ 
  : [ \n            {\n
                  \"id\":\"authorization_key\",\n
          \     \   \"name\": \"Authorization Key\", \n 
                  \"type\": \"text\",\n
  \     \           \"is_sensitive\": true \n
                },\n
                {\n
        \     \     \"id\": \"client_secret\",\n
                  \"name\": \"Client Secret\",\n\
    \              \"type\": \"text\",\n
                  \"is_sensitive\": true\n
  \     \         }\n
              ]\n
            }\n
       ```\n"
  title: Tax Registration Number Validation Service Adapter SPI
  version: 0.0.1
servers:
  - description: Production SPI server.
    url: 'https://rest.taxes.provider.com/api/v1'
  - description: Sandbox SPI server..
    url: 'https://sandbox.taxes.provider.com/api/v1'
security:
  - bearerAuth: []
  - apiKey: []
tags:
  - description: >-
      Endpoints to validate the credentials used for calling the Service
      Provider.
    name: Authentication
  - description: >-
      Endpoints to monitor the health of the Service Provider and the Service
      Adapter.
    name: Health
  - description: Endpoints to validate the tax registration number(s).
    name: TrnValidate
paths:
  /health:
    get:
      description: >-
        This endpoint is used to fetch the health status of the Service
        Provider.
      operationId: fetchHealth
      responses:
        "'200"':
          content:
            application/json:
              example:
                status: UP
                version: 1.0.0
                description: The service is healthy.
                components:
                  - id: app-db-memory
                    name: Application Database
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: UP
                  - id: service-server
                    name: API Server
                    type: API
                    status: UP
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is healthy.
        "'429"':
          description: Too many requests.
        "'500"':
          content:
            application/json:
              examples:
                Error500:
                  $ref: '#/components/examples/Error500Response'
              schema:
                $ref: '#/components/schemas/BasicErrorResponse'
          description: Unexpected error while processing request.
        "'503"':
          content:
            application/json:
              example:
                status: DOWN
                version: 1.0.0
                description: The service is unhealthy. Several components are down.
                components:
                  - id: app-db-memory
                    name: Application Database Memory Usage
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: DOWN
                  - id: service-server
                    name: API Server
                    type: API
                    status: DOWN
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is unhealthy.
      security:
        - {}
      summary: Fetch the health status of the Service Provider.
      tags:
        - Health
      x-accepts: application/json
  /credentials/validate:
    post:
     post description: >-
      description:  This endpoint is used to validate the credentials used to call the
       the Service Provider.
      operationId: validateCredentials
      responses:
        "'200"':
          content:
            application/json:
              example:
                status: VALID
              schema:
                $ref: '#/components/schemas/CredentialValidationResponse'
          description: Authentication succeeded.
        "'401"':
          content:
            application/json:
              example:
                status: INVALID
              schema:
                $ref: '#/components/schemas/CredentialValidationResponse'
          description: Authentication failed.
        "'429"':
          description: Too many requests.
        "'500"':
          content:
            application/json:
              examples:
                Error500:
                  $ref: '#/components/examples/Error500Response'
              schema:
                $ref: '#/components/schemas/BasicErrorResponse'
          description: Unexpected error while processing request.
        "'503"':
          content:
            application/json:
              example:
                status: DOWN
                version: 1.0.0
                description: The service is unhealthy. Several components are down.
                components:
                  - id: app-db-memory
                    name: Application Database Memory Usage
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: DOWN
                  - id: service-server
                    name: API Server
                    type: API
                    status: DOWN
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is unhealthy.
      summary: Validate credentials
      tags:
        - Authentication
      x-accepts: application/json
  /trn/validate:
    post:
      description: This endpoint takes the details of tax registration number and         validate.
      operationId: trnValidate
      requestBody:
        content:
          application/json:
            examples:
              TrnValidateRequest:
                $ref: '#/components/examples/TrnValidateRequest'
              TrnValidateRequestAdditional:
                $ref: '#/components/examples/TrnValidateRequestAdditional'
            schema:
              $ref: '#/components/schemas/TrnValidateRequest'
      responses:
        "'200"':
          content:
            application/json:
              examples:
                TrnValidateResponse:
                  $ref: '#/components/examples/TrnValidateResponse'
                TrnValidateResponseAdditional:
                  $ref: '#/components/examples/TrnValidateResponseAdditional'
              schema:
                $ref: '#/components/schemas/TrnValidateResponse'
          description: >-
            Request to validate the tax registration number submitted
            successfully.
        "'400"':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrnValidateErrorResponse'
          description: Bad request.
        "'401"':
          description: Unauthenticated request.
        "'403"':
          description: Unauthorized request.
        "'429"':
          description: Too many requests.
        "'500"':
          content:
            application/json:
              examples:
                Error500:
                  $ref: '#/components/examples/Error500Response'
              schema:
                $ref: '#/components/schemas/BasicErrorResponse'
          description: Unexpected error while processing request.
        "'503"':
          content:
            application/json:
              example:
                status: DOWN
                version: 1.0.0
                description: The service is unhealthy. Several components are down.
                components:
                  - id: app-db-memory
                    name: Application Database Memory Usage
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: DOWN
                  - id: service-server
                    name: API Server
                    type: API
                    status: DOWN
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is unhealthy.
      summary: Validate the tax registration number
      tags:
        - TrnValidate
      x-content-type: application/json
      x-accepts: application/json
  '/trn/validate/{requestId}':
    get:
      description: >-
        This endpoint takes the request id and returns the response of the tax
      the tax registration number
      operationId: fetchTrnValidate
      parameters:
        - description: The unique request identifier.
          explode: false
          in: path
          name: requestId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "'200"':
          content:
            application/json:
              examples:
                TrnValidateResponse:
                  $ref: '#/components/examples/TrnValidateResponse'
              schema:
                $ref: '#/components/schemas/TrnValidateResponse'
          description: Response of tax registration number validation.
        "'401"':
          description: Unauthenticated request.
        "'403"':
          description: Unauthorized request.
        "'404"':
          description: Not found.
        "'429"':
          description: Too many requests.
        "'500"':
          content:
            application/json:
              examples:
                Error500:
                  $ref: '#/components/examples/Error500Response'
              schema:
                $ref: '#/components/schemas/BasicErrorResponse'
          description: Unexpected error while processing request.
        "'503"':
          content:
            application/json:
              example:
                status: DOWN
                version: 1.0.0
                description: The service is unhealthy. Several components are down.
                components:
                  - id: app-db-memory
                    name: Application Database Memory Usage
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: DOWN
                  - id: service-server
                    name: API Server
                    type: API
                    status: DOWN
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is unhealthy.
      summary: Get the response of tax registration number validate request
      tags:
        - TrnValidate
      x-accepts: application/json
  /trn/validate/batch:
    post:
      description: This endpoint takes the batch of tax registration numbers and validate.
      operationId: trnValidateBatch
      requestBody:
        content:
          application/json:
            examples:
              TrnValidateBatchRequest:
                $ref: '#/components/examples/TrnValidateBatchRequest'
              TrnValidateBatchRequestAdditional:
                $ref: '#/components/examples/TrnValidateBatchRequestAdditional'
            schema:
              $ref: '#/components/schemas/TrnValidateBatchRequest'
      responses:
        "'200"':
          content:
            application/json:
              examples:
                TrnValidateBatchResponse:
                  $ref: '#/components/examples/TrnValidateBatchResponse'
              schema:
                $ref: '#/components/schemas/TrnValidateBatchResponse'
          description: '#/components/schemas/TrnValidateBatchResponse' >-
           description: Request to validate the batch of tax registration numbers being
            processed.
        "'400"':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrnValidateErrorResponse'
          description: Bad request.
        "'401"':
          description: Unauthenticated request.
        "'403"':
          description: Unauthorized request.
        "'429"':
          description: Too many requests.
        "'500"':
          content:
            application/json:
              examples:
                Error500:
                  $ref: '#/components/examples/Error500Response'
              schema:
                $ref: '#/components/schemas/BasicErrorResponse'
          description: Unexpected error while processing request.
        "'503"':
          content:
            application/json:
              example:
                status: DOWN
                version: 1.0.0
                description: The service is unhealthy. Several components are down.
                components:
                  - id: app-db-memory
                    name: Application Database Memory Usage
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: DOWN
                  - id: service-server
                    name: API Server
                    type: API
                    status: DOWN
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is unhealthy.
      summary: Validate the tax registration numbers in batch
      tags:
        - TrnValidate
      x-content-type: application/json
      x-accepts: application/json
  '/trn/validate/batch/{batchId}':
    delete:
      description: >-
        This endpoint takes the batch id and delete the running batch of tax
       tax registration numbers validation request at server side.
      operationId: deleteTrnValidateBatch
      parameters:
        - description: The unique batch request identifier.
          in: path
          name: batchId
          required: true
          schema:
            type: string
      responses:
        "'200"':
          content:
            application/json:
              examples:
                BatchTrnValidateDeleteResponse:
                  $ref: '#/components/examples/TrnValidateBatchDeleteResponse'
              schema:
                $ref: '#/components/schemas/TrnValidateBatchDeleteResponse'
          description: >-
            Successfully deleted the request of batch of tax registration
            numbers validation.
        "'401"':
          description: Unauthenticated request.
        "'403"':
          description: Unauthorized request.
        "'404"':
          description: Not found.
        "'429"':
          description: Too many requests.
        "'500"':
          content:
            application/json:
              examples:
                Error500:
                  $ref: '#/components/examples/Error500Response'
              schema:
                $ref: '#/components/schemas/BasicErrorResponse'
          description: Unexpected error while processing request.
        "'503"':
          content:
            application/json:
              example:
                status: DOWN
                version: 1.0.0
                description: The service is unhealthy. Several components are down.
                components:
                  - id: app-db-memory
                    name: Application Database Memory Usage
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: DOWN
                  - id: service-server
                    name: API Server
                    type: API
                    status: DOWN
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is unhealthy.
      summary: Delete the request of batch of tax registration numbers validation
      tags:
        - TrnValidate
      x-accepts: application/json
    get:
      description: >-
        This endpoint takes the batch id and returns the response of batch of
       of tax registration numbers.
      operationId: fetchTrnValidateBatch
      parameters:
        - description: The unique batch request identifier.
          in: path
          name: batchId
          required: true
          schema:
            type: string
        - description: The starting index of records to be returned.
          in: query
          name: offset
          required: true
          schema:
            default: 0
            type: integer
        - description: The limit number of records to be returned.
          in: query
          name: limit
          required: true
          schema:
            default: 100
            type: integer
      responses:
        "'200"':
          content:
            application/json:
              examples:
                TrnValidateResponse:
                  $ref: '#/components/examples/TrnValidateBatchResponse'
              schema:
                $ref: '#/components/schemas/TrnValidateBatchResponse'
          description: Response of the batch of tax registration numbers validation.
        "'401"':
          description: Unauthenticated request.
        "'403"':
          description: Unauthorized request.
        "'404"':
          description: Not found.
        "'429"':
          description: Too many requests.
        "'500"':
          content:
            application/json:
              examples:
                Error500:
                  $ref: '#/components/examples/Error500Response'
              schema:
                $ref: '#/components/schemas/BasicErrorResponse'
          description: Unexpected error while processing request.
        "'503"':
          content:
            application/json:
              example:
                status: DOWN
                version: 1.0.0
                description: The service is unhealthy. Several components are down.
                components:
                  - id: app-db-memory
                    name: Application Database Memory Usage
                    type: DATABASE
                    status: UP
                  - id: adapter-server
                    name: Adapter API Server
                    type: ADAPTER
                    status: DOWN
                  - id: service-server
                    name: API Server
                    type: API
                    status: DOWN
                time: 2022-11-01T1001T05:4212:08.131+05:30131Z
              schema:
                $ref: '#/components/schemas/HealthCheckResponse'
          description: Service is unhealthy.
      summary: Get the response of batch of tax registration numbers
      tags:
        - TrnValidate
      x-accepts: application/json
components:
  examples:
    TrnValidateRequest:
      description: >-
        Request with minimal details required to validate the tax registration
        number.
      value:
        trn: 40303265045
        country:
          code: FR
    TrnValidateRequestAdditional:
      description: Request with more details to validate the tax registration number.
      value:
        trn: 40303265045
        country:
          code: FR
        trnType: VAT
        externalId: cb-request-id
        validOn: '10-09-2023 00:00:00'
        requesterTrn: FR12345678
    TrnValidateResponse:
      description: Response with minimal details of tax registration number validation.
      value:
        requestId: qwerty12345
        trn: 40303265045
        country:
          name: France
          code: FR
        trnStatus: VALID
    TrnValidateResponseAdditional:
      description: Response with more details about tax registration number.
      value:
        requestId: qwerty12345
        trn: 40303265045
        country:
          name: France
          code: FR
        trnStatus: VALID
        name: Company Name
        businessStatus: Active
        isBusiness: true
        address: "'12, Company Road"'
        externalId: cb-request-id
    TrnValidateBatchRequest:
      description: >-
        Request with minimal details required to validate the batch of tax
       tax registration numbers.
      value:
        batchName: x-trn-batch
        trns:
          - trn: 40303265045
            country:
              code: FR
          - trn: 50303265045
            country:
              code: UK
    TrnValidateBatchRequestAdditional:
      description: >-
        Request with more details to validate the batch of tax registration
        numbers.
      value:
        batchName: x-trn-batch
        externalId: cb-request-id
        trns:
          - trn: 40303265045
            country:
              code: FR
            trnType: VAT
            externalId: cb-request-id
            validOn: '10-09-2023 00:00:00'
            requesterTrn: FR12345678
          - trn: 50303265045
            country:
              code: FR
            trnType: VAT
            externalId: cb-request-id
            validOn: '10-09-2023 00:00:00'
            requesterTrn: FR12345678
    TrnValidateBatchResponse:
      description: Response with minimal details of tax registration number request.
      value:
        batchId: qwerty12345
        batchName: x-trn-batch
        status: COMPLETED
        limit: 100
        offset: 0
        completionPercentage: 100
        trns:
          - trn: 40303265045
            trnStatus: VALID
            country:
              name: France
              code: FR
          - trn: 50303265045
            trnStatus: VALID
            country:
              name: The united kingdom
              code: UK
    TrnValidateBatchDeleteResponse:
      description: >-
        Response with required details of deleting batch of tax registration
        numbers validation.
      value:
        batchId: qwerty12345
        message: successfully deleted
    Error500Response:
      description: Unexpected error during processing the request.
      summary: Unexpected error.
      value:
        message: Unexpected error during processing the request.
  parameters:
    RequestIdPathParam:
      description: The unique request identifier.
      explode: false
      in: path
      name: requestId
      required: true
      schema:
        type: string
      style: simple
    BatchIdPathParam:
      description: The unique batch request identifier.
      in: path
      name: batchId
      required: true
      schema:
        type: string
    OffsetQueryParam:
      description: The starting index of records to be returned.
      in: query
      name: offset
      required: true
      schema:
        default: 0
        type: integer
    LimitQueryParam:
      description: The limit number of records to be returned.
      in: query
      name: limit
      required: true
      schema:
        default: 100
        type: integer
  responses:
    Error400TrnValidate:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TrnValidateErrorResponse'
      description: Bad request.
    Error429:
      description: Too many requests.
    Error500:
      content:
        application/json:
          examples:
            Error500:
              $ref: '#/components/examples/Error500Response'
          schema:
            $ref: '#/components/schemas/BasicErrorResponse'
      description: Unexpected error while processing request.
    Error503:
      content:
        application/json:
          example:
            status: DOWN
            version: 1.0.0
            description: The service is unhealthy. Several components are down.
            components:
              - id: app-db-memory
                name: Application Database Memory Usage
                type: DATABASE
                status: UP
              - id: adapter-server
                name: Adapter API Server
                type: ADAPTER
                status: DOWN
              - id: service-server
                name: API Server
                type: API
                status: DOWN
            time: 2022-11-01T1001T05:4212:08.131+05:30131Z
          schema:
            $ref: '#/components/schemas/HealthCheckResponse'
      description: Service is unhealthy.
    Error401:
      description: Unauthenticated request.
    Error403:
      description: Unauthorized request.
    Error404:
      description: Not found.
  schemas:
    TrnValidateRequest:
      additionalProperties: false
      description: >-
        Contains the required properties for tax registration number validation
        request
      example:
        trn: trn
        country:
          code: code
          name: name
        taxOfficeCode: taxOfficeCode
        validOn: validOn
        requesterTrn: requesterTrn
        name: name
        externalId: externalId
        trnType: null
      properties:
        trn:
          description: Tax registration number
          type: string
        country:
          $ref: '#/components/schemas/Country'
        trnType:
          $ref: '#/components/schemas/TrnType'
        name:
          description: Name of the tag registration number owner
          type: string
        validOn:
          description: Validate tax registration number on given date
          format: 'dd-mm-yyyy HH:mm:ss'
          type: string
        requesterTrn:
          description: >-
            Tax registration number of the entity or person who is requesting
            validation
          type: string
        taxOfficeCode:
          description: " >-
            Code of the tax office, some country need it to validate tax\
            \ registration number"
          type: string
        externalId:
          description: ">-
            Way to relate the request and response, if passed then the\ same
           \ same value should be returned in response"
          type: string
      required:
        - country
        - trn
      type: object
    TrnValidateResponse:
      description: >-
        Contains the required properties for tax registration number validation
        response
      example:
        trn: trn
        country:
          code: code
          name: name
        validationDataSource: validationDataSource
        address: address
        requestId: requestId
        isBusiness: true
        name: name
        externalId: externalId
        trnStatus: null
        isRegistered: true
        businessStatus: null
        message: message
      properties:
        requestId:
          description: ">-
            Unique id of the request, this is to refer later to fetch\ the
           \ the response."
          type: string
        trn:
          description: Tax registration number
          type: string
        country:
          $ref: '#/components/schemas/Country'
        name:
          description: >-
            Name of the entity(may be an individual or a business company) who
           who owns the tax registration number
          type: string
        address:
          description: >-
 address:           description: Address of the entity(may be an individual or a business company)
            who owns the tax registration number
          type: string
        trnStatus:
          $ref: '#/components/schemas/TrnStatus'
        isBusiness:
          description: >-
            Indicates that tax registration number belong to a business entity
           entity or not.
          type: boolean
        isRegistered:
          description: Indicates that tax registration number is registered or not
          type: boolean
        businessStatus:
          $ref: '#/components/schemas/BusinessStatus'
        validationDataSource:
          description: " >-
            Indicates name of the source of tax registration number validation\
            \ (like database, vies)"
          type: string
        externalId:
          description: The externalId passed in the request
          type: string
        message:
          description: Any message about tax registration number validation request
          type: string
      required:
        - country
      - requestId       - trn
      type: object
    TrnValidateBatchRequest:
      allOf:
        - $ref: '#/components/schemas/BatchRequest'
        - description: >-
            Contains required properties for batch of tax registration numbers
            validation request
          properties:
            trns:
              description: List of tax registration numbers
              items:
                $ref: '#/components/schemas/TrnValidateRequest'
              type: array
          required:
            - trns
          type: object
    TrnValidateBatchResponse:
      allOf:
        - $ref: '#/components/schemas/BatchResponse'
        - description: >-
            Contains the required properties for batch of tax registration
            numbers validation response
          properties:
            trns:
              description: List of tax registration numbers
              items:
                $ref: '#/components/schemas/TrnValidateResponse'
              type: array
          required:
            - trns
          type: object
    TrnValidateBatchDeleteResponse:
      allOf:
        - $ref: '#/components/schemas/BatchDeleteResponse'
    Country:
      description: Defines the required properties to hold information about Country
      example:
        code: code
        name: name
      properties:
        name:
          description: Name of the country
          type: string
        code:
          description: Code of the country
          format: ISO
          type: string
      required:
        - code
      type: object
    TrnStatus:
      description: Indicates status of the tax registration number.
      enum:
        - VALID
        - INVALID
        - UNKNOWN
      type: string
    TrnType:
      description: Indicates the type of the tax registration number.
      enum::
        - INDIVIDUAL
        - BUSINESS
        - GST
        - VAT
        - ENTITY
        - UNKNOWN
      type: string
    BusinessStatus:
      description: Indicate the status of the business of tax registration number.
      enum:
        - ACTIVE
        - INACTIVE
        - UNKNOWN
      type: string
    TrnValidateErrorResponse:
      description: >-
        Defined the structure for validation error of tax registration number
       number validation.
      properties:
        errors:
          items:
            $ref: '#/components/schemas/TrnValidateErrorResponse_errors_inner'
          type: array
      required:
        - errors
      type: object
    HealthCheckResponse:
      example:
        components:
          - endpoints:
              - endpoints
              - endpoints
            name: name
            description: description
            id: id
            type: OTHER
            status: null
          - endpoints:
              - endpoints
              - endpoints
            name: name
            description: description
            id: id
            type: OTHER
            status: null
        description: description
        time: 2000-01-23T04:56:07.000+00:00000Z
        version: version
        status: null
      properties:
        version:
          minLength: 1
          type: string
        description:
          description: >-
            The description of the health status returned by the Service
            Adapter.
          maxLength: 250
          type: string
        status:
          $ref: '#/components/schemas/HealthStatus'
        components:
          description: >-
            List of health status details for each component reported by the
           the Service Adapter.
          items:
            $ref: '#/components/schemas/HealthCheckComponent'
          type: array
        time:
          description: The timestamp of the health status reported by the Service             Adapter.
          format: date-time
          type: string
      required:
        - components
        - status
        - time
      type: object
    HealthStatus:
      description: The status of a specific component reported by the Service Adapter.
      enum:
        - UP
        - DOWN
        - WARN
      type: string
    HealthCheckComponent:
      description: >-
        The health status details of a specific component reported by the
        Service Adapter.
      example:
        endpoints:
          - endpoints
          - endpoints
        name: name
        description: description
        id: id
        type: OTHER
        status: null
      properties:
        id:
          description: The id of the component.
          maxLength: 50
          type: string
        name:
          description: The name of the component.
          maxLength: 150
          type: string
        type:
          description: |>
            The type of component affected when `status` is `WARN` or `DOWN`.
            The possible values are:

            - `ADAPTER`: The reported status is for the Service Adapter.

            - `API`: The reported status is for the Service Provider.

            - `DATABASE`: The reported status is for a database dependency of
            the Service Provider.

            - `SYSTEM`: The reported status is for any other known system
            component such as cache or gateway.

            - `OTHER`: The reported status is either for a component that does
            not belong to the types described above or the source of the issue
            is unknown.
          enum:
            - OTHER
            - SYSTEM
            - API
            - ADAPTER
            - DATABASE
          type: string
        description:
          description: The detailed status of the component.
          maxLength: 250
          type: string
        status:
          $ref: '#/components/schemas/HealthStatus'
        endpoints:
          description: ">-
            When the `status` of the component is not `UP`, then the list\ of
           \ of endpoints affected."
          items:
            type: string
          type: array
      required:
        - id
        - name
        - status
        - type
      type: object
    BasicErrorResponse:
      additionalProperties: false
      description: >-
        The basic error response containing the error message and the help
        documentation link.
      properties:
        message:
          description: The description of the error with details about it's cause.
          example: Invalid Credentials
          maxLength: 250
          type: string
        helpUrl:
          description: >-
            The link to the documentation for more information about the error
           error and the corrective action.
          example: 'https://apidocs.chargebee.com#Authentication'
          format: uri
          type: string
      required:
        - message
      type: object
    CredentialValidationResponse:
      example:
        status: null
      properties:
        status:
          $ref: '#/components/schemas/CredentialStatus'
      required:
        - status
      type: object
    CredentialStatus:
      description: The status of the credentials used for authentication.
      enum:
        - VALID
        - INVALID
      type: string
    BatchRequest:
      description: Contains required properties for batch request
      properties:
        batchName:
          description: Name of the batch
          type: string
        externalId:
          description: " >-
            Way to relate the request for future reference. Hold the reference\

           \ value passed in request, expecting the same would be returned in
            response."
          type: string
      type: object
    BatchResponse:
      description: Contains the required properties for response of batch request.
      properties:
        batchId:
          description: Id of the batch request.
          type: string
        batchName:
          description: Name of the batch request.
          type: string
        status:
          $ref: '#/components/schemas/Status'
        limit:
          description: " >-
            Use for the pagination for batch request, limit indicates\ the
           \ the maximum number of records to be returned in the response."
          type: integer
        offset:
          description: ">-
            Use for the pagination for batch request, offset indicates\ the
           \ the starting point of records to be returned in the response."
          type: integer
        completionPercentage:
          description: Percentage of batch request processing.
          type: integer
        externalId:
          description: The externalId passed in request.
          type: string
      required:
        - batchId
        - limit
        - offset
        - status
      type: object
    Status:
      description: This field indicates current status of the request at server side.
      enum:
        - COMPLETED
        - FAILED
        - RUNNING
        - CANCELED
      type: string
    BatchDeleteResponse:
      description: Response to delete the batch request
      properties:
        batchId:
          description: Id of the batch request
          type: string
        message:
          description: Message about deleting of batch request
          type: string
      required:
        - batchId
      type: object
    ErrorCode:
      description: >-
        The error codes classify the type of exception that occurred during
        processing the request.
      enum:
        - INVALID_OPERATION
        - SERVICE_EXCEPTION
        - SERVICE_UNAVAILABLE
        - SERVICE_LIMIT_EXCEEDED
        - MISSING_REQUIRED_DATA
        - INVALID_DATA
        - INVALID_TYPE
        - INVALID_FORMAT
        - INVALID_RANGE
      type: string
    TrnValidateErrorResponse_errors_inner:
      properties:
        field:
          description: The field of an entity that has the invalid value.
          example: trn
          maxLength: 250
          type: string
        code:
          $ref: '#/components/schemas/ErrorCode'
        message:
          description: A short message describing the reason for the error.
          example: Tax registration number is missing.
          maxLength: 250
          type: string
        helpUrl:
          description: >-
            The link to the documentation for more information about the error
           error and the corrective action.
          example: 'https://apidocs.chargebee.com#Authentication'
          type: string
      required:
        - code
        - message
      type: object
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    apiKey:
      description: Bearer token based authentication.
      in: header
      name: bearer
      type: apiKey