Skip to content

Exponer los estados de transacción documentados como constantes #160

Open

Description

@jowyto

Este aporte lo realiza @jowyto en nombre de la organización Capitalizarme, que usa transbank-sdk (Webpay Plus) en producción.

PR: #165

Problema

Transaction.commit() y Transaction.status() devuelven el dict de la API tal cual, y el SDK no define constantes para el campo status. Cada integración escribe los strings a mano ("AUTHORIZED", "FAILED", …), y un error de tipeo ahí no se detecta hasta producción.

Valores documentados

El campo status de Confirmar una transacción y de Obtener estado de una transacción documenta estos valores (los mismos aparecen en details[].status de Webpay Plus Mall):

INITIALIZED, AUTHORIZED, REVERSED, FAILED, NULLIFIED, PARTIALLY_NULLIFIED, CAPTURED

Precedente

El SDK de PHP ya expone TransactionStatusEnum con 6 de estos valores (no incluye INITIALIZED).

Propuesta

Agregar transbank/common/transaction_status.py con TransactionStatus(str, Enum), cuyos valores son exactamente los siete strings documentados. Al heredar de str, TransactionStatus.AUTHORIZED == "AUTHORIZED" es verdadero. El cambio es solo aditivo: commit() y status() siguen devolviendo lo mismo y el código que hoy compara strings sigue funcionando.

Solo incluimos valores documentados (ver #162). Abriremos un PR con esta propuesta y sus tests.

Activity

  1. self-assigned this
    on Oct 7, 2026
  2. mastudillot commented on Oct 7, 2026

    @mastudillot
    Member

    Vamos a evaluar este impacto y cambio.

  3. jowyto commented on Oct 7, 2026

    @jowyto
    Author

    Hola @mastudillot ¿cada cuánto tiempo suelen hacer release de actualizaciones?

  4. mastudillot commented on Oct 20, 2026

    @mastudillot
    Member

    Hola, cuando tenemos cambios relevantes, estamos finalizando algunas cosas en otras herramientas, y pediré que sumemos las recomendaciones que nos diste

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions