API Docs
API ReferenceQuickstart

Quickstart

Get started with the Paysvara API and process your first payment.

Prerequisites

Before you begin, make sure you have:

  • A Paysvara account (sign up at the dashboard)
  • Your API keys from the dashboard

Step 1: Get Your API Keys

Navigate to your Paysvara dashboard and find your API keys. You'll need:

Key TypePrefixUse
Sandbox Secret Keysnd_For development and testing
Production Secret Keyprd_For production (real transactions)
Sandbox Publishable Keypk_snd_For client-side token creation (testing)
Production Publishable Keypk_prd_For client-side token creation (production)

Keep Keys Secure. Never expose your secret keys in client-side code or version control. Use environment variables to store them securely.

Step 2: Make Your First API Call

Test your connection by making a simple request to the API:

curl 'https://api.paysvara.com/health' \
  -H "api-key: snd_YOUR_API_KEY"

You should receive a 200 OK response confirming your API key is valid.

Step 3: Create Your First Payment

Now let's process a test payment. Use the test card number 4242424242424242 which always succeeds:

curl -X POST 'https://api.paysvara.com/payments' \
  -H "Content-Type: application/json" \
  -H "api-key: snd_YOUR_API_KEY" \
  -d '{
"amount": 1000,
"currency": "USD",
"profile_id": "YOUR_PROFILE_ID",
"customer_id": "YOUR_CUSTOMER_ID",
"description": "Order payment",
"capture_method": "automatic",
"email": "guest@example.com",
"authentication_type": "three_ds",
"confirm": true,
"payment_method": "card",
"payment_method_data": {
  "card": {
    "card_number": "4242424242424242",
    "card_exp_month": "12",
    "card_exp_year": "2028",
    "card_cvc": "123"
  }
},
"billing": {
  "address": {
    "line1": "1600",
    "line2": "Amphitheatre Parkway",
    "city": "Mountain View",
    "state": "California",
    "zip": "94043",
    "country": "US",
    "first_name": "John",
    "last_name": "Doe"
  },
  "phone": {
    "number": "6502530000",
    "country_code": "+1"
  }
}
}'
const response = await fetch('https://api.paysvara.com/payments', {
method: 'POST',
headers: {
  'Content-Type': 'application/json',
  'api-key': 'snd_YOUR_API_KEY',
},
body: JSON.stringify({
  amount: 1000,
  currency: 'USD',
  profile_id: 'YOUR_PROFILE_ID',
  customer_id: 'YOUR_CUSTOMER_ID',
  description: 'Order payment',
  capture_method: 'automatic',
  email: 'guest@example.com',
  authentication_type: 'three_ds',
  confirm: true,
  payment_method: 'card',
  payment_method_data: {
    card: {
      card_number: '4242424242424242',
      card_exp_month: '12',
      card_exp_year: '2028',
      card_cvc: '123',
    },
  },
  billing: {
    address: {
      line1: '1600',
      line2: 'Amphitheatre Parkway',
      city: 'Mountain View',
      state: 'California',
      zip: '94043',
      country: 'US',
      first_name: 'John',
      last_name: 'Doe',
    },
    phone: {
      number: '6502530000',
      country_code: '+1',
    },
  },
}),
});

const payment = await response.json();
console.log(payment);
import requests

response = requests.post(
  'https://api.paysvara.com/payments',
  headers={
      'Content-Type': 'application/json',
      'api-key': 'snd_YOUR_API_KEY',
  },
  json={
      'amount': 1000,
      'currency': 'USD',
      'profile_id': 'YOUR_PROFILE_ID',
      'customer_id': 'YOUR_CUSTOMER_ID',
      'description': 'Order payment',
      'capture_method': 'automatic',
      'email': 'guest@example.com',
      'authentication_type': 'three_ds',
      'confirm': True,
      'payment_method': 'card',
      'payment_method_data': {
          'card': {
              'card_number': '4242424242424242',
              'card_exp_month': '12',
              'card_exp_year': '2028',
              'card_cvc': '123',
          },
      },
      'billing': {
          'address': {
              'line1': '1600',
              'line2': 'Amphitheatre Parkway',
              'city': 'Mountain View',
              'state': 'California',
              'zip': '94043',
              'country': 'US',
              'first_name': 'John',
              'last_name': 'Doe',
          },
          'phone': {
              'number': '6502530000',
              'country_code': '+1',
          },
      },
  },
)

