Skip to content

RequestService.process_response trata como error cualquier 2xx distinto de 200 y 299 #163

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: #166

En transbank/common/request_service.py, process_response evalúa el éxito con:

if response.status_code not in (200, 299):

Eso es pertenencia a una tupla, no un rango: solo 200 y 299 cuentan como éxito, y por ejemplo un 201 o 202 con cuerpo terminaría en TransbankError. Las respuestas 204 sin cuerpo no se ven afectadas, porque se resuelven antes con if not response.text.

Por comparación, los SDKs de Ruby (Net::HTTPSuccess), .NET (IsSuccessStatusCode) y Node (axios) consideran éxito todo el rango 2xx.

Hoy no vemos impacto en producción, porque la API responde 200 o 204 sin cuerpo, pero todo indica que la intención era un rango.

Propuesta

if not 200 <= response.status_code < 300:

No cambia nada para 200, 204, 4xx ni 5xx. Abriremos un PR con tests que cubren cada caso.

Activity

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

    @mastudillot
    Member

    Lo vamos a considerar, lo agregaremos para el siguiente release, gracias por el aporte.

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