Fonoa Lookup V2 API

The Lookup V2 API from Fonoa — 5 operation(s) for lookup v2.

OpenAPI Specification

fonoa-lookup-v2-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fonoa E-Invoicing Lookup V2 API
  description: 'Unified e-invoicing API that manages the full transaction lifecycle including submitting, adjusting, crediting, and canceling e-invoices in compliance with local mandates across multiple countries. Supports backfilling previously reported transactions and retrieving transaction history and status.

    '
  version: 1.0.0
servers:
- url: https://api-demo.fonoa.com
  description: Fonoa API demo environment
- url: https://sandbox.fonoa.com/
  description: Fonoa API sandbox environment
- url: https://api.fonoa.com
  description: Fonoa API production (live) environment
security:
- ApiKeyAuth: []
tags:
- name: Lookup V2
paths:
  /lookup/v2/single-validations:
    post:
      summary: Request a single validation
      description: 'Submit a single Tax Identification Number (TIN) for validation. Supports instant lookup and cached result retrieval across 120+ countries. The API returns either an immediate response (200) or an accepted async response (202).

        '
      operationId: RequestavalidationV2
      tags:
      - Lookup V2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LookupTinValidationRequest'
      responses:
        '200':
          description: 'Immediate response for validations. Provides format validity details. Also returned for TINs with invalid format or checksum digits.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupValidationImmediateResponseV2'
        '202':
          description: 'The validation process has started. Fetch results from the resource provided in the response or use webhooks for status updates.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupValidationImmediateResponseV2'
        '400':
          description: Bad Request - invalid request parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupErrorResponseV2'
        '401':
          description: Authentication failed - missing or incorrect subscription key.
        '415':
          description: Unsupported Media Type.
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupErrorResponseV2'
        '503':
          description: Service Unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupErrorResponseV2'
  /lookup/v2/batch-validations:
    post:
      summary: Request a batch validation
      description: 'Submit multiple Tax Identification Numbers (TINs) for batch validation. Returns immediate results for TINs with invalid format; async processing for others with polling via the batch_validation_result_url.

        '
      operationId: RequestbatchvalidationV2
      tags:
      - Lookup V2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - validations
              properties:
                batch_name:
                  type: string
                  description: Optional name for the batch validation.
                  example: batch-2022-12-25
                validations:
                  type: array
                  description: List of TINs to validate.
                  items:
                    $ref: '#/components/schemas/LookupTinValidationRequest'
      responses:
        '200':
          description: All validations completed immediately.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupBatchValidationResponse'
        '202':
          description: Batch validation accepted; processing in background.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupBatchValidationResponse'
              examples:
                running:
                  value:
                    batch_id: 7e7f4459-5871-47a1-af3d-364df9c31fe0
                    batch_name: batch-2022-12-25-09-07-54
                    validations:
                    - validation_id: 3dc8b6d9-57af-4afb-9184-ef510be3f388
                      tax_identification_number: GB830930346
                      country_iso_code: gb
                      format: valid
                      requested_at: '2022-12-28T14:55:11.575Z'
                      is_business: unknown
                    requested_at: '2021-03-25T09:37:41.649Z'
                    status: running
                    batch_validation_result_url: https://api-demo.fonoa.com/lookup/v2/batch-validations/7e7f4459-5871-47a1-af3d-364df9c31fe0
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupErrorResponseV2'
        '401':
          description: Authentication failed.
        '500':
          description: Internal Server Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupErrorResponseV2'
  /lookup/v2/batch-validations/{batch_id}:
    get:
      summary: Get result of batch validation
      description: Poll for the result of a previously submitted batch validation.
      operationId: GetresultofbatchvalidationV2
      tags:
      - Lookup V2
      parameters:
      - name: batch_id
        in: path
        required: true
        description: The batch validation ID returned from the POST request.
        schema:
          type: string
      responses:
        '200':
          description: Batch validation results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupBatchValidationResponse'
        '401':
          description: Authentication failed.
        '404':
          description: Batch validation not found.
    delete:
      summary: Cancel a batch validation
      description: Cancel a pending batch validation.
      operationId: CancelbatchvalidationV2
      tags:
      - Lookup V2
      parameters:
      - name: batch_id
        in: path
        required: true
        description: The batch validation ID to cancel.
        schema:
          type: string
      responses:
        '204':
          description: Batch validation successfully cancelled.
        '401':
          description: Authentication failed.
        '404':
          description: Batch validation not found.
  /lookup/v2/single-validations/{validation_id}:
    get:
      summary: Get result of a single validation
      description: Retrieve the result of a previously submitted single TIN validation.
      operationId: GetresultofvalidationV2
      tags:
      - Lookup V2
      parameters:
      - name: validation_id
        in: path
        required: true
        description: The validation ID returned from the POST request.
        schema:
          type: string
      responses:
        '200':
          description: Validation result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LookupValidationImmediateResponseV2'
        '401':
          description: Authentication failed.
        '404':
          description: Validation not found.
    delete:
      summary: Delete result of a single validation
      description: Delete the result of a completed single TIN validation.
      operationId: DeleteresultofvalidationV2
      tags:
      - Lookup V2
      parameters:
      - name: validation_id
        in: path
        required: true
        description: The validation ID to delete.
        schema:
          type: string
      responses:
        '204':
          description: Validation result successfully deleted.
        '401':
          description: Authentication failed.
        '404':
          description: Validation not found.
  /lookup/v2/tin-search:
    post:
      summary: Request a TIN search
      description: Search for a Tax Identification Number by business name and country.
      operationId: RequestTINsearch
      tags:
      - Lookup V2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - country_iso_code
              - name
              properties:
                country_iso_code:
                  type: string
                  description: ISO 3166-1 alpha-2 country code.
                  example: gb
                name:
                  type: string
                  description: Business name to search for.
                  example: Fonoa Technologies
      responses:
        '200':
          description: TIN search results.
        '202':
          description: TIN search accepted; processing in background.
        '400':
          description: Bad Request.
        '401':
          description: Authentication failed.
