OPT-SIG-001Escolha do bancoreguladoAssinatura e cabeçalhos

Assinatura das requisições

As requisições do TPP são assinadas com http-signature ou com JWS?

As opções

  • http-signature

    Draft cavage, headers Signature e Digest, RSA-SHA256. Era o único mecanismo até a 1.6.2.

  • JWS

    Perfil JWS da Open Banking Europe, header X-JWS-Signature, algoritmo escolhido entre os da RFC 7518 e da ETSI TS 119 312. A STET recomenda fortemente migrar para ele.

Lado do banco
A assinatura continua obrigatória: uma requisição sem assinatura ou com assinatura inválida é rejeitada com 400. Só o mecanismo é escolhido. No OpenAPI 1.6.3, os dois headers são required: false, o que reflete a escolha entre um e outro e não torna a assinatura opcional.
Lado do TPP
Implementar os dois, já que os bancos que não migraram continuam com http-signature. O certificado de assinatura é um QSealC.
Regulação

As RTS exigem um certificado qualificado, QSealC ou QWAC (art. 34(1)). A STET exige os dois: o QWAC para o mTLS e o QSealC para a assinatura.

Textos citados

Ficha verificada em 19 de outubro de 2026.

Com base na especificação STET PSD2 API 1.6.3, sob licença CC BY 3.0 FR.

A ficha como está armazenada
{
  "id": "OPT-SIG-001",
  "edition": "1.6.3",
  "chooser": "aspsp",
  "title": {
    "fr": "Signature des requêtes",
    "en": "Request signing",
    "es": "Firma de las peticiones",
    "pt-br": "Assinatura das requisições"
  },
  "question": {
    "fr": "Les requêtes du TPP sont-elles signées en http-signature ou en JWS ?",
    "en": "Are TPP requests signed with http-signature or with JWS?",
    "es": "¿Las peticiones del TPP se firman con http-signature o con JWS?",
    "pt-br": "As requisições do TPP são assinadas com http-signature ou com JWS?"
  },
  "options": [
    {
      "label": {
        "fr": "http-signature",
        "en": "http-signature",
        "es": "http-signature",
        "pt-br": "http-signature"
      },
      "text": {
        "fr": "Draft cavage, en-têtes `Signature` et `Digest`, RSA-SHA256. C'était le seul mécanisme jusqu'à la 1.6.2.",
        "en": "The Cavage draft, `Signature` and `Digest` headers, RSA-SHA256. It was the only mechanism up to 1.6.2.",
        "es": "Draft cavage, headers `Signature` y `Digest`, RSA-SHA256. Fue el único mecanismo hasta la 1.6.2.",
        "pt-br": "Draft cavage, headers `Signature` e `Digest`, RSA-SHA256. Era o único mecanismo até a 1.6.2."
      }
    },
    {
      "label": {
        "fr": "JWS",
        "en": "JWS",
        "es": "JWS",
        "pt-br": "JWS"
      },
      "text": {
        "fr": "Profil JWS d'Open Banking Europe, en-tête `X-JWS-Signature`, algorithme choisi parmi ceux de la RFC 7518 et de l'ETSI TS 119 312. STET recommande fortement d'y passer.",
        "en": "The Open Banking Europe JWS profile, `X-JWS-Signature` header, with the algorithm chosen from those of RFC 7518 and ETSI TS 119 312. STET strongly recommends moving to it.",
        "es": "Perfil JWS de Open Banking Europe, header `X-JWS-Signature`, algoritmo elegido entre los de la RFC 7518 y la ETSI TS 119 312. STET recomienda encarecidamente migrar a él.",
        "pt-br": "Perfil JWS da Open Banking Europe, header `X-JWS-Signature`, algoritmo escolhido entre os da RFC 7518 e da ETSI TS 119 312. A STET recomenda fortemente migrar para ele."
      }
    }
  ],
  "stet": {
    "sections": [
      {
        "part": "framework",
        "section": "3.5.1",
        "page": 53
      },
      {
        "part": "framework",
        "section": "3.5.2",
        "page": 55
      }
    ],
    "openapi": [
      "SignatureHeader",
      "JwSignatureHeader"
    ],
    "flows": [],
    "changes": [
      408
    ],
    "remark": null
  },
  "aspsp": {
    "fr": "La signature reste obligatoire : une requête sans signature ou avec une signature invalide est rejetée en 400. Seul le mécanisme se choisit. Dans l'OpenAPI 1.6.3, les deux en-têtes sont `required: false`, ce qui traduit le choix entre les deux et ne rend pas la signature facultative.",
    "en": "Signing remains mandatory: a request with no signature or with an invalid one is rejected with 400. Only the mechanism is a choice. In the 1.6.3 OpenAPI, both headers are `required: false`, which reflects the choice between the two and does not make signing optional.",
    "es": "La firma sigue siendo obligatoria: una petición sin firma o con una firma no válida se rechaza con un 400. Solo se elige el mecanismo. En el OpenAPI 1.6.3, los dos headers son `required: false`, lo que refleja la elección entre ambos y no hace opcional la firma.",
    "pt-br": "A assinatura continua obrigatória: uma requisição sem assinatura ou com assinatura inválida é rejeitada com 400. Só o mecanismo é escolhido. No OpenAPI 1.6.3, os dois headers são `required: false`, o que reflete a escolha entre um e outro e não torna a assinatura opcional."
  },
  "tpp": {
    "fr": "Implémenter les deux, puisque les banques qui n'ont pas migré restent en http-signature. Le certificat de signature est un QSealC.",
    "en": "Implement both, since banks that have not migrated stay on http-signature. The signing certificate is a QSealC.",
    "es": "Implementar ambos, ya que los bancos que no han migrado siguen con http-signature. El certificado de firma es un QSealC.",
    "pt-br": "Implementar os dois, já que os bancos que não migraram continuam com http-signature. O certificado de assinatura é um QSealC."
  },
  "regulation": {
    "text": {
      "fr": "Les RTS demandent un certificat qualifié, QSealC ou QWAC (art. 34(1)). STET exige les deux : le QWAC pour le mTLS, le QSealC pour la signature.",
      "en": "The RTS require a qualified certificate, QSealC or QWAC (Article 34(1)). STET requires both: the QWAC for mTLS, the QSealC for signing.",
      "es": "Las RTS exigen un certificado cualificado, QSealC o QWAC (art. 34(1)). STET exige los dos: el QWAC para el mTLS y el QSealC para la firma.",
      "pt-br": "As RTS exigem um certificado qualificado, QSealC ou QWAC (art. 34(1)). A STET exige os dois: o QWAC para o mTLS e o QSealC para a assinatura."
    },
    "sources": [
      {
        "act": "rts",
        "ref": "art. 34(1)"
      }
    ]
  },
  "note": null,
  "production": null,
  "verifiedAt": "2026-10-19"
}