# Requisição de validação

## Formatos e tipo de assinatura

### Assinatura para qualquer tipo de arquivo (Padrão CMS/CAdES)

* CMS attached - Padrão internacional, com bytes assinados embutidos
* CMS detached - Padrão internacional, com bytes (conteúdo) separado da assinatura
* CAdES-AD\_RB attached - Padrão ICP-Brasil, com bytes assinados embutidos
* CAdES-AD\_RB detached - Padrão ICP-Brasil, com bytes (conteúdo) separado da assinatura
* CAdES-AD\_RT attached - Padrão ICP-Brasil (c/ carimbo do tempo), com bytes assinados embutidos&#x20;
* CAdES-AD\_RT detached  - Padrão ICP-Brasil (c/ carimbo do tempo), com bytes (conteúdo) separado da assinatura

### Assinatura para PDF (Padrão PDFsignature ou PAdES)

* PDFSignature - Padrão internacional, podendo ser com assinatura visível ou invisível&#x20;
* PAdES-AD\_RB - Padrão ICP-Brasil, podendo ser com assinatura visível ou invisível&#x20;
* PAdES-AD\_RT -  Padrão ICP-Brasil (c/ carimbo do tempo), podendo ser com assinatura visível ou invisível&#x20;

## Utilizando a API

<mark style="color:green;">`POST`</mark> `api-sandbox-assinatura.gestao.plus/validator-signature`

Endpoint/API para validação de assinatura

#### Query Parameters

| Name          | Type    | Description                                                                                                                                                                                                  |
| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| certData      | Boolean | <p>Flag que determina se os dados do(s) certificado(s) serão retornados<br><br>Default: true</p>                                                                                                             |
| certChainData | Boolean | <p>Flag que determina se os dados dos certificados da cadeia de confiança também serão retornados<br><br>Default: true</p>                                                                                   |
| X509          | Boolean | <p>Flag que determina se o(s) certificado(s) utilizados na assinatura também serão retornados (x509 PEM)</p><p></p><p>Default: true</p>                                                                      |
| content       | Boolean | <p>Flag que determina se o conteúdo (bytes internos) usados durante a validação serão ou não retornados.</p><p></p><p>Útil para extração de conteúdo de assinaturas attached.</p><p></p><p>Default: true</p> |

#### Headers

| Name                                            | Type   | Description                                                                                                                                                                    |
| ----------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Authorization<mark style="color:red;">\*</mark> | String | <p>Credenciais para uso do endpoint,</p><p></p><p>Deve ter o sufixo "Basic " e o valor "appid:appsecret" (encodado em base64) </p><p></p><p>Ex: Basic YXBwaWQ6YXBwc2VjcmV0</p> |

#### Request Body

| Name                                   | Type   | Description                                                                                   |
| -------------------------------------- | ------ | --------------------------------------------------------------------------------------------- |
| file<mark style="color:red;">\*</mark> | Binary | Envia os bytes do arquivo/assinatura                                                          |
| content                                | Binary | Envia os bytes do arquivo (separado da assinatura, utilizado somente para CMS/CaDEs detached) |

{% tabs %}
{% tab title="200: OK " %}

