openapi: 3.0.2
info:
  title: Stamp Duty Application API
  description: |
    Stamp duty is payable to the government on the purchase, sale, or renting of any immovable asset. E-stamping application is a secured way of paying non-judicial stamp duty.
                
    `The API supports following functionalities:`
    * Submission of Stamp Duty Calculation
    * Submission of Stamp Duty Application
    * Read Certificate Status
    * Update Exisitng Application to Re-issue New Certificate

    `Error Responses`

    The API uses common HTTP status codes in the response header to indicate success or failure. Specific error code and description will be returned in the custom error schema.

    `Query Parameters`

    Each URL query parameter specifies an API query parameter that must be URL encoded.
  contact:
    name: Developer Hub
    url: 'https://developer.swift.com'
    email: developer-support@swift.com
  license:
    name: Community API Redistribution License
    url: 'https://www.swift.com/swift-resource/251146/download'
  version: 1.1.0
servers:
  - description: URL for Sandbox Environment.
    url: 'https://sandbox.swift.com/swift-stamp-duty/v1'
  - description: URL for Pilot.
    url: 'https://api-test.swiftnet.sipn.swift.com/swift-stamp-duty/v1'
  - description: URL for Live.
    url: 'https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1'
security:
  - oauthBearerToken: []
  - oAuth2: []
tags:
  - name: Stamp Duty Calculation
    description: Handles the submission of a Stamp Duty Calculation to get the stamp duty payable for a trade instrument
  - name: Stamp Duty Application
    description: Handles the submission of a Stamp Duty Application to e-stamping.
paths:
  /stamp-duty-calculation:
    post:
      tags:
        - Stamp Duty Calculation
      summary: Create Stamp Duty Calculation.
      description: |
        Request a stamp duty computation that may be payable for a Trade Instrument.

        **Specifying Request Filter**

        Parameters are specified in the form name=value. A parameter list is appended to a URI after a "?". Multiple parameters are separated by "&".

        `Note that in this example, the query parameters are not URL encoded for readability.`


        **Use of logical operator AND (undertaking-identification and undertaking-amount)**

         https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-calculation?undertaking-identification=BGREQ30122022-01&undertaking-amount=10000.00
      operationId: createStampDutyCalculation
      parameters:
        # headers
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StampDutyCalculation'
            examples:
              CreateStampDutyApplicationEx-1:
                $ref: '#/components/examples/CreateStampDutyCalculationRequestEx-1'
      responses:
        '200':
          description: OK
          headers:
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StampDutyCalculation'
              examples:
                CreateStampDutyCalculationResponseEx-1:
                  $ref: '#/components/examples/CreateStampDutyCalculationResponseEx-1'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '406':
          $ref: '#/components/responses/406-NotAcceptable'
        '413':
          $ref: '#/components/responses/414-URITooLong'
        '415':
          $ref: '#/components/responses/415-UnsupportedMediaType'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '502':
          $ref: '#/components/responses/502-BadGateway'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
        '504':
          $ref: '#/components/responses/504-GatewayTimeout'
  /stamp-duty-applications:
    post:
      tags:
        - Stamp Duty Application
      summary: Create Stamp Duty Application.
      description: Stamp Duty Application for issuance of a stamp duty certificate.
      operationId: createStampDutyApplication
      parameters:
        # headers
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StampDutyApplication'
            examples:
              CreateStampDutyApplicationEx-1:
                $ref: '#/components/examples/CreateStampDutyApplicationEx-1'
              CreateStampDutyApplicationEx-2:
                $ref: '#/components/examples/CreateStampDutyApplicationEx-2'
      responses:
        '201':
          description: Stamp Duty ApplicationCreated
          headers:
            # Location:
            #   $ref: '#/components/headers/Location'
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StampDutyApplicationID"
              example:
                {
                  "application_reference": "91823d1b-3266-4a20-a3fd-bde174b9188e"
                }
        '202':
          description: Accepted
          headers:
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'              
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '406':
          $ref: '#/components/responses/406-NotAcceptable'
        '415':
          $ref: '#/components/responses/415-UnsupportedMediaType'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '502':
          $ref: '#/components/responses/502-BadGateway'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
        '504':
          $ref: '#/components/responses/504-GatewayTimeout'
    get:
      tags:
        - Stamp Duty Application
      summary: Get Stamp Duty Applications.
      description: |
        Request details of all avaiable stamp duty applications.

        The endpoint will return an empty array when no resource is found.

        **Specifying Request Filter**

        Parameters are specified in the form name=value. A parameter list is appended to a URI after a "?". Multiple parameters are separated by "&".

        `Note that in this example, the query parameters are not URL encoded for readability.`

        **Use of specific filter**

        https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-applications?identification=BGREQ30122022-01

        **Use of logical operator AND (application-from-date and application-to-date)**

         https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-applications?application-from-date=2023-05-22&application-to-date=2023-05-23
      operationId: getStampDutyApplications
      parameters:
        # headers
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
        # query
        - $ref: '#/components/parameters/application-date'
        - $ref: '#/components/parameters/application-from-date'
        - $ref: '#/components/parameters/application-to-date'
        - $ref: '#/components/parameters/certificate-issuance-date'
        - $ref: '#/components/parameters/pagination-offset'
        - $ref: '#/components/parameters/pagination-limit'
      responses:
        '200':
          description: OK
          headers:
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'              
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  stamp_duty_application:
                    type: array
                    items:
                      $ref: '#/components/schemas/StampDutyApplication'
                  links:
                    type: array
                    items:
                      $ref: '#/components/schemas/Link'
              examples:
                GETStampDutyApplicationResponseCollectionEx-1:
                  $ref: '#/components/examples/GETStampDutyApplicationResponseCollectionEx-1'
                GETStampDutyApplicationResponseCollectionEx-2:
                  $ref: '#/components/examples/GETStampDutyApplicationResponseCollectionEx-2'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'          
        '406':
          $ref: '#/components/responses/406-NotAcceptable'
        '413':
          $ref: '#/components/responses/414-URITooLong'
        '415':
          $ref: '#/components/responses/415-UnsupportedMediaType'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '502':
          $ref: '#/components/responses/502-BadGateway'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
        '504':
          $ref: '#/components/responses/504-GatewayTimeout'
  '/stamp-duty-applications/{application-reference}':
    get:
      tags:
        - Stamp Duty Application
      summary: Get Stamp Duty Application.
      description: Request details of a specific stamp duty application to get the Certificate Status.
      operationId: getStampDutyApplication
      parameters:
        # headers
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
        # path        
        - $ref: '#/components/parameters/application-reference'
      responses:
        '200':
          description: OK
          headers:
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'              
            ETag:
              $ref: '#/components/headers/ETag'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StampDutyApplication'
              examples:
                GETStampDutyApplicationResponseEx-1:
                  $ref: '#/components/examples/GETStampDutyApplicationResponseEx-1'
                GETStampDutyApplicationResponseEx-2:
                  $ref: '#/components/examples/GETStampDutyApplicationResponseEx-2'
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '406':
          $ref: '#/components/responses/406-NotAcceptable'
        '413':
          $ref: '#/components/responses/414-URITooLong'
        '415':
          $ref: '#/components/responses/415-UnsupportedMediaType'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '502':
          $ref: '#/components/responses/502-BadGateway'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
        '504':
          $ref: '#/components/responses/504-GatewayTimeout'
    patch:
      tags:
        - Stamp Duty Application
      summary: Update Stamp Duty Application.
      description: Any permitted modification to the stamp duty application such as undertaking amount to reissue a new certificate.
      operationId: modifyStampDutyApplication
      parameters:
        # headers
        - $ref: '#/components/parameters/X-Request-ID'
        - $ref: '#/components/parameters/X-BIC'
        - $ref: '#/components/parameters/If-Match'
        # path        
        - $ref: '#/components/parameters/application-reference'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StampDutyApplication'
            examples:
              UpdateStampDutyApplicationEx-1:
                $ref: '#/components/examples/UpdateStampDutyApplicationEx-1'
      responses:
        '202':
          description: Accepted
          headers:
            Swift-Request-ID:
              $ref: '#/components/headers/Swift-Request-ID'
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'              
        '400':
          $ref: '#/components/responses/400-BadRequest'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/404-NotFound'
        '406':
          $ref: '#/components/responses/406-NotAcceptable'
        '412':
          $ref: '#/components/responses/412-PreconditionFailed'
        '415':
          $ref: '#/components/responses/415-UnsupportedMediaType'
        '429':
          $ref: '#/components/responses/429-TooManyRequests'
        '502':
          $ref: '#/components/responses/502-BadGateway'
        '503':
          $ref: '#/components/responses/503-ServiceUnavailable'
        '504':
          $ref: '#/components/responses/504-GatewayTimeout'
