Logo

Quick Start

Go from zero to your first successful test payment.

  1. 1

    Create and verify your account

    Sign up for a Starter or Registered Business account. You'll need a Ghana Card number to complete registration.

  2. 2

    Generate your API keys

    Once approved, go to API Keys in your dashboard and click Generate API Key. Save your Secret Key immediately — it's only shown once.

  3. 3

    Initialize a transaction

    curl -X POST https://starpaysgh.com/api/v1/transactions/initialize \
      -H "Authorization: Bearer sk_test_xxxxxxxxxxxx" \
      -H "Content-Type: application/json" \
      -d '{"amount": 50, "customer_email": "customer@example.com"}'
    $ch = curl_init('https://starpaysgh.com/api/v1/transactions/initialize');
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_HTTPHEADER => [
            'Authorization: Bearer sk_test_xxxxxxxxxxxx',
            'Content-Type: application/json',
        ],
        CURLOPT_POSTFIELDS => json_encode([
            'amount' => 50,
            'customer_email' => 'customer@example.com',
        ]),
    ]);
    $response = json_decode(curl_exec($ch), true);
    curl_close($ch);
    const response = await fetch('https://starpaysgh.com/api/v1/transactions/initialize', {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer sk_test_xxxxxxxxxxxx',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ amount: 50, customer_email: 'customer@example.com' }),
    });
    const data = await response.json();
    import requests
    
    response = requests.post(
        'https://starpaysgh.com/api/v1/transactions/initialize',
        headers={'Authorization': 'Bearer sk_test_xxxxxxxxxxxx'},
        json={'amount': 50, 'customer_email': 'customer@example.com'},
    )
    data = response.json()
  4. 4

    Redirect your customer

    The response includes a checkout_url. Send your customer there to complete payment.

  5. 5

    Confirm the result

    Either listen for the webhook, or call the verify endpoint directly.