Contalink Status de documentos fiscales API

Valida los status de vigencia y pago de un documento fiscal

Operations 1

GET /invoices/check-status/{uuid}/ Valida el status de un documento fiscal

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/contalink-status-de-documentos-fiscales-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

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

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

OpenAPI Specification

contalink-status-de-documentos-fiscales-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '# Introducción

    Documentación del API de Contalink


    # Autenticación


    El método de autenticación para el api de contalink es mediante un api key el cual está relacionado forzosamente a un usuario dentro del sistema, por lo cual, todas las peticiones utilizando ese api key quedarán registradas como peticiones del usuario relacionado.


    <SecurityDefinitions />

    '
  title: Contalink Balanza de comprobación Status de documentos fiscales API
  version: 1.0.4
  x-logo:
    altText: Contalink
    url: http://apidocs.contalink.com/logocontalinknew.svg
servers:
- description: prod
  url: https://794lol2h95.execute-api.us-east-1.amazonaws.com/prod
tags:
- description: Valida los status de vigencia y pago de un documento fiscal
  name: Status de documentos fiscales
paths:
  /invoices/check-status/{uuid}/:
    get:
      description: Valida el status de un documento fiscal
      parameters:
      - description: UUID del documento fiscal que se quiere validar
        in: path
        name: uuid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceStatus'
          description: 0 indica error, 1 indica éxito.
      security:
      - APIKey: []
      summary: Valida el status de un documento fiscal
      tags:
      - Status de documentos fiscales
      x-codeSamples:
      - lang: C
        source: "CURL *curl;\nCURLcode res;\ncurl = curl_easy_init();\nif(curl) {\n   curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, \"GET\");\n   curl_easy_setopt(curl, CURLOPT_URL, \"%7B%7BbaseUrl%7D%7D/invoices/check-status/%3Cstring%3E/\");\n   curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);\n   curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, \"https\");\n   struct curl_slist *headers = NULL;\n   headers = curl_slist_append(headers, \"Accept: application/json\");\n   curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);\n   res = curl_easy_perform(curl);\n}\ncurl_easy_cleanup(curl);\n"
      - lang: C#
        source: 'var client = new RestClient("{{baseUrl}}/invoices/check-status/<string>/");

          client.Timeout = -1;

          var request = new RestRequest(Method.GET);

          request.AddHeader("Accept", "application/json");

          IRestResponse response = client.Execute(request);

          Console.WriteLine(response.Content);'
      - lang: Curl
        source: 'curl --location -g --request GET ''{{baseUrl}}/invoices/check-status/<string>/'' \

          --header ''Accept: application/json'''
      - lang: Dart
        source: "var headers = {\n   'Accept': 'application/json'\n};\nvar request = http.Request('GET', Uri.parse('{{baseUrl}}/invoices/check-status/<string>/'));\n\nrequest.headers.addAll(headers);\n\nhttp.StreamedResponse response = await request.send();\n\nif (response.statusCode == 200) {\n   print(await response.stream.bytesToString());\n}\nelse {\n   print(response.reasonPhrase);\n}\n"
      - lang: Go
        source: "package main\n\nimport (\n   \"fmt\"\n   \"net/http\"\n   \"io/ioutil\"\n)\n\nfunc main() {\n\n   url := \"%7B%7BbaseUrl%7D%7D/invoices/check-status/%3Cstring%3E/\"\n   method := \"GET\"\n\n   client := &http.Client {\n   }\n   req, err := http.NewRequest(method, url, nil)\n\n   if err != nil {\n      fmt.Println(err)\n      return\n   }\n   req.Header.Add(\"Accept\", \"application/json\")\n\n   res, err := client.Do(req)\n   if err != nil {\n      fmt.Println(err)\n      return\n   }\n   defer res.Body.Close()\n\n   body, err := ioutil.ReadAll(res.Body)\n   if err != nil {\n      fmt.Println(err)\n      return\n   }\n   fmt.Println(string(body))\n}"
      - lang: Http
        source: 'GET /invoices/check-status/<string>/ HTTP/1.1

          Host: {{baseUrl}}

          Accept: application/json'
      - lang: Java
        source: "OkHttpClient client = new OkHttpClient().newBuilder()\n   .build();\nRequest request = new Request.Builder()\n   .url(\"{{baseUrl}}/invoices/check-status/<string>/\")\n   .method(\"GET\", null)\n   .addHeader(\"Accept\", \"application/json\")\n   .build();\nResponse response = client.newCall(request).execute();"
      - lang: Java
        source: "Unirest.setTimeouts(0, 0);\nHttpResponse<String> response = Unirest.get(\"{{baseUrl}}/invoices/check-status/<string>/\")\n   .header(\"Accept\", \"application/json\")\n   .asString();\n"
      - lang: JavaScript
        source: "var myHeaders = new Headers();\nmyHeaders.append(\"Accept\", \"application/json\");\n\nvar requestOptions = {\n   method: 'GET',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"{{baseUrl}}/invoices/check-status/<string>/\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
      - lang: JavaScript
        source: "\nvar xhr = new XMLHttpRequest();\nxhr.withCredentials = true;\n\nxhr.addEventListener(\"readystatechange\", function() {\n   if(this.readyState === 4) {\n      console.log(this.responseText);\n   }\n});\n\nxhr.open(\"GET\", \"%7B%7BbaseUrl%7D%7D/invoices/check-status/%3Cstring%3E/\");\nxhr.setRequestHeader(\"Accept\", \"application/json\");\n\nxhr.send();"
      - lang: JavaScript
        source: "var settings = {\n   \"url\": \"{{baseUrl}}/invoices/check-status/<string>/\",\n   \"method\": \"GET\",\n   \"timeout\": 0,\n   \"headers\": {\n      \"Accept\": \"application/json\"\n   },\n};\n\n$.ajax(settings).done(function (response) {\n   console.log(response);\n});"
      - lang: NodeJS
        source: "var axios = require('axios');\n\nvar config = {\n   method: 'get',\n   url: '{{baseUrl}}/invoices/check-status/<string>/',\n   headers: { \n      'Accept': 'application/json'\n   }\n};\n\naxios(config)\n.then(function (response) {\n   console.log(JSON.stringify(response.data));\n})\n.catch(function (error) {\n   console.log(error);\n});\n"
      - lang: NodeJS
        source: "var https = require('follow-redirects').https;\nvar fs = require('fs');\n\nvar options = {\n   'method': 'GET',\n   'hostname': '{{baseUrl}}',\n   'path': '/invoices/check-status/<string>/',\n   'headers': {\n      'Accept': 'application/json'\n   },\n   'maxRedirects': 20\n};\n\nvar req = https.request(options, function (res) {\n   var chunks = [];\n\n   res.on(\"data\", function (chunk) {\n      chunks.push(chunk);\n   });\n\n   res.on(\"end\", function (chunk) {\n      var body = Buffer.concat(chunks);\n      console.log(body.toString());\n   });\n\n   res.on(\"error\", function (error) {\n      console.error(error);\n   });\n});\n\nreq.end();"
      - lang: NodeJS
        source: "var request = require('request');\nvar options = {\n   'method': 'GET',\n   'url': '{{baseUrl}}/invoices/check-status/<string>/',\n   'headers': {\n      'Accept': 'application/json'\n   }\n};\nrequest(options, function (error, response) {\n   if (error) throw new Error(error);\n   console.log(response.body);\n});\n"
      - lang: NodeJS
        source: "var unirest = require('unirest');\nvar req = unirest('GET', '{{baseUrl}}/invoices/check-status/<string>/')\n   .headers({\n      'Accept': 'application/json'\n   })\n   .end(function (res) { \n      if (res.error) throw new Error(res.error); \n      console.log(res.raw_body);\n   });\n"
      - lang: Objective-C
        source: "#import <Foundation/Foundation.h>\n\ndispatch_semaphore_t sema = dispatch_semaphore_create(0);\n\nNSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@\"%7B%7BbaseUrl%7D%7D/invoices/check-status/%3Cstring%3E/\"]\n   cachePolicy:NSURLRequestUseProtocolCachePolicy\n   timeoutInterval:10.0];\nNSDictionary *headers = @{\n   @\"Accept\": @\"application/json\"\n};\n\n[request setAllHTTPHeaderFields:headers];\n\n[request setHTTPMethod:@\"GET\"];\n\nNSURLSession *session = [NSURLSession sharedSession];\nNSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request\ncompletionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {\n   if (error) {\n      NSLog(@\"%@\", error);\n      dispatch_semaphore_signal(sema);\n   } else {\n      NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;\n      NSError *parseError = nil;\n      NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];\n      NSLog(@\"%@\",responseDictionary);\n      dispatch_semaphore_signal(sema);\n   }\n}];\n[dataTask resume];\ndispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);"
      - lang: OcaML
        source: "open Lwt\nopen Cohttp\nopen Cohttp_lwt_unix\n\nlet reqBody = \n   let uri = Uri.of_string \"%7B%7BbaseUrl%7D%7D/invoices/check-status/%3Cstring%3E/\" in\n   let headers = Header.init ()\n      |> fun h -> Header.add h \"Accept\" \"application/json\"\n   in\n   Client.call ~headers `GET uri >>= fun (_resp, body) ->\n   body |> Cohttp_lwt.Body.to_string >|= fun body -> body\n\nlet () =\n   let respBody = Lwt_main.run reqBody in\n   print_endline (respBody)"
      - lang: PHP
        source: "<?php\nrequire_once 'HTTP/Request2.php';\n$request = new HTTP_Request2();\n$request->setUrl('{{baseUrl}}/invoices/check-status/<string>/');\n$request->setMethod(HTTP_Request2::METHOD_GET);\n$request->setConfig(array(\n   'follow_redirects' => TRUE\n));\n$request->setHeader(array(\n   'Accept' => 'application/json'\n));\ntry {\n   $response = $request->send();\n   if ($response->getStatus() == 200) {\n      echo $response->getBody();\n   }\n   else {\n      echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .\n      $response->getReasonPhrase();\n   }\n}\ncatch(HTTP_Request2_Exception $e) {\n   echo 'Error: ' . $e->getMessage();\n}"
      - lang: PHP
        source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n   CURLOPT_URL => '%7B%7BbaseUrl%7D%7D/invoices/check-status/%3Cstring%3E/',\n   CURLOPT_RETURNTRANSFER => true,\n   CURLOPT_ENCODING => '',\n   CURLOPT_MAXREDIRS => 10,\n   CURLOPT_TIMEOUT => 0,\n   CURLOPT_FOLLOWLOCATION => true,\n   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n   CURLOPT_CUSTOMREQUEST => 'GET',\n   CURLOPT_HTTPHEADER => array(\n      'Accept: application/json'\n   ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
      - lang: PHP
        source: "<?php\n$client = new http\\Client;\n$request = new http\\Client\\Request;\n$request->setRequestUrl('{{baseUrl}}/invoices/check-status/<string>/');\n$request->setRequestMethod('GET');\n$request->setOptions(array());\n$request->setHeaders(array(\n   'Accept' => 'application/json'\n));\n$client->enqueue($request)->send();\n$response = $client->getResponse();\necho $response->getBody();\n"
      - lang: PowerShell
        source: '$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"

          $headers.Add("Accept", "application/json")


          $response = Invoke-RestMethod ''{{baseUrl}}/invoices/check-status/<string>/'' -Method ''GET'' -Headers $headers

          $response | ConvertTo-Json'
      - lang: Python
        source: "import requests\n\nurl = \"{{baseUrl}}/invoices/check-status/<string>/\"\n\npayload={}\nheaders = {\n   'Accept': 'application/json'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
      - lang: Python
        source: "import http.client\n\nconn = http.client.HTTPSConnection(\"{{baseUrl}}\")\npayload = ''\nheaders = {\n   'Accept': 'application/json'\n}\nconn.request(\"GET\", \"/invoices/check-status/<string>/\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))"
      - lang: Ruby
        source: 'require "uri"

          require "net/http"


          url = URI("{{baseUrl}}/invoices/check-status/<string>/")


          http = Net::HTTP.new(url.host, url.port);

          request = Net::HTTP::Get.new(url)

          request["Accept"] = "application/json"


          response = http.request(request)

          puts response.read_body

          '
      - lang: Shell
        source: "http --follow --timeout 3600 GET '{{baseUrl}}/invoices/check-status/<string>/' \\\n Accept:'application/json'"
      - lang: Shell
        source: "wget --no-check-certificate --quiet \\\n   --method GET \\\n   --timeout=0 \\\n   --header 'Accept: application/json' \\\n    '{{baseUrl}}/invoices/check-status/<string>/'"
      - lang: Swift
        source: "import Foundation\n#if canImport(FoundationNetworking)\nimport FoundationNetworking\n#endif\n\nvar semaphore = DispatchSemaphore (value: 0)\n\nvar request = URLRequest(url: URL(string: \"{{baseUrl}}/invoices/check-status/<string>/\")!,timeoutInterval: Double.infinity)\nrequest.addValue(\"application/json\", forHTTPHeaderField: \"Accept\")\n\nrequest.httpMethod = \"GET\"\n\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in \n   guard let data = data else {\n      print(String(describing: error))\n      semaphore.signal()\n      return\n   }\n   print(String(data: data, encoding: .utf8)!)\n   semaphore.signal()\n}\n\ntask.resume()\nsemaphore.wait()\n"
components:
  schemas:
    InvoiceStatus:
      properties:
        invoice:
          description: Contiene la información sobre el documento fiscal solicitado
          properties:
            contabilizado:
              default: false
              description: Indica si el documento ya ha sido contabilizado en Contalink
              title: Contabilizado?
              type: boolean
            estatus:
              default: ''
              description: Indica el status del documento ante el SAT
              title: Status
              type: string
            metodo_pago:
              default: ''
              description: Indica el método de pago con el que se emitió el documento
              title: Método de pago
              type: string
            tesoreria:
              default: 0.0
              description: Indica el porcentaje pendiente de pagar del documento
              title: Estatus de tesorería
              type: number
          title: Documento Fiscal
          type: object
        message:
          default: ''
          description: Mensaje regresado por la petición
          title: Mensaje
          type: string
        status:
          default: 0
          description: El status de la petición 0. Error, 1. Éxito
          title: Status
          type: integer
      title: CheckStatus Schema
      type: object
  securitySchemes:
    APIKey:
      description: Llave de API relacionada al usuario que hace la petición.
      in: header
      name: Authorization
      type: apiKey
x-tagGroups:
- name: Conciliación
  tags:
  - Conciliación
- name: Tesorería
  tags:
  - Movimientos bancarios
- name: Documentos fiscales
  tags:
  - Listado de documentos fiscales
  - Cargar un documento fiscal
  - Status de documentos fiscales
- name: Contabilidad
  tags:
  - Balanza de comprobación
  - Pólizas manuales
  - Saldo de una cuenta