OPT-SIG-005Decisión del bancoFirma y cabeceras

Idempotencia y duplicados

¿Cómo detecta el banco una petición repetida o un duplicado?

Las opciones

  • Idempotency-Key

    Obligatorio en POST /payment-requests, POST …/confirmation y POST /funds-confirmations, con las reglas de unicidad y expiración del draft del IETF.

  • paymentInformationId

    Un indicio para evitar una doble SCA o una doble ejecución. El banco también puede usar sus propios mecanismos.

Lado del banco
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.
Lado del TPP
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.

Ficha revisada el 19 de octubre de 2026.

Basado en la especificación STET PSD2 API 1.6.3, con licencia CC BY 3.0 FR.

La ficha tal como está almacenada
{
  "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"
}