components:
  schemas:
    CurrencyAmount:
      type: object
      description: A number of monetary units specified in a currency where the unit of currency is explicit and compliant with ISO 4217.
      additionalProperties: false
      properties:
        currency:
          x-Validation: true
          x-ValidationType: 'Algorithmic, ReferenceData'
          x-Error: 'ErrorCode:Sw.Stds.D00006, ErrorText:Invalid currency code., SWIFTNetValidation:true, Severity:Fatal'
          description: |
            A code allocated to a currency by a Maintenance Agency under an international identification scheme as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds".
          type: string
          pattern: '^[A-Z]{3,3}$'
        amount:
          x-Validation: true
          x-ValidationType: Algorithmic
          x-Error: 'ErrorCode:Sw.Stds.D00007, ErrorText:Too many decimal digits or the amount does not comply with the pattern., SWIFTNetValidation:true  Severity:Fatal'
          description: |
            The amount with fractional digit. Note: The decimal separator is a dot.

            Usage:
              Total digits: 18
              Fraction Digits: 5
          type: string
          maxLength: 19
          pattern: '^0*(([0-9]{0,13}\.[0-9]{1,5})|([0-9]{0,14}\.[0-9]{1,4})|([0-9]{0,15}\.[0-9]{1,3})|([0-9]{0,16}\.[0-9]{1,2})|([0-9]{0,17}\.[0-9]{1,1})|([0-9]{0,18}\.)|0*|([0-9]{0,18}))$'
      required:
        - currency
        - amount
    Fees:
      type: object
      description: Specifies the amount of money paid for the provision of financial services.
      additionalProperties: false
      properties:
        amount:
          description: |
            Specify the amount of money payable towards the fees and charges.

            Usage:
              Total digits: 18
              Fraction Digits: 5
          type: string
          maxLength: 19
          pattern: '^0*(([0-9]{0,13}\.[0-9]{1,5})|([0-9]{0,14}\.[0-9]{1,4})|([0-9]{0,15}\.[0-9]{1,3})|([0-9]{0,16}\.[0-9]{1,2})|([0-9]{0,17}\.[0-9]{1,1})|([0-9]{0,18}\.)|0*|([0-9]{0,18}))$'
        type:
          description: Specify the charge type.
          type: string
          minLength: 4
          maxLength: 4
    GenericIdentification:
      type: object
      description: 'Information related to an identification, for example, party identification or account identification.'
      additionalProperties: false
      properties:
        identification:
          description: 'Proprietary information, often a code, issued by the data source scheme issuer.'
          type: string
          minLength: 1
          maxLength: 35
        scheme_name:
          description: Short textual description of the scheme.
          type: string
          minLength: 1
          maxLength: 35
        issuer:
          description: Entity that assigns the identification.
          type: string
          minLength: 1
          maxLength: 35
      required:
        - identification
      # PartyIdentification:
      # Party:
    Organisation:
      type: object
      description: Specifies the identification of an organisation.
      additionalProperties: false
      properties:
        name:
          description: Name by which a party is known and which is usually used to identify that party.
          type: string
          minLength: 1
          maxLength: 140
        postal_address:
          #  'Information that locates and identifies a specific address, as defined by postal services.  RECOMMENDATION IN ORDER OF PREFERENCE:   * Use only structured address with mandatory Town Name and Country               * When using unstructured address, (Address Line), max 1 occurrence with 105 text is allowed.               * Address Line must not contain Country which must be included in the dedicated Country element in the unstructured structured address.'
          $ref: '#/components/schemas/PostalAddress'
        identification:
          #  Unique and unambiguous identification of a party.
          $ref: '#/components/schemas/OrganisationIdentification'
        phone_number:
          description: |
            Specify the phone number of stamp duty payer.

            Usage: It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
          type: string
          pattern: '^\+[0-9]{1,3}-[0-9()+\-]{1,30}$'
        email_address:
          description: Address for electronic mail (e-mail).
          type: string
          minLength: 1
          maxLength: 2048
      required:
        - name
    OrganisationIdentification:
      type: object
      description: Unique and unambiguous way to identify an organisation.
      additionalProperties: false
      properties:
        bic:
          x-MXComponent: AnyBICDec2014Identifier
          x-Validation: true
          x-ValidationType: Algorithmic
          x-Error: 'ErrorCode:Sw.Stds.D00008, ErrorText:Invalid BIC., SWIFTNetValidation:true  Severity:Fatal'
          description: |
            Business identification code of the organisation. Code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority, as described in ISO 9362: 2014 - "Banking - Banking telecommunication messages - Business identifier code (BIC)".
          type: string
          pattern: '^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$'
        lei:
          x-MXComponent: LEIIdentifier
          description: Legal entity identification as an alternate identification for a party.
          type: string
          pattern: '^[A-Z0-9]{18,18}[0-9]{2,2}$'
        other:
          type: array
          maxItems: 2
          #  Unique identification of an organisation, as assigned by an institution, using an identification scheme.
          items:
            $ref: '#/components/schemas/GenericIdentification'
    PartyChoice:
      type: object
      description: Identify the type of party as either organisation or individual.
      additionalProperties: true
      oneOf:
        - type: object
          additionalProperties: false
          properties:
            organisation:
              $ref: '#/components/schemas/Organisation'
          required:
            - organisation
        - type: object
          properties:
            person:
              $ref: '#/components/schemas/Person'
          required:
            - person
    Person:
      type: object
      description: Individual involved in an activity.
      additionalProperties: false
      properties:
        name:
          description: Name by which a party is known and which is usually used to identify that party.
          type: string
          minLength: 1
          maxLength: 140
        gender:
          description: Specifies the gender of the person.
          type: string
          minLength: 1
          maxLength: 6
        postal_address:
          #  'Information that locates and identifies a specific address, as defined by postal services.  RECOMMENDATION IN ORDER OF PREFERENCE:   * Use only structured address with mandatory Town Name and Country               * When using unstructured address, (Address Line), max 1 occurrence with 105 text is allowed.               * Address Line must not contain Country which must be included in the dedicated Country element in the unstructured structured address.'
          $ref: '#/components/schemas/PostalAddress'
        identification:
          # $ref: '#/components/schemas/PartyIdentificationChoice'
          #  Unique and unambiguous identification of a party.
          $ref: '#/components/schemas/PersonIdentification'
        phone_number:
          description: |
            Specify the phone number of stamp duty payer.

            Usage: It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
          type: string
          pattern: '^\+[0-9]{1,3}-[0-9()+\-]{1,30}$'
        email_address:
          description: Address for electronic mail (e-mail).
          type: string
          minLength: 1
          maxLength: 2048
      required:
        - name
    PersonIdentification:
      type: object
      additionalProperties: false
      properties:
        identification:
          description: |
            Unique identification of a person, as assigned by an institution, using an identification scheme for example Passport, Driving license, National identification etc.

            Usage -  Unique identification of an individual, as assigned by an institution, using an identification scheme.
          type: array
          maxItems: 4
          items:
            $ref: '#/components/schemas/GenericIdentification'
    PostalAddress:
      type: object
      description: Information that locates and identifies a specific address.
      additionalProperties: false
      required:
        - town_name
        - country
      properties:
        department:
          description: Identification of a division of a large organisation or building.
          type: string
          minLength: 1
          maxLength: 70
        sub_department:
          description: Identification of a sub-division of a large organisation or building.
          type: string
          minLength: 1
          maxLength: 70
        street_name:
          description: Name of a street or thoroughfare.
          type: string
          minLength: 1
          maxLength: 70
        building_number:
          description: Number that identifies the position of a building on a street.
          type: string
          minLength: 1
          maxLength: 16
        building_name:
          description: Name of the building or house.
          type: string
          minLength: 1
          maxLength: 35
        floor:
          description: Floor or storey within a building.
          type: string
          minLength: 1
          maxLength: 70
        post_box:
          description: 'Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.'
          type: string
          minLength: 1
          maxLength: 16
        room:
          description: Building room number.
          type: string
          minLength: 1
          maxLength: 70
        post_code:
          description: Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.
          type: string
          minLength: 1
          maxLength: 16
        town_name:
          description: 'Name of a built-up area, with defined boundaries, and a local government.'
          type: string
          minLength: 1
          maxLength: 35
        town_location_name:
          description: Specific location name within the town.
          type: string
          minLength: 1
          maxLength: 35
        district_name:
          description: Identifies a subdivision within a country sub-division.
          type: string
          minLength: 1
          maxLength: 35
        country_sub_division:
          description: 'Identifies a subdivision of a country such as state, region, county.'
          type: string
          minLength: 1
          maxLength: 35
        country:
          x-Validation: true
          x-ValidationType: 'Algorithmic, ReferenceData'
          x-Error: 'ErrorCode:Sw.Stds.D00004, ErrorText:Invalid Country Code., SWIFTNetValidation:true,  Severity:Fatal'
          description: Nation with its own government.
          type: string
          minLength: 2
          maxLength: 2
          pattern: '^[A-Z]{2,2}$'
    StampDutyApplication:
      type: object
      description: Details about a stamp duty application for issuance of a e-Stamping certificate.
      additionalProperties: false
      properties:
        application_reference:
          description: |
            An unique and unambiguous identification of the Stamp Duty Application as assigned by the origin server. The value must be constant throughout the lifecycle of the application. On successful creation, the application can be retrieved using the application reference. This identification shall be used as a resource identifier for all state transition.

            Usage - Unique end to end reference of the Stamp Duty application. The value must be constant throughout the lifecycle of the application. The type is Universally Unique IDentifier (UUID) version 4, as described in IETC RFC 4122 "Universally Unique IDentifier (UUID) URN Namespace".
          type: string
          format: uuid
          readOnly: true
        transaction_reference_number:
          description: An unique and unambiguous identification assigned by the Sender to unambiguously identify the transaction.
          type: string
          minLength: 1
          maxLength: 36
        undertaking_identification:
          description: Unique and unambiguous identifier assigned to the undertaking issued by the guarantor/issuer. This reference is used throughout the life cycle of the undertaking.
          type: string
          minLength: 1
          maxLength: 36
        undertaking_amount:
          description: Specify the amount and currency of the undertaking for which stamp duty certificate is applied.
          $ref: '#/components/schemas/CurrencyAmount'
        applicant:
          description: Party named in an undertaking as the party on whose behalf the undertaking is issued.
          $ref: '#/components/schemas/PartyChoice'
        purchased_by:
          description: Specify the purchaser details.
          $ref: '#/components/schemas/PartyChoice'
        second_party:
          description: Provide the details of beneficiary if the beneficiary is different from the applicant.
          $ref: '#/components/schemas/PartyChoice'
        stamp_duty_amount:
          description: Stamp duty amount payable to authority.
          $ref: '#/components/schemas/CurrencyAmount'
        stamp_duty_paid_by:
          description: Provide the details of stamp duty payer.
          $ref: '#/components/schemas/PartyChoice'
        fees:
          description: Fees and charges related to stamp duty application.
          type: array
          maxItems: 10
          readOnly: true
          items:
            $ref: '#/components/schemas/Fees'
        total_stamp_duty_amount:
          description: Stamp duty and surcharge payable to authority.
          $ref: '#/components/schemas/CurrencyAmount'
        state_code:
          description: The state code where stamp duty certificate will be created.
          type: string
          minLength: 1
          maxLength: 5
        article_number:
          description: Specify the article for which stamp duty certificate is required.
          type: string
          minLength: 1
          maxLength: 4
        undertaking_description:
          description: Specify the type of the undertaking require stamp duty certificate.
          type: string
          minLength: 1
          maxLength: 100
        application_date:
          description: The date when application is submitted for issuance of certificate.
          type: string
          format: date
        certificate_ID:
          description: Unique identification of stamp duty certificate.
          type: string
          minLength: 1
          maxLength: 20
          readOnly: true
        certificate_issuance_date:
          description: Date timestamp when the stamp duty certificate is issued.
          type: string
          format: date-time
          readOnly: true
        base_certificate_ID:
          description: The original certificate id that was issued when stamp duty was paid first time.
          type: string
          minLength: 1
          maxLength: 20
        base_certificate_issuance_date:
          description: Date timestamp when the original certificate is issued.
          type: string
          format: date-time
        is_print_required:
          description: Specify if the printcopy of stamp duty certificate is required.
          type: boolean
        charges:
          description: Service charges for issuance of certificate.
          $ref: '#/components/schemas/CurrencyAmount'
        imprest_account:
          description: The account from surcharges and service charges will be deducted.
          type: string
          minLength: 1
          maxLength: 12
        account_balance:
          description: The current balance of the imprest account.
          type: string
          minLength: 1
          maxLength: 19
          readOnly: true
          pattern: '^0*(([0-9]{0,13}\.[0-9]{1,5})|([0-9]{0,14}\.[0-9]{1,4})|([0-9]{0,15}\.[0-9]{1,3})|([0-9]{0,16}\.[0-9]{1,2})|([0-9]{0,17}\.[0-9]{1,1})|0*|([0-9]{0,18}))$'
        payment_reference:
          description: 'Unique reference, as assigned by the payment service provider.'
          type: string
          minLength: 1
          maxLength: 36
        payment_date:
          description: The date on which the payment is made.
          type: string
          format: date
        payment_status:
          description: Specify the status of the payment.
          type: string
          minLength: 1
          maxLength: 10
        social_infrastructure_cess:
          description: Infrastructure cess is a tax imposed by the government.
          type: string
          maxLength: 19
          pattern: '^0*(([0-9]{0,13}\.[0-9]{1,5})|([0-9]{0,14}\.[0-9]{1,4})|([0-9]{0,15}\.[0-9]{1,3})|([0-9]{0,16}\.[0-9]{1,2})|([0-9]{0,17}\.[0-9]{1,1})|([0-9]{0,18}\.)|0*|([0-9]{0,18}))$'
        DDO_code:
          description: Drawing and Disbursing Officer (DDO) officer code.
          type: string
          minLength: 1
          maxLength: 11
        DDO_district:
          description: District Development Officer.
          type: string
          minLength: 1
          maxLength: 10
        property_description_pin_code:
          description: TBC
          type: integer
          format: int32
          minLength: 1
          maxLength: 6
        property_area:
          description: specify the area of the property.
          type: string
          minLength: 1
          maxLength: 100
      required:
        - application_reference
        - transaction_reference_number
        - undertaking_identification
        - undertaking_amount
        - applicant
        - purchased_by
        - second_party
        - stamp_duty_amount
        - stamp_duty_paid_by
        - state_code
        - article_number
        - undertaking_description
    StampDutyCalculation:
      type: object
      description: Details about the stamp duty computation that would be payable for issuance of a e-Stamp Certificate.
      additionalProperties: false
      properties:
        transaction_reference_number:
          description: An unique and unambiguous identification assigned by the Sender to unambiguously identify the transaction.
          type: string
          minLength: 1
          maxLength: 36
        undertaking_identification:
          description: Unique and unambiguous identifier assigned to the undertaking issued by the guarantor/issuer. This reference is used throughout the life cycle of the undertaking.
          type: string
          minLength: 1
          maxLength: 36
        undertaking_amount:
          description: Specify the amount and currency of the undertaking for which stamp duty certificate is applied.
          $ref: '#/components/schemas/CurrencyAmount'
        stamp_duty_amount:
          description: Stamp duty amount payable to authority.
          $ref: '#/components/schemas/CurrencyAmount'
        state_code:
          description: The state code where stamp duty certificate will be created.
          type: string
          minLength: 1
          maxLength: 5
        article_number:
          description: Specify the article for which stamp duty certificate is required.
          type: string
          minLength: 1
          maxLength: 4
    StampDutyApplicationID:
      description: The URI to the newly created Stamp Duty Application.
      type: object
      properties:
        application_reference:
          type: string
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6'
    #########################
    #   Common Components   #
    #########################
    Link:
      type: object
      readOnly: true
      description: Contains a generic structure to support hyperlinking (REST level 3).
      additionalProperties: false
      required:
        - href
      properties:
        href:
          description: Specifies the link as a url. The href member identifies the target IRI location of the resource.
          type: string
          format: uri
          maxLength: 256
        rel:
          description: Specifies the operation. The value of this property MUST be a string. This property is required except self. The self reference contains the URI of the same resource.
          type: string
          maxLength: 35
        type:
          description: The value containing the HTTP verb used for the URL. If the type element is not included then the link MUST be available using GET.
          type: string
          maxLength: 35
    Errors:
      description: 'Container to return multiple ErrorMessage object. Collection of error can be useful when API needs to return multiple errors, for example validation errors. When the response code conveys application-specific functional semantics and consumer can parse machine-readable error code, this block can be useful. The error response must contain at least one error object.'
      type: array
      items:
        $ref: '#/components/schemas/ErrorMessage'
    ErrorMessage:
      description: Custom error schema to support detailed error message.
      type: object
      readOnly: true
      additionalProperties: false
      properties:
        severity:
          description: Specifies the severity of the error.
          type: string
          enum:
            - Fatal
            - Transient
            - Logic
        code:
          description: Specifies the custom error code as defined by the service provider.
          type: string
          minLength: 3
          maxLength: 70
        text:
          description: Specifies the detail error message identifying the cause of the error.
          type: string
          minLength: 1
          maxLength: 255
        user_message:
          description: A human-readable text describing the error.
          type: string
          minLength: 1
          maxLength: 255
        more_info:
          description: Specifies an URL to find more information about the error.
          type: string
          format: uri
      required:
        - code
        - severity
        - text
  headers:
    Location:
      description: The Location response header containing the URI to the newly created resource.
      schema:
        type: string
        format: uri
      example: 'https://api.swiftnet.sipn.swift.com/swift-stamp-duty-application/v1/stamp-duty-application/3fa85f64-5717-4562-b3fc-2c963f66afa6'
    X-Request-ID:
      description: Specify an unique end to end tracking request ID. The element will be populated by the SWIFT API gateway
      schema:
        type: string
        maxLength: 270
      required: true
    Swift-Request-ID:
      required: false
      schema:
        type: string
        format: uuid
      examples:
        XRequestIdResponseHeader:
          value: ce480d68-2612-4aef-867a-e91566a1e012
      description: |-
        A Universally Unique Identifier (UUID) generated by the API Gateway for tracking and support purposes.
        This Swift-Request-ID response header must always be returned to the API consumer, even when the response is an error message
    ETag:
      description: 'An entity-tag, as defined in the RFC7232 ETag header field is an opaque identifier for the current versions of a resource. The subsequent PATCH/PUT requests should provide the ETag value in a If-match header field to implement optimistic concurrency control. If the server ETag value does not match with the provided ETag value, the error response 412 - precondition fail will be returned. This signifies the resource out of date.'
      required: false
      schema:
        type: string
      example: f88dd058fe004909615a64f01be66a7
  parameters:
    If-Match:
      name: If-Match
      in: header
      description: 'This header will contain the Etag of the resource representation to be manipulate. If the server ETag value does not match with the provided ETag value, the error response 412 - precondition fail will be returned. This signifies the resource is out of date.'
      required: false
      schema:
        type: string
      example: f88dd058fe004909615a64f01be66a7
    # PATCH /swift-stamp-duty-application/v1/stamp-duty-application/3fa85f64-5717-4562-b3fc-2c963f66afa6 HTTP/1.1
    # If-Match:f88dd058fe004909615a64f01be66a7
    pagination-offset:
      name: offset
      in: query
      style: form
      explode: false
      description: 'Specifies the offset / starting point in the list of all available items, starting from which results will be returned. The numeric offset identifies the page token, allowing users to advance to the next page in the collection. The value 0 (zero) identifies the first page of entry.'
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
      example: 0
    pagination-limit:
      name: limit
      in: query
      style: form
      explode: false
      description: 'The maximum number of items to return in a page. If unspecified, the default limit will be returned. If the limit specified is greater than the maximum permitted by the API, the API will return the maximum permitted limit. Each API should define *maximum and *default limit.'
      required: false
      schema:
        type: integer
        minimum: 1
        default: 25
        maximum: 100
      example: 25
    X-Request-ID:
      description: Specify an unique end to end tracking request ID. The element will be populated by the SWIFT API gateway
      name: X-Request-ID
      in: header
      required: false
      schema:
        type: string
        maxLength: 270
      example: rrt-1130311210763048898-c-geu2-21394-2055157-17
    X-BIC:
      name: X-BIC
      in: header
      description: Specify the BIC of the provider of the service. The identification will be used by the API Gateway to forward the request to service provider.
      required: true
      schema:
        type: string
      example: DEUTDEFF
    application-reference:
      in: path
      name: application-reference
      style: simple
      explode: false
      description: |
        An unique and unambiguous identification of the Stamp Duty Application as assigned by the origin server. The value must be constant throughout the lifecycle of the application. On successful creation, the application can be retrieved using the application reference. This identification shall be used as a resource identifier for all state transition.
      required: true
      example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
      schema:
        type: string
        format: uuid
    application-date:
      in: query
      name: application-date
      style: form
      explode: false
      description: |
        Date on which the applicant lodge the stamp duty application for issuance of Certificate. Expressed in the YYYY-MM-DD format. The date cannot be in the future.

        Usage: The application-date must not be used in conjunction with application-from-date or application-to-date or issuance-date.
      required: false
      schema:
        type: string
        pattern: '^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)(?:Z|[+-][01]\d:[0-5]\d)?$'
    application-from-date:
      in: query
      name: application-from-date
      style: form
      explode: false
      description: |
        Date on which the applicant lodge the stamp duty application for issuance of Certificate. Expressed in the YYYY-MM-DD format. The date cannot be in the future.

        Usage: The application-date must be used in conjunction with application-to-date. When used in conjunction with the application-to-date, the endpoint returns the application where the application date fall within that period.
      required: false
      schema:
        type: string
        pattern: '^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)(?:Z|[+-][01]\d:[0-5]\d)?$'
      example: '2023-05-22'
    application-to-date:
      in: query
      name: application-to-date
      style: form
      explode: false
      description: |
        Date on which the applicant lodge the stamp duty application for issuance of Certificate. Expressed in the YYYY-MM-DD format. The date cannot be in the future.

        Usage: The application-date must not be used in conjunction with application-from-date. When used in conjunction with the application-from-date, the endpoint returns the application where the application date fall within that period.
      required: false
      schema:
        type: string
        pattern: '^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)(?:Z|[+-][01]\d:[0-5]\d)?$'
      example: '2023-05-23'
    certificate-issuance-date:
      in: query
      name: issuance-date
      style: form
      explode: false
      description: Date on which the Stamp Duty Certificate is issued by the issuing bank. Expressed in the YYYY-MM-DD format. The date cannot be in the future.
      required: false
      schema:
        type: string
        format: date
  responses:
    400-BadRequest:
      description: Bad Request
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    401-Unauthorized:
      description: Unauthorized
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    403-Forbidden:
      description: Forbidden
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    404-NotFound:
      description: Not Found
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    405-MethodNotAllowed:
      description: Method Not Allowed
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    406-NotAcceptable:
      description: Not Acceptable
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    407-ProxyAuthenticationRequired:
      description: Proxy Authentication Required
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    409-Conflict:
      description: Conflict
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    410-Gone:
      description: Gone
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'          
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    412-PreconditionFailed:
      description: Precondition Failed
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    413-PayloadTooLarge:
      description: Payload Too Large
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    414-URITooLong:
      description: URI Too Long
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    415-UnsupportedMediaType:
      description: Unsupported Media Type
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    429-TooManyRequests:
      description: Too Many Requests
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    502-BadGateway:
      description: Bad Gateway
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    503-ServiceUnavailable:
      description: Service Unavailable
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
    504-GatewayTimeout:
      description: Gateway Timeout
      headers:
        Swift-Request-ID:
          $ref: '#/components/headers/Swift-Request-ID'
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'            
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/Errors'
              - $ref: '#/components/schemas/ErrorMessage'
            ###########################
            #  Security Definition    #
            ###########################            
  securitySchemes:
    oauthBearerToken:
      type: http
      scheme: bearer
      bearerFormat: opaque OAuth 2.0
      description: |
        The access token obtained as a result of OAuth 2.0 flows. SWIFT supports two OAuth grant types for consumption depending on the environment where the API is exposed. 

        * MV-SIPN - jwt-bearer grant type [RFC 7523](https://tools.ietf.org/html/rfc7523) with Signed JWT assertion
        * Internet - Password grant type with license credentials.

        This API uses JWT-Bearer grant type.

        Please visit [SWIFT OAuth Token API](https://developer.swift.com/swift-oauth-token-api) page for more information and examples on how to generate an OAuth token.

        In this declaration only the basic security element to transport the bearer token of an OAuth2 process is declared.
    oAuth2:
      type: oauth2
      description: |
        This API uses OAuth2 with the client credentials grant type for service provider API gateway integration. Used between an end SWIFT API gateway and service provider API gateway.

        Please visit [SWIFT OAuth Token API](https://developer.swift.com/swift-oauth-token-api) for more information and examples.
      flows:
        clientCredentials:
          tokenUrl: /v1/oauth2/token
          scopes: {}
  # ####################################
  # # Stamp Duty application examples ##
  # ####################################
  examples:
    CreateStampDutyCalculationRequestEx-1:
      summary: Request for Stamp Duty Calculation
      value:
        transaction_reference_number: GLISCI-259
        undertaking_identification: OGT0005210059171
        undertaking_amount:
          currency: INR
          amount: '100000.00'
        state_code: 'IN-KA'
        article_number: '0033'
    CreateStampDutyCalculationResponseEx-1:
      summary: Example-1 - Stamp duty calculation - Delhi
      value:
        transaction_reference_number: GLISCI-259
        undertaking_identification: OGT0005210059171
        undertaking_amount:
          currency: INR
          amount: '100000.00'
        stamp_duty_amount:
          currency: INR
          amount: '100.00'
    CreateStampDutyApplicationEx-1:
      summary: Example-1 - Stamp duty application - Odisha
      value:
        application_reference: '3fa85f64-5717-4562-b3fc-2c963f66afa6'
        transaction_reference_number: COR0004230002748
        undertaking_identification: OGT0005210059171
        undertaking_amount:
          currency: INR
          amount: '12500000.00'
        applicant:
          organisation:
            name: INDUSIND BANK LIMITED
            postal_address:
              street_name: '28, BARAKHAMBA ROAD'
              building_name: DR. GOPAL DAS BHAWAN
              post_code: '759019'
              town_name: ODISHA
              country: IN
        purchased_by:
          organisation:
            name: GRAMIN VIKAS TRUST
        second_party:
          organisation:
            name: DISTRICT JAL JEEVAN MISSION
        stamp_duty_amount:
          currency: INR
          amount: '10.00'
        stamp_duty_paid_by:
          organisation:
            name: INDUSIND BANK LIMITED
            phone_number: +00-91-9884430610
        state_code: IN-OD
        article_number: '0065'
        undertaking_description: PERFORMANCE GUARANTEE
    CreateStampDutyApplicationEx-2:
      summary: Example-2 - Stamp duty application - Rajasthan
      value:
        application_reference: '3fa85f64-5717-4562-b3fc-2c963f66afa6'
        transaction_reference_number: COR0004220002691
        undertaking_identification: OGT0004220071872
        undertaking_amount:
          currency: INR
          amount: '1000000.00'
        applicant:
          organisation:
            name: INDUSIND BANK LIMITED
            postal_address:
              street_name: SL MARG 320
              # building_number: string
              building_name: JAWAHAR LAL NEHRU MARG
              post_code: '302021'
              town_name: JAIPUR
              country: IN
        purchased_by:
          organisation:
            name: SELMARK PRIVATE LIMITED
        second_party:
          organisation:
            name: KGMU HOSPITAL REVOLVING FUND
        stamp_duty_amount:
          currency: INR
          amount: '2500.00'
        stamp_duty_paid_by:
          organisation:
            name: INDUSIND BANK LIMITED
            phone_number: +00-91-7305002273
        fees:
          - amount: '250'
            type: PCOW
          - amount: '250'
            type: INFR
          - amount: '250'
            type: RNMC
        state_code: IN-RJ
        article_number: '1079'
        undertaking_description: PERFORMANCE GUARANTEE
        imprest_account: RJSWIFTINDUS
    GETStampDutyApplicationResponseCollectionEx-1:
      summary: Example-1 - Get stamp duty application by criteria
      value:
        stamp_duty_application:
          - application_reference: 3fa85f64-5717-4562-b3fc-2c963f66afa6
            transaction_reference_number: COR0004230002747
            undertaking_identification: OGT0005210059171
            undertaking_amount:
              currency: INR
              amount: '100000.00'
            applicant:
              organisation:
                name: INDUSIND BANK LIMITED
                postal_address:
                  street_name: BARAKHAMBA ROAD
                  building_number: '28'
                  building_name: DR. GOPAL DAS BHAWAN
                  post_code: '759019'
                  town_name: ODISHA
                  country: IN
            purchased_by:
              organisation:
                name: GRAMIN VIKAS TRUST
            second_party:
              organisation:
                name: DISTRICT JAL JEEVAN MISSION
            stamp_duty_amount:
              currency: INR
              amount: '100.00'
            stamp_duty_paid_by:
              organisation:
                name: INDUSIND BANK LIMITED
                phone_number: +00-91-9884430610
            state_code: IN-OD
            article_number: '0065'
            undertaking_description: PERFORMANCE GUARANTEE
            application_date: '2024-08-08'
            certificate_ID: IN-OD00016586273634W
            certificate_issuance_date: '2024-02-01T13:07:00.000Z'
            charges:
              currency: INR
              amount: '00.00'
          - application_reference: e5d5adfc-4e60-46f6-a6c9-3a287aa6f39b
            transaction_reference_number: COR0004220002691
            undertaking_identification: OGT0004220071872
            undertaking_amount:
              currency: INR
              amount: '1000000.00'
            applicant:
              organisation:
                name: INDUSIND BANK LIMITED
                postal_address:
                  street_name: JAWAHAR LAL NEHRU MARG
                  building_number: '320'
                  building_name: SL MARG
                  post_code: '302021'
                  town_name: JAIPUR
                  country: IN
            purchased_by:
              organisation:
                name: SELMARK PRIVATE LIMITED
            second_party:
              organisation:
                name: KGMU HOSPITAL REVOLVING FUND
            stamp_duty_amount:
              currency: INR
              amount: '2500.00'
            stamp_duty_paid_by:
              organisation:
                name: INDUSIND BANK LIMITED
                phone_number: +00-91-7305002273
            total_stamp_duty_amount:
              currency: INR
              amount: '3250.00'
            fees:
              - amount: '250.00'
                type: PCOW
              - amount: '250.00'
                type: INFR
              - amount: '250.00'
                type: RNMC
            state_code: IN-RJ
            article_number: '1079'
            undertaking_description: PERFORMANCE GUARANTEE
            certificate_ID: IN-RJ08066671751252V
            certificate_issuance_date: '2023-02-20T12:38:15.000Z'
            charges:
              currency: INR
              amount: '00.00'
            imprest_account: RJSWIFTINDUS
        links:
          - href: 'https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-applications?limit=25,offset=0'
            rel: self
            type: GET
          - href: 'https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-applications?limit=25,offset=0'
            rel: first
            type: GET
          - href: 'https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-applications?limit=25,offset=100'
            rel: next
            type: GET
          - href: 'https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-applications?limit=25,offset=75'
            rel: previous
            type: GET
          - href: 'https://api.swiftnet.sipn.swift.com/swift-stamp-duty/v1/stamp-duty-applications?limit=25,offset=175'
            rel: last
            type: GET
    GETStampDutyApplicationResponseCollectionEx-2:
      summary: Example-2 - No record found
      value:
        stamp_duty_application: []
    GETStampDutyApplicationResponseEx-1:
      summary: Example-1 - Stamp duty application - Odisha
      value:
        application_reference: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        transaction_reference_number: COR0004230002747
        undertaking_identification: OGT0005210059171
        undertaking_amount:
          currency: INR
          amount: '100000.00'
        applicant:
          organisation:
            name: INDUSIND BANK LIMITED
            postal_address:
              street_name: BARAKHAMBA ROAD
              building_number: '28'
              building_name: DR. GOPAL DAS BHAWAN
              post_code: '759019'
              town_name: ODISHA
              country: IN
        purchased_by:
          organisation:
            name: GRAMIN VIKAS TRUST
        second_party:
          organisation:
            name: DISTRICT JAL JEEVAN MISSION
        stamp_duty_amount:
          currency: INR
          amount: '100.00'
        stamp_duty_paid_by:
          organisation:
            name: INDUSIND BANK LIMITED
            phone_number: +00-91-9884430610
        state_code: IN-OD
        article_number: '0065'
        undertaking_description: PERFORMANCE GUARANTEE
        application_date: '2024-08-08'
        certificate_ID: IN-OD00016586273634W
        certificate_issuance_date: '2024-02-01T13:07:00.000Z'
        charges:
          currency: INR
          amount: '00.00'
    GETStampDutyApplicationResponseEx-2:
      summary: Example-2 - Stamp duty application - Rajasthan
      value:
        application_reference: e5d5adfc-4e60-46f6-a6c9-3a287aa6f39b
        transaction_reference_number: COR0004220002691
        undertaking_identification: OGT0004220071872
        undertaking_amount:
          currency: INR
          amount: '1000000.00'
        applicant:
          organisation:
            name: INDUSIND BANK LIMITED
            postal_address:
              street_name: JAWAHAR LAL NEHRU MARG
              building_number: '320'
              building_name: SL MARG
              post_code: '302021'
              town_name: JAIPUR
              country: IN
        purchased_by:
          organisation:
            name: SELMARK PRIVATE LIMITED
        second_party:
          organisation:
            name: KGMU HOSPITAL REVOLVING FUND
        stamp_duty_amount:
          currency: INR
          amount: '2500.00'
        stamp_duty_paid_by:
          organisation:
            name: INDUSIND BANK LIMITED
            phone_number: +00-91-7305002273
        total_stamp_duty_amount:
          currency: INR
          amount: '3250.00'
        fees:
          - amount: '250.00'
            type: PCOW
          - amount: '250.00'
            type: INFR
          - amount: '250.00'
            type: RNMC
        state_code: IN-RJ
        article_number: '1079'
        undertaking_description: PERFORMANCE GUARANTEE
        certificate_ID: IN-RJ08066671751252V
        certificate_issuance_date: '2023-02-20T12:38:15.000Z'
        charges:
          currency: INR
          amount: '00.00'
        imprest_account: RJSWIFTINDUS
    UpdateStampDutyApplicationEx-1:
      summary: Example-1 - Reissue certificate due to change in amount.
      value:
        application_reference: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        transaction_reference_number: COR0004230002748
        undertaking_identification: OGT0005210059171
        undertaking_amount:
          currency: INR
          amount: '12000000.00'
        applicant:
          organisation:
            name: INDUSIND BANK LIMITED
            postal_address:
              street_name: '28, BARAKHAMBA ROAD'
              building_name: DR. GOPAL DAS BHAWAN
              post_code: '759019'
              town_name: ODISHA
              country: IN
        purchased_by:
          organisation:
            name: GRAMIN VIKAS TRUST
        second_party:
          organisation:
            name: DISTRICT JAL JEEVAN MISSION
        stamp_duty_amount:
          currency: INR
          amount: '10.00'
        stamp_duty_paid_by:
          organisation:
            name: INDUSIND BANK LIMITED
            phone_number: +00-91-9884430610
        state_code: IN-OD
        article_number: '0065'
        undertaking_description: PERFORMANCE GUARANTEE
        base_certificate_ID: IN-OD00016586273634W
        base_certificate_issuance_date: '2024-02-01T13:07:00.000Z'
        imprest_account: ODSWIFTINDUS