transferfix.

Endpoints de cuenta

Estado de cuenta

Consulta el estado operacional de una cuenta creada por Transferfix. Este es el endpoint que tu backend usa para confirmar el pago hasta llegar a PAID.

GET/api/v2/accounts/statusEndpoint de polling

Endpoint

Podés consultar por account_id o account_number. En integraciones nuevas se recomienda persistir y usar account_id.

GET/api/v2/accounts/status

La cuenta se busca dentro de PaymentAccounts y siempre queda limitada a la empresa asociada a la API key.

Parámetros

Debés enviar uno de estos dos parámetros de query.

ParámetroRequeridoNotas
account_idSí*Identificador interno de Transferfix. Es la opción recomendada.
account_numberSí*Número de cuenta (CVU). Útil si no guardaste el account_id.

Importante

Tenés que enviar account_id o account_number. Si no mandás ninguno, la API devuelve validación 400.

Ejemplos

Consultas típicas por id interno o por número de cuenta.

Consulta por account_id
curl -G "https://transferfix.com.ar/api/v2/accounts/status" \
  -H "X-API-Key: ck_live_12345678_abcd" \
  --data-urlencode "account_id=42"
Consulta por account_number
curl -G "https://transferfix.com.ar/api/v2/accounts/status" \
  -H "X-API-Key: ck_live_12345678_abcd" \
  --data-urlencode "account_number=0000277800000000560490"

Estados

Estados relevantes para el flujo moderno con API key.

CREATED
{
  "success": true,
  "data": {
    "id": 42,
    "cucuru_customer_id": "pianta.entrada-0014",
    "cucuru_account_number": "0000277800000000560490",
    "cucuru_alias": "pianta.entrada-0014",
    "customer_email": "comprador@ejemplo.com",
    "currency": "ARS",
    "total_amount": 12500,
    "amount_paid": 0,
    "status": "CREATED",
    "created_at": "2026-03-09 18:40:01",
    "updated_at": "2026-03-09 18:40:01"
  }
}
PARTIALLY_PAID
{
  "success": true,
  "data": {
    "id": 42,
    "cucuru_customer_id": "pianta.entrada-0014",
    "cucuru_account_number": "0000277800000000560490",
    "cucuru_alias": "pianta.entrada-0014",
    "customer_email": "comprador@ejemplo.com",
    "currency": "ARS",
    "total_amount": 12500,
    "amount_paid": 5000,
    "status": "PARTIALLY_PAID",
    "created_at": "2026-03-09 18:40:01",
    "updated_at": "2026-03-09 18:44:22"
  }
}
PAID
{
  "success": true,
  "data": {
    "id": 42,
    "cucuru_customer_id": "pianta.entrada-0014",
    "cucuru_account_number": "0000277800000000560490",
    "cucuru_alias": "pianta.entrada-0014",
    "customer_email": "comprador@ejemplo.com",
    "currency": "ARS",
    "total_amount": 12500,
    "amount_paid": 12500,
    "status": "PAID",
    "created_at": "2026-03-09 18:40:01",
    "updated_at": "2026-03-09 18:48:10"
  }
}

Estado terminal

En el flujo actual basado en API key, PAID es el estado terminal esperado para confirmar la orden.

Sobre COMPLETED

COMPLETED no es el estado principal de este flujo. Solo aparece en la rama legacy de WooCommerce cuando una actualización downstream también termina bien.

Polling

La confirmación de negocio se resuelve con polling desde tu backend.

Ejemplo de polling
async function waitUntilPaid(accountId) {
  const startedAt = Date.now()

  while (Date.now() - startedAt < 15 * 60 * 1000) {
    const response = await fetch(
      "https://transferfix.com.ar/api/v2/accounts/status?account_id=" + accountId,
      {
        headers: {
          "X-API-Key": process.env.TRANSFERFIX_API_KEY
        }
      }
    )

    const payload = await response.json()
    if (!response.ok) throw new Error(payload.error || "Status error")

    const account = payload.data

    if (account.status === "PAID") {
      return account
    }

    await new Promise((resolve) => setTimeout(resolve, 5000))
  }

  throw new Error("Timeout waiting for payment")
}

Política recomendada

Empezá a consultar apenas recibís account_id. Un intervalo de 5 segundos es razonable mientras el usuario sigue activo en checkout. Si no hay cambios por varios minutos, podés bajar la frecuencia.
Transferfix API Docs