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
npm install @andorpay/sdkANDORPAY_API_KEY=ap_test_replace_me
ANDORPAY_WEBHOOK_SECRET=whsec_replace_meCrear un pago
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 }).hostedUrlNo 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
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
Ejecuta desde servidor
Crea el cliente con ap_test_, solicita un checkout y abre hostedUrl antes de expiresAt. - 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.
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íntoma | Causa y corrección |
|---|---|
| Invalid Andorpay webhook signature | Usa el cuerpo exacto, la cabecera completa y el secreto activo. |
| checkout_idempotency_key_not_allowed | Llama a checkouts.create con un único argumento de entrada. |
| api_key_invalid | Carga una clave activa en el proceso servidor. |
| product_not_found | Usa un producto activo del comercio autenticado. |
| La respuesta no tiene tipo concreto | Valida 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.