API documentation
Novupay API & integration guide
High‑level documentation for integrating with Novupay as your payment aggregator. Detailed endpoint references can be added here as your API evolves.

Introduction

Overview

The Novupay API lets you accept and manage payments across multiple channels (banks, e‑wallets, over‑the‑counter partners) through a single integration. Use this section as a living guide: you can expand it later with full endpoint reference tables, diagrams, and flow examples.

Base URL (production): https://novupay.ph/api
Base URL (sandbox / placeholder): https://sandbox.novupay.ph/api (optional; configure based on your environment)

Authentication

API keys

Novupay uses bearer tokens for authenticating API requests. In your actual implementation, you can add details here about how keys are created, rotated, and scoped (for example: project‑level keys, environment‑specific keys, or OAuth client credentials).

All requests should include an Authorization: Bearer YOUR_API_KEY header. You can add tables for scopes and key types here as the platform matures.

Payments API

High‑level structure

The Payments API is centered around a small set of resources such as payment intents, payment methods, and channel‑specific instructions. The exact shape of your production API can evolve over time, but a common starting point is to expose endpoints like POST /payment/create and GET /payment/{id} for creating and retrieving individual payments.

Below is a representative example of a create‑payment request. You can adjust the fields, validation rules, and channel options as you finalize the platform:

POST /payment/create
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY

{
    "amount": 1000.00,
    "currency": "PHP",
    "reference_no": "REF-123456",
    "description": "Sample payment",
    "channel": "auto",          // e.g. 'bank', 'ewallet', 'counter', or 'auto'
    "callback_url": "https://your-app.test/payments/callback",
    "metadata": {
        "customer_id": "CUST-001",
        "notes": "Optional field for internal tracking"
    }
}

In your live documentation you can extend this section with tables of request parameters and validation rules, channel‑specific notes (e.g., e‑wallet vs bank transfer vs over‑the‑counter), and detailed response examples for successful and failed payments.

Webhooks

Real‑time notifications

Use webhooks to receive real‑time updates about payment statuses, reversals, and reconciliation events. This area is reserved for describing how to register webhook URLs, verify signatures, and handle retries in your application.

You can add:

  • Event types (e.g., payment.succeeded, payment.failed, payment.settled).
  • Payload examples and verification steps.
  • Recommended retry and backoff strategies.

Errors & idempotency

Best practices

Document common error structures, status codes, and recommended recovery behaviors here. You may also reserve space for idempotency keys (so clients can safely retry requests without creating duplicate payments).

Example placeholders:

  • Standard error response format (e.g., code, message, details).
  • Channel‑specific failure reasons and remediation steps.
  • How to use an Idempotency-Key header for create‑payment operations.

Code examples

Quick start samples

Use these examples as starting points. You can expand this area with more languages, SDK snippets, and environment‑specific notes as the platform grows.

PHP example

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://novupay.ph/api/payment/create',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([
        'amount'       => 1000.00,
        'currency'     => 'PHP',
        'reference_no' => 'REF-123456',
        'email'        => 'customer@example.com',
    ]),
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json',
        'Authorization: Bearer YOUR_API_KEY',
    ),
));

$response = curl_exec($curl);
curl_close($curl);

$data = json_decode($response, true);

JavaScript example

fetch('https://novupay.ph/api/payment/create', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer YOUR_API_KEY',
    },
    body: JSON.stringify({
        amount: 1000.00,
        currency: 'PHP',
        reference_no: 'REF-123456',
        email: 'customer@example.com',
    }),
})
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
Next steps

As you finalize your API surface, you can replace these placeholders with real endpoint tables, authentication flows, and channel‑specific integration notes. This page is structured to grow with your documentation needs.

Need help?

Developer support

Our developer support team can assist with integration questions, testing strategies, and rollout planning. Use the contact options below to get in touch.

Contact support api@novupay.ph

contact

Ready to Elevate Your Payment Experience?

Get Started