Pixta para desarrolladores

Integra tus eventos a Pixta.

La Partner API conecta tu sistema con los eventos, lotes, pedidos, compradores e informes de Pixta — y avisa con un webhook firmado cuando un pedido se paga, se cancela o se reembolsa.

Descargar OpenAPI

Direcciones

Producción
https://api.pixta.me/partner/v1
Pruebas
https://api.pixta.dev/partner/v1
curl https://api.pixta.me/partner/v1/events \
  -H "Authorization: Bearer $PIXTA_API_KEY"

Empieza en tres pasos

  1. 01

    Pide tu clave

    El equipo de Pixta emite una clave por integración, válida para sus productores.

  2. 02

    Autentícate

    Envía la clave en cada solicitud, en el encabezado Authorization.

  3. 03

    Lista y suscríbete

    Lee tus eventos y registra un webhook para recibir los pedidos en tiempo real.

Qué puedes hacer

  • Eventos y lotes

    Crea y edita eventos, portadas, lotes y cupones de los productores de tu integración.

  • Pedidos y entradas

    Lista pedidos y entradas, consulta el ingreso al evento y cancela con reembolso.

  • Compradores

    Busca compradores y el historial de compras de cada uno, por productor.

  • Informes

    Ventas, ingresos y conversión de cada evento, listos para tu panel.

  • Webhooks

    order.paid, order.canceled y order.refunded, firmados con HMAC-SHA256.

  • start.gg

    Los pedidos de torneos traen la identidad start.gg del jugador para armar los brackets.

Verifica la firma de los webhooks

Cada entrega trae X-Pixta-Signature: sha256=<hex>, el HMAC-SHA256 del cuerpo sin procesar con el secreto de tu endpoint. Compara en tiempo constante antes de procesar y responde 2xx en hasta 10 segundos; las entregas fallidas se reintentan con intervalos crecientes.

Encabezados de cada entrega

X-Pixta-Event
el evento (order.paid, order.canceled, order.refunded)
X-Pixta-Delivery-Id
el id de la entrega, para ignorar repeticiones
X-Pixta-Signature
la firma HMAC-SHA256 del cuerpo

Node.js

import crypto from "node:crypto";

export function isFromPixta(rawBody, signature, secret) {
  const expected = "sha256=" +
    crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
  const a = Buffer.from(expected);
  const b = Buffer.from(signature ?? "");
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

Python

import hashlib, hmac

def is_from_pixta(raw_body: bytes, signature: str, secret: str) -> bool:
    expected = "sha256=" + hmac.new(
        secret.encode(), raw_body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature or "")

Ruby

def from_pixta?(raw_body, signature, secret)
  expected = "sha256=#{OpenSSL::HMAC.hexdigest("SHA256", secret, raw_body)}"
  ActiveSupport::SecurityUtils.secure_compare(expected, signature.to_s)
end

Torneos con start.gg

Cuando el formulario del evento pide el inicio de sesión con start.gg, los pedidos y webhooks traen order.startgg con el user ID, player ID, gamer tag, slug, prefijo, nombre, e-mail y avatar del jugador. El productor puede limitar el campo a algunas entradas — solo jugadores, por ejemplo — y entonces solo esos pedidos lo traen.

"startgg": {
  "user_id": "999",
  "player_id": "42",
  "gamertag": "Ace",
  "slug": "873d03cc",
  "prefix": "TEAM",
  "name": "Ana Silva",
  "email": "ace@example.com",
  "avatar_url": "https://images.start.gg/…"
}

Referencia de la API

Todos los endpoints, parámetros, respuestas y ejemplos, generados del contrato OpenAPI. En inglés, como el contrato.

Abrir la referencia completa

¿Integramos?

Claves, entorno de pruebas y dudas técnicas: habla con el equipo de integraciones.

contato@pixta.me