1app
Create Boldd AccountLogin
  • Introduction
  • Authentication
  • Balance
  • Get Exchange Rate
  • Response Code
  • RECEIVE PAYMENTS
    • Payments
      • Initialize Payment
      • Verify Payment
      • Payment List
      • Payment Details
    • Inline/Popup Checkout
    • Payouts / Settlements
      • Payouts List
      • Settlement Transactions
    • Dispute Management
      • Fetch Disputes
      • Accept a Dispute
      • Decline a Dispute
    • Customers List
    • Webhook Notifications
    • Repush Notification
  • Virtual Accounts
    • Get Available Banks
    • Setup Preferred Bank
    • Generate Account
    • Virtual Account List
    • Account Transactions
    • Virtual Account Webhook
      • Notifications history
  • MAKE PAYMENTS
    • Airtime Purchase
    • Send Money
      • Verify Account Number
      • Make Transfer
    • Data Purchase
      • Data Plans
      • Data Bundle
    • Electricity
      • Electricity Billers
      • Verify Meter Number
      • Vend Electricity
    • Cable TV
      • Cable TV List
      • Verify IUC
      • Vend CableTv
    • Bank List
    • Payment Status
  • CUSTOMERS
    • Create Customer
  • VIRTUAL CARDS
    • Create Card Account
    • Cards Issuance
    • Card Funding
    • Card Transactions
    • Get all Cards
    • Cards Details
    • Cards Pan
    • Freeze and Unfreeze Card
  • USD Account
    • Create USD Account
  • IDENTITY
    • BVN Check
    • NIN Checks
  • SUB-ACCOUNTS
    • Create a Sub-Account
    • Attach Bank to a Sub-Account
    • Attach Payout Account
    • Get All Sub-Accounts
    • Sub-Accounts History
    • Sub-Accounts Wallet
  • Miscellaneous
    • Create Wallet
    • Universal Blacklist
  • Contact
    • Contact Us
Powered by GitBook
On this page
  • Initialize a transaction
  • Sample response

Was this helpful?

  1. RECEIVE PAYMENTS
  2. Payments

Initialize Payment

To make this request, send an authenticated request to the initiatetrans endpoint.

Initialize a transaction

POST https://api.oneappgo.com/v1/business/initiatetrans

Headers

Name
Type
Description

authorization*

String

SECRET_KEY

Request Body

Name
Type
Description

amount*

Transaction amount

lname*

String

Customer's last name

fname*

String

Customer's first name

customer_email*

String

Customer's email

reference*

String

Customer's transaction reference

currency*

String

NGN, GHS, ZAR or USD

redirecturl

String

Redirect URL

phone*

String

Customer phone number

meta_data

object

Addition field such as hascommission, subaccount, trackingid etc. See the sample metadata below

"meta_data": {
    "subaccount": true,
    "trackingid": "T3131122122",
    "order_id": 570,
    "cart_id": 335,
    "tx_id": 518,
    "vat": "0",
    "storedata": [
        {
            "name": "Another Clothing",
            "products": [
                {
                    "product_id": 285,
                    "description": "Gorilla T-shirt",
                    "quantity": 1,
                    "amount": 50000
                }
            ] 
        }, 
        {
            "name": "Another Clothing 2",
            "products": [
                {
                    "product_id": 9085,
                    "description": "Gucci Bag",
                    "quantity": 1,
                    "amount": 165000
                }
            ] 
        }
    ]
}

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 --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="example@gmail.com"' \
--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\nexample@gmail.com\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' => 'example@gmail.com', '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': 'example@gmail.com',
'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 the Authorization URL is successfully generated, redirect your users to the authorization_url so they can pay. After payment is completed, the users are redirected to your website using the redirect URL passed with the initialize endpoint.

PreviousPaymentsNextVerify Payment

Last updated 7 days ago

Was this helpful?