Andorpay
Navegación de la documentación

Documentación para desarrolladores

TypeScript SDK

El cliente oficial envuelve la API HTTP y la verificación de webhooks para aplicaciones Node.js de servidor.

Antes de empezar

El paquete @andorpay/sdk requiere Node.js 18 o posterior. Necesitas una API key de pruebas y el identificador de un producto activo. Consulta el paquete publicado en npm.

Configuración

Instalar el SDK
bash
npm install @andorpay/sdk
Variables de servidor
dotenv
ANDORPAY_API_KEY=ap_test_replace_me
ANDORPAY_WEBHOOK_SECRET=whsec_replace_me

Crear un pago

Crear un checkout alojado
typescript
import "server-only"
import { Andorpay } from "@andorpay/sdk"

const andorpay = new Andorpay({
  apiKey: process.env.ANDORPAY_API_KEY!,
  apiVersion: "2026-01-01",
})

const checkout = await andorpay.checkouts.create({
  productId: "ap_prod_starter_monthly",
  externalCustomerId: "customer_42",
  customer: {
    email: "ana@example.com",
    name: "Ana Garcia",
  },
  successUrl: "https://shop.example.com/payment/success",
  failUrl: "https://shop.example.com/payment/failed",
})

const hostedUrl = (checkout as { hostedUrl: string }).hostedUrl

No pases la opción de idempotencia del cliente a checkouts.create. El endpoint alojado la rechaza y AndorPay crea una operación interna nueva para cada sesión. Abre el hostedUrl completo de la respuesta.

Probar la integración

  1. 1

    Instala la versión publicada

    Comprueba que package-lock, pnpm-lock o yarn.lock fija @andorpay/sdk 0.1.0 antes de validar los ejemplos.
  2. 2

    Ejecuta desde servidor

    Crea el cliente con ap_test_, solicita un checkout y abre hostedUrl antes de expiresAt.
  3. 3

    Completa los casos sandbox

    Valida autorización, 3DS, rechazo y webhook firmado con el mismo comercio de pruebas.

Configurar webhooks

El SDK expone andorpay.webhooks.verify. Pásale el cuerpo sin procesar, la cabecera de firma y el secreto activo antes de entregar el evento a tu aplicación.

Verificar un evento
typescript
import { Andorpay } from "@andorpay/sdk"

const andorpay = new Andorpay({
  apiKey: process.env.ANDORPAY_API_KEY!,
})

const rawBody = await request.text()
const event = andorpay.webhooks.verify(
  rawBody,
  request.headers.get("Andorpay-Signature") ?? undefined,
  process.env.ANDORPAY_WEBHOOK_SECRET!,
)

await acceptVerifiedAndorpayEvent(event)

La llamada lanza un error si la firma o la marca temporal no son válidas. Una vez verificado, reconoce reentregas por el mismo event.id según las garantías de tu arquitectura.

Errores frecuentes

SíntomaCausa y corrección
Invalid Andorpay webhook signatureUsa el cuerpo exacto, la cabecera completa y el secreto activo.
checkout_idempotency_key_not_allowedLlama a checkouts.create con un único argumento de entrada.
api_key_invalidCarga una clave activa en el proceso servidor.
product_not_foundUsa un producto activo del comercio autenticado.
La respuesta no tiene tipo concretoValida el objeto unknown en el límite de infraestructura antes de propagarlo.

Pasar a producción

Cambia la variable de servidor a una clave ap_live_ después de configurar Redsys productivo. No cambies el código del checkout ni expongas la configuración al cliente.

Verifica una operación real, el webhook y el estado en Redsys. Actualiza el paquete sólo después de revisar sus notas y volver a ejecutar los casos de sandbox.

Siguiente paso

    Fem servir galetes necessàries perquè la web funcioni i, si hi dones permís, galetes analítiques per millorar-la. Consulta la nostra Política de galetes.