OPT-SIG-005Escolha do bancoAssinatura e cabeçalhos

Idempotência e duplicidades

Como o banco detecta uma requisição reenviada ou duplicada?

As opções

  • Idempotency-Key

    Obrigatória em POST /payment-requests, POST …/confirmation e POST /funds-confirmations, com as regras de unicidade e de expiração do draft da IETF.

  • paymentInformationId

    Uma indicação para evitar uma SCA duplicada ou uma execução duplicada. O banco também pode usar mecanismos próprios.

Lado do banco
Documentar o prazo de validade de uma chave, que a especificação não fixa. O banco também pode atualizar identificadores para evitar duplicidades e, nesse caso, retorna o recurso modificado.
Lado do TPP
Reutilizar a mesma chave para um retry da mesma requisição, nunca para uma nova. Reler o recurso com GET em vez de supor que os identificadores foram mantidos. A chave não se aplica ao PUT de cancelamento.

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-005",
  "edition": "1.6.3",
  "chooser": "aspsp",
  "title": {
    "fr": "Idempotence et doublons",
    "en": "Idempotency and duplicates",
    "es": "Idempotencia y duplicados",
    "pt-br": "Idempotência e duplicidades"
  },
  "question": {
    "fr": "Comment la banque détecte-t-elle une requête rejouée ou un doublon ?",
    "en": "How does the bank detect a replayed request or a duplicate?",
    "es": "¿Cómo detecta el banco una petición repetida o un duplicado?",
    "pt-br": "Como o banco detecta uma requisição reenviada ou duplicada?"
  },
  "options": [
    {
      "label": {
        "fr": "`Idempotency-Key`",
        "en": "`Idempotency-Key`",
        "es": "`Idempotency-Key`",
        "pt-br": "`Idempotency-Key`"
      },
      "text": {
        "fr": "Obligatoire sur `POST /payment-requests`, `POST …/confirmation` et `POST /funds-confirmations`, avec les règles d'unicité et d'expiration du draft IETF.",
        "en": "Mandatory on `POST /payment-requests`, `POST …/confirmation` and `POST /funds-confirmations`, with the uniqueness and expiry rules of the IETF draft.",
        "es": "Obligatorio en `POST /payment-requests`, `POST …/confirmation` y `POST /funds-confirmations`, con las reglas de unicidad y expiración del draft del IETF.",
        "pt-br": "Obrigatória em `POST /payment-requests`, `POST …/confirmation` e `POST /funds-confirmations`, com as regras de unicidade e de expiração do draft da IETF."
      }
    },
    {
      "label": {
        "fr": "`paymentInformationId`",
        "en": "`paymentInformationId`",
        "es": "`paymentInformationId`",
        "pt-br": "`paymentInformationId`"
      },
      "text": {
        "fr": "Un indice pour éviter une double SCA ou une double exécution. La banque peut aussi utiliser ses propres mécanismes.",
        "en": "A hint to avoid a double SCA or a double execution. The bank may also use its own mechanisms.",
        "es": "Un indicio para evitar una doble SCA o una doble ejecución. El banco también puede usar sus propios mecanismos.",
        "pt-br": "Uma indicação para evitar uma SCA duplicada ou uma execução duplicada. O banco também pode usar mecanismos próprios."
      }
    }
  ],
  "stet": {
    "sections": [
      {
        "part": "framework",
        "section": "3.7",
        "page": 57
      }
    ],
    "openapi": [
      "IdempotencyHeader",
      "PaymentInformationId"
    ],
    "flows": [],
    "changes": [
      526
    ],
    "remark": null
  },
  "aspsp": {
    "fr": "Documenter la durée de validité d'une clé, que la spec ne fixe pas. La banque peut aussi mettre à jour des identifiants pour éviter les doublons, et renvoie alors la ressource modifiée.",
    "en": "Document how long a key stays valid, which the spec does not set. The bank may also update identifiers to avoid duplicates, and then returns the modified resource.",
    "es": "Documentar el período de validez de una clave, que la especificación no fija. El banco también puede modificar identificadores para evitar duplicados, y en ese caso devuelve el recurso modificado.",
    "pt-br": "Documentar o prazo de validade de uma chave, que a especificação não fixa. O banco também pode atualizar identificadores para evitar duplicidades e, nesse caso, retorna o recurso modificado."
  },
  "tpp": {
    "fr": "Réutiliser la même clé pour un retry de la même requête, jamais pour une nouvelle. Relire la ressource par `GET` plutôt que supposer que ses identifiants ont été gardés. La clé ne s'applique pas au `PUT` d'annulation.",
    "en": "Reuse the same key for a retry of the same request, never for a new one. Read the resource back with `GET` instead of assuming its identifiers were kept. The key does not apply to the cancellation `PUT`.",
    "es": "Reutilizar la misma clave para un retry de la misma petición, nunca para una nueva. Volver a leer el recurso con `GET` en lugar de suponer que se han conservado sus identificadores. La clave no se aplica al `PUT` de cancelación.",
    "pt-br": "Reutilizar a mesma chave para um retry da mesma requisição, nunca para uma nova. Reler o recurso com `GET` em vez de supor que os identificadores foram mantidos. A chave não se aplica ao `PUT` de cancelamento."
  },
  "regulation": null,
  "note": null,
  "production": null,
  "verifiedAt": "2026-10-19"
}