payment = response.json()
print(payment)
<?php
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.paysvara.com/payments',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
      'Content-Type: application/json',
      'api-key: snd_YOUR_API_KEY',
  ],
  CURLOPT_POSTFIELDS => json_encode([
      'amount' => 1000,
      'currency' => 'USD',
      'profile_id' => 'YOUR_PROFILE_ID',
      'customer_id' => 'YOUR_CUSTOMER_ID',
      'description' => 'Order payment',
      'capture_method' => 'automatic',
      'email' => 'guest@example.com',
      'authentication_type' => 'three_ds',
      'confirm' => true,
      'payment_method' => 'card',
      'payment_method_data' => [
          'card' => [
              'card_number' => '4242424242424242',
              'card_exp_month' => '12',
              'card_exp_year' => '2028',
              'card_cvc' => '123',
          ],
      ],
      'billing' => [
          'address' => [
              'line1' => '1600',
              'line2' => 'Amphitheatre Parkway',
              'city' => 'Mountain View',
              'state' => 'California',
              'zip' => '94043',
              'country' => 'US',
              'first_name' => 'John',
              'last_name' => 'Doe',
          ],
          'phone' => [
              'number' => '6502530000',
              'country_code' => '+1',
          ],
      ],
  ]),
]);

$response = curl_exec($curl);
$payment = json_decode($response, true);
print_r($payment);
package main

import (
  "bytes"
  "encoding/json"
  "fmt"
  "net/http"
)

func main() {
  payload := map[string]interface{}{
      "amount":              1000,
      "currency":            "USD",
      "profile_id":          "YOUR_PROFILE_ID",
      "customer_id":         "YOUR_CUSTOMER_ID",
      "description":         "Order payment",
      "capture_method":      "automatic",
      "email":               "guest@example.com",
      "authentication_type": "three_ds",
      "confirm":             true,
      "payment_method":      "card",
      "payment_method_data": map[string]interface{}{
          "card": map[string]string{
              "card_number":    "4242424242424242",
              "card_exp_month": "12",
              "card_exp_year":  "2028",
              "card_cvc":       "123",
          },
      },
      "billing": map[string]interface{}{
          "address": map[string]string{
              "line1":      "1600",
              "line2":      "Amphitheatre Parkway",
              "city":       "Mountain View",
              "state":      "California",
              "zip":        "94043",
              "country":    "US",
              "first_name": "John",
              "last_name":  "Doe",
          },
          "phone": map[string]string{
              "number":       "6502530000",
              "country_code": "+1",
          },
      },
  }

  body, _ := json.Marshal(payload)
  req, _ := http.NewRequest("POST", "https://api.paysvara.com/payments", bytes.NewBuffer(body))
  req.Header.Set("Content-Type", "application/json")
  req.Header.Set("api-key", "snd_YOUR_API_KEY")

  client := &http.Client{}
  resp, _ := client.Do(req)
  defer resp.Body.Close()

  var payment map[string]interface{}
  json.NewDecoder(resp.Body).Decode(&payment)
  fmt.Println(payment)
}

Step 4: Handle the Response

A successful payment returns the payment object with its current status:

{
  "payment_id": "pay_1234567890abcdef",
  "merchant_id": "mer_xyz789",
  "status": "succeeded",
  "amount": 1000,
  "amount_received": 1000,
  "currency": "USD",
  "capture_method": "automatic",
  "payment_method": "card",
  "payment_method_data": {
    "card": {
      "last4": "4242",
      "brand": "visa",
      "exp_month": "12",
      "exp_year": "2028"
    }
  },
  "created": "2024-01-15T10:30:00Z"
}

Check the status field to determine the payment outcome:

  • succeeded — Payment was successful
  • requires_action — Additional authentication needed (3DS)
  • failed — Payment failed (check error details)

Test Cards

Test card numbers for simulating different payment scenarios are available in your Merchant Dashboard. Navigate to Developers → Test Cards to view all available test cards including success, failure, and 3D Secure cards.

Next Steps