OPT-OPS-002Escolha do bancoreguladoincoerênciaContrato de API e operação

Resposta a uma função não oferecida

Como o banco responde a uma chamada para uma função que ele não oferece?

As opções

  • 400

    O endpoint não está implementado de forma alguma.

  • 501

    Ele está implementado, mas não pode responder nesse contexto.

  • 405 e 406

    Método não suportado, ou formato de resposta não oferecido.

Lado do banco
Preencher details no erro, com path e expectedEnumeration quando possível. FORMAT_ERROR pode indicar o caminho do campo com problema.
Lado do TPP
Tratar um 400 como um possível “não implementado” e ler details.
Regulação

Em caso de erro, o banco envia ao TPP uma mensagem que explica o motivo (art. 36(2) das RTS).

Textos citados

Incoerência da spec
O 501 só está declarado em PUT /consents e GET /trusted-beneficiaries, e vários caminhos não declaram o 400 que a regra prevê.

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-OPS-002",
  "edition": "1.6.3",
  "chooser": "aspsp",
  "title": {
    "fr": "Réponse à une fonction non offerte",
    "en": "Response to a feature not offered",
    "es": "Respuesta a una función no ofrecida",
    "pt-br": "Resposta a uma função não oferecida"
  },
  "question": {
    "fr": "Comment la banque répond-elle à un appel vers une fonction qu'elle n'offre pas ?",
    "en": "How does the bank respond to a call to a feature it does not offer?",
    "es": "¿Cómo responde el banco a una llamada a una función que no ofrece?",
    "pt-br": "Como o banco responde a uma chamada para uma função que ele não oferece?"
  },
  "options": [
    {
      "label": {
        "fr": "`400`",
        "en": "`400`",
        "es": "`400`",
        "pt-br": "`400`"
      },
      "text": {
        "fr": "Le point d'entrée n'est pas implémenté du tout.",
        "en": "The endpoint is not implemented at all.",
        "es": "El endpoint no está implementado en absoluto.",
        "pt-br": "O endpoint não está implementado de forma alguma."
      }
    },
    {
      "label": {
        "fr": "`501`",
        "en": "`501`",
        "es": "`501`",
        "pt-br": "`501`"
      },
      "text": {
        "fr": "Il est implémenté mais ne peut pas répondre dans ce contexte.",
        "en": "It is implemented but cannot respond in this context.",
        "es": "Está implementado, pero no puede responder en este contexto.",
        "pt-br": "Ele está implementado, mas não pode responder nesse contexto."
      }
    },
    {
      "label": {
        "fr": "`405` et `406`",
        "en": "`405` and `406`",
        "es": "`405` y `406`",
        "pt-br": "`405` e `406`"
      },
      "text": {
        "fr": "Méthode non supportée, ou format de réponse non proposé.",
        "en": "Method not supported, or response format not offered.",
        "es": "Método no soportado, o formato de respuesta no ofrecido.",
        "pt-br": "Método não suportado, ou formato de resposta não oferecido."
      }
    }
  ],
  "stet": {
    "sections": [
      {
        "part": "framework",
        "section": "3.8",
        "page": 57
      }
    ],
    "openapi": [
      "501",
      "405"
    ],
    "flows": [],
    "changes": [],
    "remark": null
  },
  "aspsp": {
    "fr": "Renseigner `details` dans l'erreur, avec `path` et `expectedEnumeration` quand c'est possible. `FORMAT_ERROR` peut indiquer le chemin du champ en cause.",
    "en": "Fill in `details` in the error, with `path` and `expectedEnumeration` when possible. `FORMAT_ERROR` can give the path of the field at fault.",
    "es": "Completar `details` en el error, con `path` y `expectedEnumeration` cuando sea posible. `FORMAT_ERROR` puede indicar la ruta del campo afectado.",
    "pt-br": "Preencher `details` no erro, com `path` e `expectedEnumeration` quando possível. `FORMAT_ERROR` pode indicar o caminho do campo com problema."
  },
  "tpp": {
    "fr": "Traiter un 400 comme un possible « non implémenté », et lire `details`.",
    "en": "Treat a 400 as a possible “not implemented”, and read `details`.",
    "es": "Tratar un 400 como un posible «no implementado», y leer `details`.",
    "pt-br": "Tratar um 400 como um possível “não implementado” e ler `details`."
  },
  "regulation": {
    "text": {
      "fr": "En cas d'erreur, la banque envoie au TPP un message qui en explique la raison (art. 36(2) des RTS).",
      "en": "In case of an error, the bank sends the TPP a message explaining the reason (Article 36(2) of the RTS).",
      "es": "En caso de error, el banco envía al TPP un mensaje que explica el motivo (art. 36(2) de las RTS).",
      "pt-br": "Em caso de erro, o banco envia ao TPP uma mensagem que explica o motivo (art. 36(2) das RTS)."
    },
    "sources": [
      {
        "act": "rts",
        "ref": "art. 36(2)"
      }
    ]
  },
  "note": {
    "fr": "Le 501 n'est déclaré que sur `PUT /consents` et `GET /trusted-beneficiaries`, et plusieurs chemins ne déclarent pas le 400 que la règle prévoit.",
    "en": "The 501 is only declared on `PUT /consents` and `GET /trusted-beneficiaries`, and several paths do not declare the 400 that the rule calls for.",
    "es": "El 501 solo está declarado en `PUT /consents` y `GET /trusted-beneficiaries`, y varias rutas no declaran el 400 que prevé la regla.",
    "pt-br": "O 501 só está declarado em `PUT /consents` e `GET /trusted-beneficiaries`, e vários caminhos não declaram o 400 que a regra prevê."
  },
  "production": null,
  "verifiedAt": "2026-10-19"
}