---
title: "Assinar XML/XAdES utilizando Certificado em nuvem"
method: POST
path: "/api/xml-signature-service/v1/signatures/kms"
tags: ["Assinador XML"]
---

# Assinar XML/XAdES utilizando Certificado em nuvem

`POST /api/xml-signature-service/v1/signatures/kms`

## Request

- Base URL: `https://cloud-hom.bry.com.br`
- URL: `https://cloud-hom.bry.com.br/api/xml-signature-service/v1/signatures/kms`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/bry/apis/bry-easy-sign-api-rest/docs/api/xml-signature-service/v1/signatures/kms/post.ts> (a function with typed inputs; its response is checked against the schema)

## Headers

- `kms_type` 'BRYKMS' | 'DINAMO' | 'PSC', required

## Request body `multipart/form-data`

- object
  - `nonce` string, required: Nonce da requisição
  - `kms_data` union, required: Credenciais de acesso ao certificado em nuvem.
    - object: Credenciais de acesso ao certificado digital armazenado no BRyKMS. Um dos valores entre 'pin' e 'token' deve ser enviado.
      - `pin` string: Senha definida pelo titular do certificado armazenado no BRyKMS para autorizar o acesso a chave. <h3>Valor deve estar codificado em Base64.</h3>
      - `token` string: Token de pré-autorização de acesso a chave no BRyKMS. Este token deve ser gerado em um passo anterior através da [API Certificado em Nuvem](https://api-assinatura.bry.com.br/api-certificado-em-nuvem) e permite o acesso a chave durante um determinado tempo ou quantidade de vezes. <h3>Valor deve estar codificado em formato Hexadecimal.</h3>
      - `uuid_cert` string: UUID do certificado cadastrado no BRyKMS. O UUID pode ser obtido via API ou na interface do BRyKMS, na tela de gerenciamento de um certificado.
      - `user` string: CPF do titular do certificado no BRy KMS. Pode ser utilizado para filtrar o certificado no compartimento vinculado uma conta Pessoa Jurídica. Caso seja uma conta de Pessoa Física, irá filtrar pelo certificado mais atual.
      - `cloud_token` string: Define o token de identificação do certificado cadastrado no BRyKMS.
    - object: Credenciais de acesso ao certificado armazenado em HSM Dinamo. Um dos valores entre 'user' e 'token' deve ser enviado.
      - `uuid_cert` string, required: Identificador do certificado que será utilizado para assinatura.
      - `uuid_pkey` string, required: Identificador da chave privada que será utilizada para assinatura.
      - `user` string: Usuário que irá acessar o HSM.
      - `pin` string: Senha de acesso do usuário às chaves armazenadas em HSM. <h3>Valor deve estar codificado em Base64.</h3>
      - `otp` string: Valor do OTP que será utilizado para acessar o HSM.
      - `token` string: Token de acesso às chaves armazenadas em HSM. <h3>Valor deve estar codificado em Base64.</h3>
    - object: Credenciais de acesso ao certificado armazenado no GOVBR.
      - `token` string, required: Token de acesso a [API de Assinatura Digital Avançada](https://www.gov.br/conecta/catalogo/apis/assinatura-digital-avancada).
    - object: Credenciais de acesso ao certificado armazenado em HSM Dinamo, no HUB-Signer auxiliar configurado. Disponível atualmente apenas para o endpoint de assinatura PDF. Um dos valores entre 'user' e 'token' deve ser enviado.
      - `uuid_cert` string, required: Identificador do certificado que será utilizado para assinatura.
      - `uuid_pkey` string, required: Identificador da chave privada que será utilizada para assinatura.
      - `user` string: Usuário que irá acessar o HSM.
      - `pin` string: Senha de acesso do usuário às chaves armazenadas em HSM. Valor deve estar codificado em Base64.
      - `otp` string: Valor do OTP que será utilizado para acessar o HSM.
      - `token` string: Token de acesso às chaves armazenadas em HSM. Valor deve estar codificado em Base64.
    - object: Credenciais de acesso ao certificado armazenado em serviço PSC.
      - `uuid_cert` string: Identificador do certificado que será utilizado para assinatura.
      - `url` string, required: Url de acesso ao serviço PSC que será utilizado.
      - `token` string, required: Token de acesso ao serviço PSC. O token deve estar configurado de acordo com o número de assinaturas que serão realizadas.
  - `returnType` string, required: Define o tipo de retorno da requisição. LINK retorna uma resposta JSON, a qual possui links para downloads dos arquivos assinados. BASE64 retorna uma lista com arquivos assinados, codificados em Base64. Caso LINK, o arquivo será excluído da cache após o download.
  - `hashAlgorithm` string, required: Algoritmo de HASH. [Valores disponíveis: SHA1, SHA256, SHA512]
  - `profile` string, required: Tipo de perfil desejado para a assinatura a ser gerada. [Valores disponíveis: BASIC, COMPLETE, ADRB, ADRT, ADRV, ADRC, ADRA, ETSI_B, ETSI_T, ETSI_LT, ETSI_LTA]
  - `signatureFormat` string, required: Formato da assinatura. [Valores disponíveis: ENVELOPED, ENVELOPING, DETACHED]
  - `operationType` string: Tipo de Operação. [Valores disponíveis: SIGNATURE, CO_SIGNATURE]
  - `binaryContent` string: true = Documento original em qualquer formato<br>false = Documento original no formato xml
  - `includeXPathEnveloped` string: Define se a regra de XPath para que assinaturas anteriores sejam ignoradas em assinaturas enveloped será incluída ou não na assinatura.
  - `generateSimplifiedXMLDSig` string: Define se a assinatura XML básica será gerada sem o prefixo do namespace XMLDSig nas tags da assinatura e se o identificador do certificado do signatário (emissor e serial) será incluído ou não no KeyInfo da assinatura.
  - `includeSigningTime` string: Define se a hora local da assinatura será incluída nos atributos assinados.
  - `canonicalizerType` union: Define o algoritmo de canonicalização a ser aplicado no conteúdo assinado.[Valores disponíveis: INCLUSIVE e EXCLUSIVE]
    - string: Conteúdo processado exclui todos as declarações de namespaces dos antepassados do nodo-alvo, mantendo apenas as declarações de namespace do nodo-alvo, excluindo os comentários. A URL deste canonicalizador é http://www.w3.org/2001/10/xml-exc-c14n#.
    - string: Conteúdo processado inclui todos as declarações de namespaces dos antepassados do nodo-alvo, excluindo os comentários. A URL deste canonicalizador é http://www.w3.org/TR/2001/REC-xml-c14n-20010315.
  - `originalDocuments[0][nonce]` string: Nonce do documento original.
  - `originalDocuments[0][content]` string, binary, required: Arquivo que será assinado. Para lotes, basta incrementar o valor do índice, por ex: originalDocuments[0], originalDocuments[1]
  - `originalDocuments[0][information]` string: Demais informações sobre o arquivo.
  - `originalDocuments[0][filename]` string: Nome do arquivo.
  - `originalDocuments[0][specificNode][id]` string: ID do nodo a ser assinado.
  - `originalDocuments[0][specificNode][name]` string: Nome do nodo a ser assinado.
  - `originalDocuments[0][specificNode][namespace]` string: Namespace do nodo a ser assinado.
  - `policyOid` string: Quando enviado, este parâmetro define o OID da política de assinatura a ser usada com perfil de assinatura selecionado.
  - `lineBreak` boolean: Define se deve ser utilizado quebra de linha na codificação de dados base64 na estrutura da assinatura como certificado, LCR, cadeia e carimbo do tempo. Padrão é True. Utilize o valor False somente se necessário para compatibilidade com outras plataformas.
  - `generationID` string: Define o tipo de geração de IDs nas assinaturas. Valores disponíveis: [SEQUENCIAL, PADRONIZADO]

## Response `200`

- union
  - DocumentoLinkSemNonceENome
    - `identificador` string: Identificador da requisição
    - `quantidadeAssinaturas` integer: Numero de documentos da requisição
    - `documentos` object[]
      - `hash` string: Hash do documento
      - `links` object[]
        - `rel` string
        - `href` string: Link para recuperar documento assinado
  - string[]

## Other responses

- `400`: Resposta de erro da aplicação
- `default`: Para mais detalhes sobre as Respostas: [link para as respostas de erro](/openapi/assinadoresXml.html) ou [no formato properties](/openapi/assinadoresXmlErrors.properties)

---

[API](https://skmtc.dev/bry/apis/bry-easy-sign-api-rest.md) - [All operations](https://skmtc.dev/bry/apis/bry-easy-sign-api-rest/llms.txt) - [OpenAPI document](https://skmtc.dev/bry/apis/bry-easy-sign-api-rest/revisions/c87e026e87ac?raw)
