๐Ÿš€ RMA Gateway Simple Integration

Super simple payment integration for third-party applications

๐Ÿ“‹ What You Need

From your app: Amount, Order ID, API Key, API Secret
From RMA: Everything else is handled automatically!

The API automatically gets beneficiary ID, bank code, currency, and all other settings from your client configuration. You just need to provide the payment details!

๐Ÿงช Test the API

Response will appear here...

๐Ÿ’ป Integration Examples

JavaScript/Fetch

const createPayment = async (paymentData) => {
    try {
        const response = await fetch('http://127.0.0.1:8000/api/payment/create', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/json'
            },
            body: JSON.stringify({
                api_key: 'your_api_key_here',
                api_secret: 'your_api_secret_here',
                amount: 100.00,
                order_id: 'ORDER-2024-001',
                customer_email: 'customer@example.com', // optional
                description: 'Payment description' // optional
            })
        });
        
        const result = await response.json();
        
        if (result.success) {
            // Payment created successfully
            console.log('Transaction ID:', result.data.transaction_id);
            console.log('Payment URL:', result.data.payment_url);
            
            // Redirect customer to payment URL
            window.location.href = result.data.payment_url;
        } else {
            console.error('Payment failed:', result.message);
        }
    } catch (error) {
        console.error('Error:', error);
    }
};

PHP/cURL

<?php
function createPayment($apiKey, $apiSecret, $amount, $orderId, $customerEmail = null, $description = null) {
    $url = 'http://127.0.0.1:8000/api/payment/create';
    
    $data = [
        'api_key' => $apiKey,
        'api_secret' => $apiSecret,
        'amount' => $amount,
        'order_id' => $orderId
    ];
    
    if ($customerEmail) $data['customer_email'] = $customerEmail;
    if ($description) $data['description'] = $description;
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Accept: application/json'
    ]);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    $result = json_decode($response, true);
    
    if ($httpCode === 200 && $result['success']) {
        // Payment created successfully
        echo "Transaction ID: " . $result['data']['transaction_id'] . "\n";
        echo "Payment URL: " . $result['data']['payment_url'] . "\n";
        
        // Redirect customer to payment URL
        header('Location: ' . $result['data']['payment_url']);
        exit;
    } else {
        echo "Payment failed: " . $result['message'] . "\n";
    }
}

// Usage
createPayment(
    'your_api_key_here',
    'your_api_secret_here',
    100.00,
    'ORDER-2024-001',
    'customer@example.com',
    'Payment description'
);
?>

Python/Requests

import requests
import json

def create_payment(api_key, api_secret, amount, order_id, customer_email=None, description=None):
    url = 'http://127.0.0.1:8000/api/payment/create'
    
    data = {
        'api_key': api_key,
        'api_secret': api_secret,
        'amount': amount,
        'order_id': order_id
    }
    
    if customer_email:
        data['customer_email'] = customer_email
    if description:
        data['description'] = description
    
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    try:
        response = requests.post(url, json=data, headers=headers)
        result = response.json()
        
        if response.status_code == 200 and result['success']:
            print(f"Transaction ID: {result['data']['transaction_id']}")
            print(f"Payment URL: {result['data']['payment_url']}")
            return result['data']
        else:
            print(f"Payment failed: {result['message']}")
            return None
            
    except requests.exceptions.RequestException as e:
        print(f"Error: {e}")
        return None

# Usage
payment = create_payment(
    'your_api_key_here',
    'your_api_secret_here',
    100.00,
    'ORDER-2024-001',
    'customer@example.com',
    'Payment description'
)

๐Ÿ“ค Response Format

Success Response

{
    "success": true,
    "message": "Payment created successfully",
    "data": {
        "transaction_id": "TXN_1703123456_123",
        "order_id": "ORDER-2024-001",
        "amount": 100.00,
        "currency": "BTN",
        "payment_url": "http://127.0.0.1:8000/payment/TXN_1703123456_123",
        "status": "initiated",
        "beneficiary": "Test Company Ltd",
        "bank_name": "Bank of Bhutan",
        "created_at": "2024-12-21T06:30:56.000000Z"
    }
}

Error Response

{
    "success": false,
    "message": "Invalid API credentials",
    "errors": {
        "api_key": ["The api key field is required."]
    }
}