Links

Initialize Payment

To make this request, send an authenticated request to the initiatetrans endpoint.
post
https://api.oneappgo.com/v1/business/initiatetrans
Initialize a transaction
Parameters
Header
authorization*
SECRET_KEY
Body
amount*
Transaction amount
fname*
Customer's first name
lname*
Customer's last name
customer_email*
Customer's email
phone*
Customer phone number
reference*
Customer's transaction reference
currency*
NGN, GHS, ZAR or USD
redirecturl*
Redirect URL
Responses
Your secret keys are to be kept secret and only stored on your servers. Do not pass your secret key to front end language where it can be exploited.
Take a look at how you might do this:
cURL
NodeJs
PHP - cURL
Python
curl --location --request POST 'https://api.oneappgo.com/v1/business/initiatetrans' \
--header 'Authorization: Bearer YOUR_SECRET_KEY' \
--form 'reference="fghjkl56789g"' \
--form 'amount="500"' \
--form 'customer_email="[email protected]"' \
--form 'currency="NGN"' \
--form 'redirecturl="https://example.com"' \
--form 'fname="John"' \
--form 'phone= "09012345678"'\,
--form 'lname="Doe"'
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': 'api.oneappgo.com',
'path': '/v1/business/initiatetrans',
'headers': {
'Authorization': 'Bearer YOUR_SECRET_KEY'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"reference\"\r\n\r\nfghjkl56789g\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"amount\"\r\n\r\n500\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"customer_email\"\r\n\r\[email protected]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"currency\"\r\n\r\nNGN\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"redirecturl\"\r\n\r\nhttps://example.com\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"fname\"\r\n\r\nJohn\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"lname\"\r\n\r\nDoe\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--";
req.setHeader('content-type', 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW');
req.write(postData);
req.end();
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.oneappgo.com/v1/business/initiatetrans',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('reference' => 'fghjkl56789g','amount' => '500','customer_email' => '[email protected]', 'phone' => '09012345678','currency' => 'NGN','redirecturl' => 'https://example.com','fname' => 'John','lname' => 'Doe'),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer YOUR_SECRET_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://api.oneappgo.com/v1/business/initiatetrans"
payload={'reference': 'fghjkl56789g',
'amount': '500',
'customer_email': '[email protected]',
'currency': 'NGN',
'redirecturl': 'https://example.com',
'fname': 'John',
'phone': '09012345678',
'lname': 'Doe'}
files=[
]
headers = {
'Authorization': 'Bearer YOUR_SECRET_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)

Sample response

{
"status": true,
"message": "Successful",
"reference": "2345KDF12",
"access_token": "6983b68c269f7fgha2beb85625288",
"authorization_url": "https://pay.1app.online/checkout/6983b68c269f7fgha2beb85625288/63490b1643375660547"
}
Once Authorization URL is successfully generated, then redirect your users to the authorization_url so they can pay. After payment is completed, the users are redirected to your website using the redirecturl passed with the initialize endpoint.