# Primeros pasos

Configura tu clave de API y crea tu primer link de pago en menos de 5 minutos.

> [!WARNING]
> El SDK `vexor` de npm (Stripe, MercadoPago, PayPal, Square, Talo) está **deprecado**: ya no se mantiene y no debe usarse. vexorpay es hoy una **API REST de links de pago en USD sobre Polar (Merchant of Record), sin SDK oficial**. Migración: <https://developers.vexorpay.com/docs/migracion-desde-el-sdk>

Fuente: <https://developers.whop.vexorpay.com/docs/getting-started>

## 1. Conecta Polar

Las ventas las cobra **Polar**, el Merchant of Record de vexorpay. Para poder cobrar necesitas conectar tu cuenta de Polar desde el dashboard de vexorpay (Conectar con Polar). Sin Polar conectado, la API devuelve `account_not_connected`; si tu organización de Polar todavía no puede cobrar, `polar_not_ready`.

## 2. Crea tu API key

Desde **Configuración → API keys** del dashboard, crea una clave nueva. Se muestra **una sola vez**, así que copiala y guardala en un lugar seguro.

La clave de producción tiene el formato `vxp_live_...` (la de pruebas, `vxp_test_...`) y se envía en el header `Authorization` de cada request. El modo lo define la clave, no el request.

## 3. Haz tu primer request

**curl**

```bash
curl https://api.vexorpay.com/api/v1/payment-links \
  -X POST \
  -H "Authorization: Bearer vxp_live_tu_clave" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 25,
    "title": "Mi primer cobro",
    "description": "Consultoría de diseño",
    "reference": "SEMANA-1"
  }'
```

**Node.js**

```js
const res = await fetch('https://api.vexorpay.com/api/v1/payment-links', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer vxp_live_tu_clave',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    amount: 25,
    title: 'Mi primer cobro',
    description: 'Consultoría de diseño',
    reference: 'SEMANA-1',
  }),
})

const data = await res.json()
```

**PHP**

```php
<?php

$client = curl_init('https://api.vexorpay.com/api/v1/payment-links');
curl_setopt_array($client, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer vxp_live_tu_clave',
    'Content-Type: application/json',
  ],
  CURLOPT_POSTFIELDS => json_encode([
    'amount' => 25,
    'title' => 'Mi primer cobro',
    'description' => 'Consultoría de diseño',
    'reference' => 'SEMANA-1',
  ]),
]);

$data = json_decode(curl_exec($client), true);
```

**Python**

```python

response = requests.post(
    'https://api.vexorpay.com/api/v1/payment-links',
    headers={
        'Authorization': 'Bearer vxp_live_tu_clave',
        'Content-Type': 'application/json',
    },
    json={
        'amount': 25,
        'title': 'Mi primer cobro',
        'description': 'Consultoría de diseño',
        'reference': 'SEMANA-1',
    },
)
data = response.json()
```

**Go**

```go
body, _ := json.Marshal(map[string]any{
    "amount":      25,
    "title":       "Mi primer cobro",
    "description": "Consultoría de diseño",
    "reference":   "SEMANA-1",
})

req, _ := http.NewRequest("POST", "https://api.vexorpay.com/api/v1/payment-links", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer vxp_live_tu_clave")
req.Header.Set("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
```

El monto mínimo por cobro es **USD 4**. El campo `reference` te sirve para identificar el cobro con tu n° de orden y para reconciliar pagos.

## 4. Comparte el link

La respuesta incluye `url` (la página pública de pago) y el link queda activo para cobrar.

## 5. Saber cuándo te pagan

Configura un [webhook](/docs/api/webhooks) para que tu servidor reciba `payment.completed` cuando un cliente paga, o consulta `GET /api/v1/orders?status=paid` / `GET /api/v1/events` a demanda.

## Próximo paso

Sigue con la [guía de venta de producto digital](/docs/sell-digital-product) para ver el flujo completo de punta a punta.