```json
{
  "validate": {
    "flag": true,
    "messages": [],
    "name": "sample7-pdfsignature.pdf",
    "date": "2022-10-21T01:46:19+0000",
    "details": {
      "signature": true,
      "ESS": true,
      "certs": true
    }
  },
  "signatures": [
    {
      "validate": {
        "flag": true,
        "messages": [],
        "details": {
          "signature": true,
          "ESS": true,
          "certs": true
        }
      },
      "data": {
        "version": "v1",
        "digestAlgorithm": "sha256",
        "signedAttrs": {
          "contentType": true,
          "signingTime": "2022-09-06T13:10:10+0000",
          "messageDigest": true,
          "signingCertificateV2": true
        },
        "signatureAlgorithm": "rsaEncryption",
        "signatureTime": {
          "m": "2022-09-06T13:10:11+0000",
          "signedAttr": "2022-09-06T13:10:10+0000"
        }
      },
      "certs": [
        {
          "flag": true,
          "isCertSignatureValidated": true,
          "isRevoked": false,
          "isExpired": false,
          "isTrust": true,
          "chain": [
            {
              "flag": true,
              "isCertSignatureValidated": true,
              "isRevoked": false,
              "isExpired": false,
              "data": {
                "validate": {
                  "notBefore": "2017-05-05T18:06:38+0000",
                  "notAfter": "2029-02-20T18:06:38+0000"
                },
                "version": "v3",
                "dn": "C=BR, O=ICP-Brasil, OU=Secretaria da Receita Federal do Brasil - RFB, CN=AC VALID RFB v5",
                "cn": "AC VALID RFB v5",
                "basicConstraints": {
                  "cA": true
                },
                "issuerCn": "AC Secretaria da Receita Federal do Brasil v4",
                "serialNumberHex": "0f",
                "keyIdentifier": "U8ul5HVQmUAsvlsVRcm+yzCqicU=",
                "fingerprint": "7a0d7b3c91409b65727a3b9f99a1e13f2d5871bb",
                "keyUsage": [
                  "cRLSign",
                  "keyCertSign"
                ],
                "extKeyUsage": false,
                "algorithm": "sha512WithRSAEncryption",
                "policyCA": [
                  {
                    "oid": "2.16.76.1.2.1.37",
                    "dpc": "http://www.receita.fazenda.gov.br/acrfb/dpcacrfb.pdf",
                    "name": "A1"
                  },
                  {
                    "oid": "2.16.76.1.2.3.36",
                    "dpc": "http://www.receita.fazenda.gov.br/acrfb/dpcacrfb.pdf",
                    "name": "A3"
                  }
                ],
                "publicKey": {
                  "algorithm": "rsaEncryption",
                  "bits": 4096
                }
              },
              "revokeData": {
                "crl": {
                  "number": "54",
                  "last_update": "2022-09-22T19:18:01+0000",
                  "next_update": "2022-12-21T19:18:01+0000",
                  "origin": "cache",
                  "checksum": "fc4d065b9e7f7654c4872af335479d6f0b4e02ddc58c5068a50d89d9c0f2d41f"
                }
              }
            },
            {
              "flag": true,
              "isCertSignatureValidated": true,
              "isRevoked": false,
              "isExpired": false,
              "data": {
                "validate": {
                  "notBefore": "2016-07-20T13:32:04+0000",
                  "notAfter": "2029-03-02T12:00:04+0000"
                },
                "version": "v3",
                "dn": "C=BR, O=ICP-Brasil, OU=Autoridade Certificadora Raiz Brasileira v5, CN=AC Secretaria da Receita Federal do Brasil v4",
                "cn": "AC Secretaria da Receita Federal do Brasil v4",
                "basicConstraints": {
                  "cA": true
                },
                "issuerCn": "Autoridade Certificadora Raiz Brasileira v5",
                "serialNumberHex": "04",
                "keyIdentifier": "GpjmQ8oc3ZKemWNFWirpH4cgzTU=",
                "fingerprint": "0851732f169d384be40713a3f7e1c82ee11d1b16",
                "keyUsage": [
                  "cRLSign",
                  "keyCertSign"
                ],
                "extKeyUsage": false,
                "algorithm": "sha512WithRSAEncryption",
                "policyCA": [
                  {
                    "oid": "2.16.76.1.1.8",
                    "dpc": "",
                    "name": null
                  }
                ],
                "publicKey": {
                  "algorithm": "rsaEncryption",
                  "bits": 4096
                }
              },
              "revokeData": {
                "crl": {
                  "number": "31",
                  "last_update": "2022-10-20T18:22:37+0000",
                  "next_update": "2023-01-18T18:22:37+0000",
                  "origin": "cache",
                  "checksum": "941a3147cf8590e75f6cc438b174bb38710c50a5aaff16117b1994958e18e165"
                }
              }
            },
            {
              "flag": true,
              "isCertSignatureValidated": true,
              "isRevoked": false,
              "isExpired": false,
              "data": {
                "validate": {
                  "notBefore": "2016-03-02T13:01:38+0000",
                  "notAfter": "2029-03-02T23:59:38+0000"
                },
                "version": "v3",
                "dn": "C=BR, O=ICP-Brasil, OU=Instituto Nacional de Tecnologia da Informacao - ITI, CN=Autoridade Certificadora Raiz Brasileira v5",
                "cn": "Autoridade Certificadora Raiz Brasileira v5",
                "basicConstraints": {
                  "cA": true
                },
                "issuerCn": "Autoridade Certificadora Raiz Brasileira v5",
                "serialNumberHex": "01",
                "keyIdentifier": "aai+ddnE72znE0XkYW7laPi2QF4=",
                "fingerprint": "5a2097dddf398577108af75c25ddaef2b8555b5a",
                "keyUsage": [
                  "cRLSign",
                  "keyCertSign"
                ],
                "extKeyUsage": false,
                "algorithm": "sha512WithRSAEncryption",
                "policyCA": [
                  {
                    "oid": "2.16.76.1.1.0",
                    "dpc": "http://acraiz.icpbrasil.gov.br/DPCacraiz.pdf",
                    "name": null
                  }
                ],
                "publicKey": {
                  "algorithm": "rsaEncryption",
                  "bits": 4096
                }
              },
              "revokeData": {
                "crl": {
                  "number": "31",
                  "last_update": "2022-10-20T18:22:37+0000",
                  "next_update": "2023-01-18T18:22:37+0000",
                  "origin": "cache",
                  "checksum": "941a3147cf8590e75f6cc438b174bb38710c50a5aaff16117b1994958e18e165"
                }
              }
            }
          ],
          "data": {
            "validate": {
              "notBefore": "2022-07-27T18:16:31+0000",
              "notAfter": "2027-07-26T18:16:31+0000"
            },
            "version": "v3",
            "dn": "C=BR, O=ICP-Brasil, OU=Secretaria da Receita Federal do Brasil - RFB, OU=RFB e-CPF A3, OU=VALID, OU=AR ATOS CERTIFICADORA, OU=Videoconferencia, OU=24226997000160, CN=PAULO FILIPE MACEDO DOS SANTOS:04660457192",
            "cn": "PAULO FILIPE MACEDO DOS SANTOS:04660457192",
            "basicConstraints": {
              "cA": false
            },
            "issuerCn": "AC VALID RFB v5",
            "serialNumberHex": "4e474011cd4443c7",
            "keyIdentifier": false,
            "fingerprint": "713c87fd594d4abc2a0c659885a4a1e2db7f83d1",
            "keyUsage": [
              "keyEncipherment",
              "nonRepudiation",
              "digitalSignature"
            ],
            "extKeyUsage": [
              "id-kp-clientAuth",
              "id-kp-emailProtection"
            ],
            "algorithm": "sha256WithRSAEncryption",
            "policy": {
              "oid": "2.16.76.1.2.3.36",
              "dpc": "http://icp-brasil.validcertificadora.com.br/ac-validrfb/dpc-ac-validrfbv5.pdf",
              "name": "A3",
              "type": "PF"
            },
            "subject": {
              "email": "paulo@gestao-online.com",
              "cei": "000000000000",
              "tituloEleitor": {
                "numero": "000000000000",
                "zona": "000",
                "secao": "0000",
                "municipio": ""
              }
            },
            "responsible": {
              "dataNascimento": "1990-02-10",
              "cpf": "04660457192",
              "nis": "00000000000",
              "rg": {
                "numero": "000000000000000",
                "emissor": ""
              }
            },
            "publicKey": {
              "algorithm": "rsaEncryption",
              "bits": 2048
            }
          },
          "revokeData": {
            "crl": {
              "number": "91070",
              "last_update": "2022-10-21T01:24:12+0000",
              "next_update": "2022-10-21T02:24:12+0000",
              "origin": "download",
              "checksum": "5bc62b05d079e862be2e0470e7285cba1b3abe8b11290754dece018eeb3f05a9"
            }
          }
        }
      ],
      "pdf": {
        "visibleSignature": {
          "name": "Signature1",
          "width": 0,
          "height": 0,
          "page": 1,
          "pageHeight": 842,
          "pageWidth": 596,
          "pageRotation": 0,
          "x": 0,
          "y": 842,
          "position": "Signature1::1::0.0::842.0::0.0::0.0",
          "filter": "/Adobe.PPKLite",
          "subfilter": "/adbe.pkcs7.detached",
          "signatureType": "approval",
          "isFillInAllowed": true,
          "isAnnotationsAllowed": true,
          "m": "D:20220906131011Z",
          "revision": 1
        }
      }
    }
  ]
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

### Estrutura da resposta

#### Estrutura macro

```json
{
  "validate": { //Objeto com o status geral da validação do documento
    "flag": true, //Flag macro se o documento é válido
    "messages": [], //Array de mensagens sobre a validação do arquivo
    "name": "sample7-pdfsignature.pdf", //Nome do arquivo
    "date": "2022-10-21T01:50:30+0000", //Data hora do relátorio (validação)
    "details": {
      "signature": true, //Flag do status da asssinatura de todas as assinaturas
      "ESS": true, //Flag do status da asssinatura (ESS) de todas as assinaturas
      "certs": true //Flag da verificação dos certificados de todas as assinaturas
    }
  },
  "signatures": [...] //Array de assinaturas
}
```

#### Detalhando o array "signatures"

```json
[
    {
        //... Um documento pode retornar mais de uma assinatura
    },
    {
      "validate": { //Objeto com o status geral da validação da assinatura
        "flag": true, //Flag macro se o documento é válido
        "messages": [], //Array de mensagens sobre a validação da assinatura
        "details": { //Flags de certificado e assinatura; Objetivo principal, detectar se o certificado indicado foi o utilizado para realizar a assinatura, e que assinatura está integra (não foi adulterada)
          "signature": true, //Flag do status da validação da assinatura 
          "ESS": true, //Flag do status da validação da assinatura (ESS)
          "certs": true ////Flag da verificação dos certificados da assinatura
        }
      },
      "data": { //Array de objetos com informações sobre a assinatura
        "version": "v1", //Versão da assinatura
        "digestAlgorithm": "sha256", //Algoritmo de hash utilizado para digerir o conteúdo assinado
        "signedAttrs": { //Array de attributos assináveis
          "contentType": true,
          "signingTime": "2022-09-06T13:10:10+0000", //Attributo utilizado em assinaturas CMS/CADES e PDFSignature (internacional)
          "messageDigest": true, 
          "signingCertificateV2": true
        },
        "signatureAlgorithm": "rsaEncryption",
        "signatureTime": {
          "m": "2022-09-06T13:10:11+0000", //Referência temporal (Extraida do PDF)
          "signedAttr": "2022-09-06T13:10:10+0000" //Referência temporal (Extraida do attributo assinável)
        }
      },
      "certs": [...], //Array de certificados utilizados na assinatura
      "pdf": { //Objeto detalhando os elementos incluídos no PDF (Somente PDFSignature e PaDES)
        "visibleSignature": {
          "name": "Signature1", //Nome do field no AcroForm
          "width": 0, //Largura do field (quando houver assinatura visivel) 
          "height": 0, //Altura do field (quando houver assinatura visivel) 
          "page": 1, //Página que o field será colocado (quando houver assinatura visivel) 
          "pageHeight": 842, //Altura da página
          "pageWidth": 596, //Largura da página
          "pageRotation": 0, //Rotação da página (Paisagem/Retrato)
          "x": 0, //Posição do eixo X do field (quando houver assinatura visivel) 
          "y": 842, //Posição do eixo Y do field (quando houver assinatura visivel) 
          "position": "Signature1::1::0.0::842.0::0.0::0.0",
          "filter": "/Adobe.PPKLite", //Tipo de filter utilizado para a assinatura
          "subfilter": "/adbe.pkcs7.detached", //Tipo de subfilter utilizado para a assinatura
          "signatureType": "approval", //Tipo de assinatura utilizado no PDF
          "isFillInAllowed": true,
          "isAnnotationsAllowed": true,
          "m": "D:20220906131011Z", //Attributo M (momento da assinatura)
          "revision": 1 //Versão/Revisão (controle de versionamento do PDF)
        }
      }
    }
]
```

#### Detalhando o array "certs" dentro de um assinatura do array "signatures"

```json
[
    {
        //... Uma assinatura pode conter mais de um certs (Co-assinatura)
    },
    {
          "flag": true, //Flag macro se o certificado é válido
          "isCertSignatureValidated": true, //Flag se a assinatura (caminho) do certificado é válido
          "isRevoked": false, //Flag se o certificado é revogado
          "isExpired": false, //Flag se o certificado é expirado
          "isTrust": true, //Flag se o certificado é confiável (está na cadeia de confiança)
          "chain": [...], //Array detalhando certificados da cadeia de confiança, possui um a estrutura de dados semlhante a essa que está sendo descrita aqui... (Certificados da AC's)
          "data": { //Dados do certificado
            "validate": { //Parâmetros de período de validação
              "notBefore": "2022-07-27T18:16:31+0000", //Não válido antes de:
              "notAfter": "2027-07-26T18:16:31+0000" //Não válido depois de:
            },
            "version": "v3", //Versão do certificado
            "dn": "C=BR, O=ICP-Brasil, OU=Secretaria da Receita Federal do Brasil - RFB, OU=RFB e-CPF A3, OU=VALID, OU=AR ATOS CERTIFICADORA, OU=Videoconferencia, OU=24226997000160, CN=PAULO FILIPE MACEDO DOS SANTOS:04660457192", //DN do certificado
            "cn": "PAULO FILIPE MACEDO DOS SANTOS:04660457192", //CN do certificado
            "basicConstraints": {
              "cA": false //Constraints básicas, Flag de CA (certificado pode ou não ser utilizado para assinar outro certificado)
            },
            "issuerCn": "AC VALID RFB v5", //CN do emissor (um nível acima)
            "serialNumberHex": "4e474011cd4443c7", //Número serial encodado em hexadecimal
            "keyIdentifier": false,
            "fingerprint": "713c87fd594d4abc2a0c659885a4a1e2db7f83d1", //Assinatura única do certificado
            "keyUsage": [ //Tipo/Propósito de uso previsto para o certificado
              "keyEncipherment",
              "nonRepudiation",
              "digitalSignature"
            ],
            "extKeyUsage": [ //Tipo/Propósito de uso previsto para o certificado
              "id-kp-clientAuth",
              "id-kp-emailProtection"
            ],
            "algorithm": "sha256WithRSAEncryption", //Algoritmo de assinatura do certificado
            "policy": { //Politica de emissão da AC (Autoridade Certificadora)
              "oid": "2.16.76.1.2.3.36", //Número do (Object Identifier) da politica
              "dpc": "http://icp-brasil.validcertificadora.com.br/ac-validrfb/dpc-ac-validrfbv5.pdf", //Link da DPC da AC
              "name": "A3", //Nome da politica
              "type": "PF" //Tipo da politica
            },
            "subject": { //Dados do titular do certificado
              "email": "paulo@gestao-online.com",
              "cei": "000000000000",
              "tituloEleitor": {
                "numero": "000000000000",
                "zona": "000",
                "secao": "0000",
                "municipio": ""
              }
            },
            "responsible": { //Dados do responsável do certificado
              "dataNascimento": "1990-02-10",
              "cpf": "04660457192",
              "nis": "00000000000",
              "rg": {
                "numero": "000000000000000",
                "emissor": ""
              }
            },
            "publicKey": { //Dados da chave pública
              "algorithm": "rsaEncryption",
              "bits": 2048 //Tamanho da chave (Ex: 2048, 4096)
            }
          },
          "revokeData": { //Dados utilizados para validação do status de revogação do certificado
            "crl": { //Utilizado o metódo de verificação de LCR (Lista de certificados revogados)
              "number": "91070", //Número da LCR
              "last_update": "2022-10-21T01:24:12+0000", //Quando foi gerada/atualizada a LCR
              "next_update": "2022-10-21T02:24:12+0000", //Até quando pode ser utilizada a LCR (expiração)
              "origin": "cache", //Origem da LCR no momento da validação (Cache interno ou download no repositório da AC)
              "checksum": "5bc62b05d079e862be2e0470e7285cba1b3abe8b11290754dece018eeb3f05a9" //Hash da LCR (checksum)
            }
          }
        }
    }
]
```

{% hint style="success" %}
Visando a melhor perfomance da solução a aplicação GOCrypto realiza cache das ACs intermediárias (AC2 e AC1) e das LCRs respeitando o tempo de expiração.
{% endhint %}

{% hint style="info" %}
Caso ainda não tenha as credenciais da API e/ou queira realizar um teste de validação via interface gráfica que utiliza essa mesma API, acesse: <https://api-sandbox-assinatura.gestao.plus/sample-validator.php>
{% endhint %}

## Arquivos de exemplo (Massa de testes)

<table><thead><tr><th width="249">Tipo</th><th width="94">Status</th><th>Formato</th><th>Link</th></tr></thead><tbody><tr><td>.txt (Conteúdo detached usado nos testes)</td><td></td><td>Bytes assinados</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/detached-content.txt">detached-content.txt</a></td></tr><tr><td>.p7s (assinatura incluindo conteúdo)</td><td><mark style="color:green;">Válido</mark></td><td>CMS Padrão Internacional</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample1-cms-attached.p7s">sample1-cms-attached.p7s</a></td></tr><tr><td>.p7s (assinatura com conteúdo separado)</td><td><mark style="color:green;">Válido</mark></td><td>CMS Padrão Internacional</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample2-cms-detached.p7s">sample2-cms-detached.p7s</a></td></tr><tr><td>.p7s (assinatura incluindo conteúdo)</td><td><mark style="color:green;">Válido</mark></td><td>CaDEs AD_RB - Padrão ICP Brasil</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample3-cades-adrb-attached.p7s">sample3-cades-adrb-attached.p7s</a></td></tr><tr><td>.p7s (assinatura com conteúdo separado)</td><td><mark style="color:green;">Válido</mark></td><td>CaDEs AD_RB - Padrão ICP Brasil</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample4-cades-adrb-detached.p7s">sample4-cades-adrb-detached.p7s</a></td></tr><tr><td>.p7s (assinatura incluindo conteúdo e assinatura de carimbo do tempo)</td><td><mark style="color:green;">Válido</mark></td><td>CaDEs AD_RT - Padrão ICP Brasil (Referência temporal de carimbadora)</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample5-cades-adrt-attached.p7s">sample5-cades-adrt-attached.p7s</a></td></tr><tr><td>.pdf (arquivo de PDF e assinatura, invisível/sem elementos gráficos) </td><td><mark style="color:green;">Válido</mark></td><td>PDFSignature Padrão Internacional</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample7-pdfsignature.pdf">sample7-pdfsignature.pdf</a></td></tr><tr><td>.pdf (arquivo de PDF e assinatura, invisível/sem elementos gráficos) </td><td><mark style="color:green;">Válido</mark></td><td>PaDES AD_RB - Padrão ICP Brasil</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample8-pades-adrb.pdf">sample8-pades-adrb.pdf</a></td></tr><tr><td>.pdf (arquivo de PDF e assinatura, invisível/sem elementos gráficos) </td><td><mark style="color:green;">Válido</mark></td><td>PaDES AD_RT - Padrão ICP Brasil (Referência temporal de carimbadora)</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample9-pades-adrt.pdf">sample9-pades-adrt.pdf</a></td></tr><tr><td>.pdf (arquivo de PDF e assinatura, invisível/sem elementos gráficos) </td><td><mark style="color:red;">Inválido</mark></td><td>PDFSignature Padrão Internacional (certificado revogado antes da assinatura)</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample10-pdfsignature-revoked.pdf">sample10-pdfsignature-revoked.pdf</a></td></tr><tr><td>.pdf (arquivo de PDF e assinatura, invisível/sem elementos gráficos) </td><td><mark style="color:red;">Inválido</mark></td><td>PDFSignature Padrão Internacional (certificado não confiável, caminho para a AC raiz é inválido)</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample11-pdfsignature-invalid-ca.pdf">sample11-pdfsignature-invalid-ca.pdf</a></td></tr><tr><td>.pdf (arquivo de PDF e assinatura, invisível/sem elementos gráficos) </td><td><mark style="color:red;">Inválido</mark></td><td>PDFSignature Padrão Internacional (certificado vencido/expirado antes da assinatura)</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample12-pdfsignature-expired-before-sign.pdf">sample12-pdfsignature-expired-before-sign.pdf</a></td></tr><tr><td>.pdf (arquivo de PDF e assinatura, invisível/sem elementos gráficos) </td><td><mark style="color:green;">Válido</mark></td><td>PDFSignature Padrão Internacional (certificado vencido/expirado após a assinatura) - O certificado estava válido no momento da assinatura</td><td><a href="https://api-sandbox-assinatura.gestao.plus/tests/signatures/sample13-pdfsignature-expired-after-sign.pdf">sample13-pdfsignature-expired-after-sign.pdf</a></td></tr></tbody></table>

## Utilizando a interface gráfica (demo)

{% embed url="<https://api-sandbox-assinatura.gestao.plus/sample-validator.php>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gocrypto.com.br/requisicao-de-validacao.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