components:
  schemas:
    LookupTinValidationRequest:
      type: object
      required:
      - country_iso_code
      - tax_identification_number
      properties:
        country_iso_code:
          type: string
          description: ISO 3166-1 alpha-2 country code for the TIN.
          example: gb
        tax_identification_number:
          type: string
          description: The Tax Identification Number to validate.
          example: GB830930346
        additional_parameters:
          $ref: '#/components/schemas/LookupAdditionalParametersV2'
        prefer_cached_result:
          type: boolean
          description: Set to true to attempt returning a result from the Instant Lookup cache.
          default: false
    LookupErrorResponseV2:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/LookupErrorDetail'
        message:
          type: string
          description: Human-readable error message.
    LookupErrorDetail:
      type: object
      properties:
        code:
          type: string
          description: Error code identifying the error type.
          example: FORMAT_INVALID
        message:
          type: string
          description: Detailed error description.
          example: ABN should contain 11 digits, and ACN should contain 9 digits
        field:
          type: string
          description: The field that caused the error, if applicable.
    LookupAdditionalParametersV2:
      type: object
      description: Additional country-specific parameters for TIN validation.
      properties:
        name:
          type: string
          description: Business name for fuzzy matching.
          example: teamwear
        address:
          type: string
          description: Business address for fuzzy matching.
          example: Wildflower 22 Belfast
    LookupBatchValidationResponse:
      type: object
      required:
      - batch_id
      - batch_name
      - validations
      - requested_at
      - status
      - batch_validation_result_url
      properties:
        batch_id:
          type: string
          description: Unique identifier for the batch validation.
          example: bd5fa7cc-3597-454e-86fb-a94b79514726
        batch_name:
          type: string
          description: Name of the batch validation.
          example: batch-2022-12-25-09-07-54
        validations:
          type: array
          description: List of individual validation results.
          items:
            $ref: '#/components/schemas/LookupValidationImmediateResponseV2'
        requested_at:
          type: string
          format: date-time
          description: Timestamp when the batch was requested.
          example: '2022-05-19T13:03:44.667Z'
        status:
          type: string
          description: Current status of the batch.
          enum:
          - running
          - completed
        batch_validation_result_url:
          type: string
          format: uri
          description: URL to poll for batch results.
          example: https://api-demo.fonoa.com/lookup/v2/batch-validations/bd5fa7cc-3597-454e-86fb-a94b79514726
    LookupValidationImmediateResponseV2:
      type: object
      properties:
        validation_id:
          type: string
          description: Unique identifier for this validation request.
          example: 3dc8b6d9-57af-4afb-9184-ef510be3f388
        tax_identification_number:
          type: string
          description: The TIN that was submitted for validation.
          example: GB830930346
        country_iso_code:
          type: string
          description: ISO 3166-1 alpha-2 country code.
          example: gb
        format:
          type: string
          description: Whether the TIN format is valid or invalid.
          enum:
          - valid
          - invalid
        requested_at:
          type: string
          format: date-time
          description: Timestamp when the validation was requested.
          example: '2022-12-28T14:55:11.575Z'
        is_business:
          type: string
          description: Whether the TIN belongs to a business entity.
          enum:
          - 'yes'
          - 'no'
          - unknown
        status:
          type: string
          description: Current status of the validation.
          enum:
          - completed
          - running
          - failed
        result_url:
          type: string
          format: uri
          description: URL to poll for the validation result.
        fuzzy_matching:
          type: object
          description: Fuzzy matching results for name and address.
          properties:
            name:
              type: string
              description: Business name match result.
              example: teamwear
            address:
              type: string
              description: Business address match result.
              example: Wildflower 22 Belfast
        error_details:
          $ref: '#/components/schemas/LookupErrorDetail'
        business_name:
          type: string
          description: Registered business name associated with the TIN.
        business_address:
          type: string
          description: Registered business address associated with the TIN.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Ocp-Apim-Subscription-Key