API Reference

Base URL: https://api.w2p.me

Authentication

Send Authorization: Bearer <API_KEY> on every request.

curl -s https://api.w2p.me/health -H "Authorization: Bearer <API_KEY>"

Idempotency

On POST creates, include Idempotency-Key to safely retry.

Idempotency-Key: 8a2e9f5c-1f8a-4d3c-a2b4-1b2c3d4e5f6a

Endpoints

GET /health

curl -s https://api.w2p.me/health

GET /status

curl -s https://api.w2p.me/status

POST /v1/payment_intents

curl -s -X POST https://api.w2p.me/v1/payment_intents \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: <uuid>" \
  -d '{"amount": 1499, "currency":"USD", "description":"T-shirt"}'

POST /v1/payment_intents/{pid}/confirm

curl -s -X POST https://api.w2p.me/v1/payment_intents/pi_xxx/confirm \
  -H "Authorization: Bearer <API_KEY>" -H "Content-Type: application/json" -d '{}'

POST /v1/webhooks

curl -s -X POST https://api.w2p.me/v1/webhooks \
  -H "X-W2P-Signature: t=1712345678,v1=abcdef..." \
  --data-binary @event.json

Python

import requests, uuid
r = requests.post("https://api.w2p.me/v1/payment_intents",
  headers={
    "Authorization": "Bearer YOUR_KEY",
    "Content-Type":"application/json",
    "Idempotency-Key": str(uuid.uuid4())
  },
  json={"amount":1499,"currency":"USD","description":"T-shirt"})
print(r.json())

JavaScript (Node)

const res = await fetch("https://api.w2p.me/v1/payment_intents", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_KEY",
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID()
  },
  body: JSON.stringify({"amount":1499,"currency":"USD","description":"T-shirt"})
});
console.log(await res.json());

PHP

$ch = curl_init("https://api.w2p.me/v1/payment_intents");
curl_setopt_array($ch, [
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer YOUR_KEY",
    "Content-Type: application/json",
    "Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000"
  ],
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => json_encode(["amount"=>1499,"currency"=>"USD","description"=>"T-shirt"]),
  CURLOPT_RETURNTRANSFER => true
]);
echo curl_exec($ch);