API Integrations

API Integrations

POSTCreate Virtual Account
https://pay.connectramp.com/api/virtual-accounts/create
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json
Bodyraw (json)
Copy
{
  "bvn": "22192474887",
  "type": "Corporate",
  "nin": "11111122221",
  "virtual_account_type": "Permanent",
  "account_name": "BOlaOla",
  "rc_number": "99988828822",
  "currency": "NGN",
  "reference": "9ad98621-6763-491f-9a02-e0aa0d955318",
  "customer_email": "hello@gmail.com"
}

Our APIs are REST-based and designed to be intuitive and scalable. You can:

  • Collect local and international payments
  • Receive real-time updates via webhooks

All requests must be authenticated and sent over HTTPS.

Environments

Ramp offers two distinct API environments: Sandbox (Test) and Live (Production). Understanding how each works ensures smooth integration and deployment.

🧪 Sandbox Environment

This environment is built for testing. It mimics real-world scenarios with simulated data — so you can build, test, and debug safely without affecting actual accounts or funds.

🚀 Live Environment

This is the production environment where real customers, data, and transactions are handled. Only move here after successful testing in the sandbox.

🔑 Key Things to Note:

  • Separation: Sandbox and Live environments are fully isolated — with different API keys, business IDs, and credentials.
  • Real vs Simulated Data: Sandbox transactions are simulated. Live transactions involve actual money and customer data.
  • Environment URLs:

✅ Get started by creating a free Ramp account or contacting support for access.

Live Environment

The Live environment is where real transactions take place and customer data is handled securely. Before moving to this environment, ensure your integration is thoroughly tested in the sandbox.

👍 Key Features

  • Security: The Live environment is built to the highest security standards, protecting sensitive data and transactions.
  • Compliance: Ramp’s Live environment adheres to regional financial regulations, ensuring reliable and compliant transactions

🔑 Key Points to Note

  • KYC Completion: Complete your KYC (Know Your Customer) process before using Live API keys. Access to the Live environment is granted only after KYC verification.
  • API Keys: Live and sandbox API keys are different. Make sure you generate and use the correct keys for the Live environment.
  • Dashboard Configuration: Switch your dashboard to Live mode to get the correct API keys and settings.
  • Webhook Setup: Set up and test webhooks in the sandbox before transitioning to Live, as webhooks do not carry over.

🌐 Live Environment URL

https://api.connectramp.com/api

🛠️ Steps to Get Started

  1. Complete KYC: Finalize your KYC process.
  2. Switch to Live Mode: Change your dashboard to Live mode.
  3. Generate Live API Keys: Obtain your Live API keys.
  4. Update Your Application: Replace sandbox URLs with the Live URL.
  5. Verify Webhooks: Test and confirm webhooks in the sandbox before going live.

🚧 Important Considerations

  • Data Integrity: Transactions in the Live environment are real and irreversible. Thoroughly test in the sandbox before moving to Live.
  • Support: If you need help setting up the Live environment, contact Ramp support.

Sandbox Environment

The Sandbox environment provides a secure and isolated space to test Ramp’s APIs. It replicates the live environment, allowing you to experiment without affecting real-world transactions.

In the Sandbox, you can:

  • Test Card Payments: Simulate different card payment scenarios to ensure your integration handles them correctly.

These features are vital for validating your integration before moving to live operations.

Authentication

Authentication secures your API requests through industry-standard encryption protocols and unique API keys. All requests must include valid authentication credentials transmitted securely over HTTPS to ensure that only authorized applications can access the payment processing functionality and sensitive data.

API KEYS

To access Ramp’s APIs, include the following header in each request:

 cURL
Copy
<code></code>Authorization: Bearer <your-secret-key>

You can find your secret and public keys on your developer dashboard.

 

Virtual Account

Create Virtual Account

An API endpoint (POST request to /api/virtual-accounts/create) that allows you to generate a new virtual account for a customer or business. It supports parameters such as bvn, nin, rc_number, account_name, and currency, along with specifying the type (e.g., Corporate) and virtual_account_type (e.g., Permanent). A unique reference and customer_email are also required for identification and communication purposes. This endpoint is ideal for enabling customers to receive payments directly into dedicated virtual accounts, streamlining collections and reconciliation processes.

POSTCreate Virtual Account
https://pay.connectramp.com/api/virtual-accounts/create
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json
Bodyraw (json)
Copy
{
  "bvn": "22192474887",
  "type": "Corporate",
  "nin": "11111122221",
  "virtual_account_type": "Permanent",
  "account_name": "BOlaOla",
  "rc_number": "99988828822",
  "currency": "NGN",
  "reference": "9ad98621-6763-491f-9a02-e0aa0d955318",
  "customer_email": "hello@gmail.com"
}

Payload

Request Parameters
Parameter Description
bvn Bank Verification Number of the customer or corporate entity. Example: “22192474887”
type Type of account holder. Example: “Corporate” or “Individual”.
nin National Identification Number of the account holder. Example: “11111122221”
virtual_account_type Specifies whether the virtual account is “Permanent” or “Temporary”.
account_name Name to be assigned to the virtual account. Example: “BOlaOla”
rc_number Company registration number (for corporate accounts). Example: “99988828822”
currency Currency for the virtual account. Example: “NGN”
reference A unique identifier for the request, often a UUID. Example: “9ad98621-6763-491f-9a02-e0aa0d955318”
customer_email Email address of the customer. Example: “hello@gmail.com”

Pay Ins

Card Processing

Card Processing enables secure handling of payment card transactions through our API, supporting various card types and verification methods. This service manages the entire lifecycle of card payments including validation, processing, settlement, and provides detailed transaction results for reconciliation purposes.

GET Get Subaccounts

The GET Get Subaccounts endpoint retrieves a comprehensive list of all subaccounts associated with your primary account. This allows you to manage multiple business entities or payment destinations within a single integration, with each subaccount maintaining separate transaction histories and configurations.

GETGet Subaccounts
https://pay.connectramp.com/api/get-subaccount
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json

POST Initiate

The POST Initiate endpoint begins a new payment flow by creating a transaction session with specified parameters. This request establishes the foundation for subsequent payment operations, returning a unique identifier that can be referenced throughout the transaction lifecycle.

POSTInitiate
https://pay.connectramp.com/api/v2/initiate
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json
Bodyraw (json)
Copy
{
    "reference": "{{$randomUUID}}",
    "amount": "50",
    "narration": "Narration heeeere",
    "currency": "USD",
    "card_data": {
        "pan": "5399832641760090",
        "cvv": "146",
        "expiryMonth": "05",
        "expiryYear": "50"
    },
    "callback_url": "https://redirect_url.com",
    "metadata": {
        "reason": "Payment for F1"
    },
    "device_information": {
        "http_browser_language": "en-US",
        "http_browser_java_enabled": false,
        "http_browser_javascript_enabled": true,
        "http_browser_color_depth": "24",
        "http_browser_screen_height": "820",
        "http_browser_screen_width": "360",
        "http_browser_time_difference": "",
        "user_agent_browser_value": "Mozilla/5.0 (Linux; Android 12; Infinix X6819) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Mobile Safari/537.36",
        "device_channel": "Browser",
        "ip_address": "54.144.139.131"
    },
    "billing_information": {
        "postcodezip": "100001",
        "street": "lagos",
        "city": "lagos",
        "country": "NGA",
        "stateProvince": "lagos"
    },
        "customer_information": {
        "email": "olu@gmail.com",
        "firstName": "testFirstName",
        "lastName": "testLastName",
        "mobilePhone": "+1 555 1234 567"
    },
    "subaccount_id": "5d557a1c-66c2-47b2-9146-50f10af3cc4e"
}

Payload

Request Parameters
Parameter Description
 Reference A unique identifier for the transaction. It’s used to track or reference the payment later. Usually a UUID (e.g., {{$randomUUID}}).
 Amount The transaction amount to be charged. Example: “50”.
Narration A short description of the transaction’s purpose (e.g., “Payment for services”).
Currency The currency in which the payment is being made. Example: “USD”.
Card_Data Contains the credit card information for the transaction.
pan Card number (e.g., “5399832641760090”).
cvv 3-digit security code on the card (e.g., “146”).
ExpiryMonth 2-digit expiration month of the card (e.g., “05”).
ExpiryYear 2-digit expiration year (e.g., “50” = 2050).
Callback_URL The endpoint on your server to receive payment status updates after processing (e.g., “https://callbackurl.com”).
Metadata Custom key-value pairs for internal use.
Example: “reason”: “Payment for F1”
Device_Information Used for fraud checks and 3DS authentication.
http_browser_language Browser language (e.g., “en-US”).
http_browser_java_enabled Whether Java is enabled (true/false).
http_browser_javascript_enabled Whether JavaScript is enabled (true/false).
http_browser_color_depth: Color depth of the user’s screen (e.g., “24”).
http_browser_screen_height Screen height in pixels.
http_browser_screen_width Screen width in pixels.
http_browser_time_difference Timezone offset in minutes from UTC.
user_agent_browser_value The full user agent string of the browser.
device_channel Source of the transaction (e.g., “Browser”, “Mobile”).
ip_address The user’s IP address.
billing_information The billing address of the cardholder.
postcodeZip ZIP or postal code.
Street Street name or address.
City City name.
Country 3-letter ISO country code (e.g., “TUR” for Turkey).
stateProvince State or province name.
customer_information Basic details about the customer.
Email Customer’s email address.
firstName Customer’s first name.
lastName Customer’s last name.
mobilePhone Customer’s phone number in international format.
subaccount_id The unique ID of the subaccount responsible for the transaction.
This is obtained via the “Get Subaccount” API.

POST Charge

The POST Charge endpoint processes payment transactions against customer payment methods, capturing funds for products or services. This essential endpoint supports multiple currencies, custom metadata, and provides detailed response data including authorization status and transaction identifiers.

POSTCharge
https://pay.connectramp.com/api/v2/charge
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Bodyraw (json)
Copy
{
  "transaction_id": "SRK4NC92PFHLGZW78A3E"
}

Payload

Request Parameters
Parameter Description
transaction_id A unique identifier for the transaction you want to charge. Example: “SRK4NC92PFHLGZW78A3E”

GET Query Transaction

The GET Query Transaction endpoint allows retrieval of detailed information about specific transactions using unique transaction identifiers. This functionality supports reconciliation processes, transaction monitoring, and provides visibility into payment statuses, amounts, and associated metadata.

GETQuery Transaction
https://pay.connectramp.com/api/query/:reference
HEADERS
AuthorizationBearer YOUR_API_TOKEN

 

MOMO

Initiate

An API endpoint (POST request to /momo/initiate) that allows you to initiate a mobile money (MoMo) transaction. This endpoint is designed to trigger a payment request to a user’s mobile wallet, using their phone number and preferred payment provider. It supports specifying transaction details such as amount, currency, and a unique customer reference. Useful for enabling seamless MoMo payments in applications targeting regions where mobile money is prevalent, ensuring secure and efficient transaction processing.

POSTInitiate
https://pay.connectramp.com/momo/initiate
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Bodyraw (json)
Copy
{
  "customer_reference": "16401e05-0c12-4ccc-bbff-ee1a767d39f2",
  "amount": "20",
  "currency": "GHS",
  "phone_no": "233801234567",
  "payment_provider": "MTN"
}

Payload

Request Parameters
Parameter Description
pan Mobile Money number or identifier (often the customer’s wallet number). Example: “4696660001638370”
subaccount_id The ID of the subaccount initiating the transaction. Used to route or attribute the transaction correctly. Example: “9999999999”

 

customer_reference A unique identifier for the customer or transaction, often a UUID. Used to track or reconcile payments. Example: “16401e05-0c12-4ccc-bbff-ee1a767d39f2”
amount The amount to be charged or paid. Example: “20”
currency The currency of the transaction. Example: “GHS”
phone_no The customer’s phone number in international format. Example: “233801234567”
payment_provider The Mobile Money service provider to be used (e.g., “MTN”, “AIRTELTIGO”, “VODAFONE”).

Process

An API endpoint (POST request to /momo/process) that allows you to verify and complete a mobile money transaction by submitting a one-time password (OTP). This endpoint is typically used after initiating a MoMo transaction and receiving an OTP from the user, ensuring two-factor authentication and secure payment processing. It requires the unique transaction_id from the initiation phase and the user-provided otp to finalize the transaction. Ideal for workflows requiring user confirmation before funds are debited.

POSTProcess
https://pay.connectramp.com/momo/process
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Bodyraw (json)
Copy
{
  "transaction_id": "2JDSN4LBZWCRQEA9GXFH",
  "otp": "200023"
}

Payload

Request Parameters
Parameter Description
transaction_id The unique ID of the transaction being processed. Example: “2JDSN4LBZWCRQEA9GXFH”
otp One-Time Password used to authorize the transaction. Example: “200023”
customer_reference A unique identifier for the customer or transaction, often a UUID. Used to track or reconcile payments. Example: “16401e05-0c12-4ccc-bbff-ee1a767d39f2”
amount The amount to be charged or paid. Example: “20”
currency The currency of the transaction. Example: “GHS”
phone_no The customer’s phone number in international format. Example: “233801234567”
payment_provider The Mobile Money service provider to be used (e.g., “MTN”, “AIRTELTIGO”, “VODAFONE”).

Query Transaction

An API endpoint (GET request to /momo/requery/:customer_reference) that allows you to retrieve the status of a specific mobile money transaction using the customer_reference as a path parameter. This endpoint is useful for checking whether a transaction was successful, pending, or failed, enabling real-time status tracking and enhancing user transparency. Ideal for post-payment verification and automated reconciliation processes.

GETQuery Transaction
https://pay.connectramp.com/momo/requery/:customer_reference
HEADERS
AuthorizationBearer YOUR_API_TOKEN

 

Refund

The general functionality that allows merchants to return funds to customers after a successful payment transaction. The refund system in JoinRamp includes both initiation and status checking capabilities.

Post Refund

An API endpoint (POST request to /v2/refund/initiate) that initiates a refund transaction. It requires the customer reference of the transaction as input in the request body and returns a status response indicating whether the refund was successfully initiated. This endpoint is essential for processing customer refunds programmatically.

POSTRefund
https://pay.connectramp.com/api/v2/refund/initiate
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json
Bodyraw (json)
Copy
{
  "reference": "A74HULEKBXCRGQ2"
}

Payload

Request Parameters
Parameter Description
pan The card number (Primary Account Number) used in the original transaction. Example: “4696660001638370”
subaccount_id The ID of the subaccount initiating the refund. Example: “9999999999”
reference A unique identifier for the initiated refund transaction. Example: “A74HULEKBXCRGQ2”

Post Partial Refund

An API endpoint (POST request to /v2/refund/initiate) that initiates a partial refund transaction. It requires the customer reference of the original transaction and the refund amount as input in the request body. The endpoint processes the refund and returns a status response indicating whether the partial refund was successfully initiated. This endpoint is essential for programmatically managing customer refund workflows, especially when only a portion of the original payment needs to be returned.

POSTPartial Refund
https://pay.connectramp.com/api/v2/refund/initiate
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json
Bodyraw (json)
Copy
{
  "reference": "A74HULEKBXCRGQ2"
  "amount": "1.2"
}

Payload

Request Parameters
Parameter Description
pan The card number (Primary Account Number) used in the original transaction. Example: “4696660001638370”
subaccount_id The ID of the subaccount initiating the refund. Example: “9999999999”
reference A unique identifier for the initiated refund transaction. Example: “A74HULEKBXCRGQ2”
amount The amount to be refunded. Can be a partial or full value. Example: “1.2”

 

Get Query Refund

An API endpoint (GET request to /v2/refund/query/:reference) that allows you to retrieve information about a specific refund using its reference ID as a path variable. This endpoint helps track the status and details of a previously initiated refund, enabling businesses to monitor refund processes and provide updates to customers.

GETQuery Refund
https://pay.connectramp.com/api/v2/refund/query/:reference
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json

 

 

Payouts

A core feature that enables businesses to disburse funds to recipients, such as vendors, partners, or customers. The payouts system in JoinRamp supports seamless initiation of transfers and real-time tracking of payout statuses, ensuring transparency and timely settlements.

Get banks

An API endpoint (GET request to /api/payout/banks) that allows you to retrieve a comprehensive list of supported banks. This endpoint is useful for populating bank options during user onboarding or when setting up payout and transfer operations, ensuring accuracy and reducing input errors.

GETGet banks
https://pay.connectramp.com/api/payout/banks?countryCode=GH
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json

Request Parameters

Request Parameters
Parameter Description
country_code (optional) Used only for Mobile Money or Ghanaian account verification. Example: “GH”

Account name lookup

An API endpoint (POST /api/payout/accounts/validate) that allows you to validate a bank account number using the provided account number and bank code. It returns the corresponding account name, enabling you to confirm beneficiary details before processing payouts or transfers. This verification step helps prevent errors and ensures funds are sent to the correct recipient.

POSTAccount name lookup
https://pay.connectramp.com/api/payout/accounts/validate
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json
Bodyraw (json)
Copy
{
    "account_number":"0112345678",
   "bank_code":"999998"
   //  ,"country_code":"GH" use this for momo or gh related
    
}

Payload

Request Parameters
Parameter Description
account_number The recipient’s bank or mobile money account number to verify. Example: “0112345678”
bank_code The bank or mobile money provider code. Example: “058” for GTBank, “090267” for Kuda, “999998” for test, etc.
country_code (optional) Used only for Mobile Money or Ghanaian account verification. Example: “GH”

 

Process Transfer

An API endpoint (POST /api/payout/disburse) used to initiate an interbank transfer from a merchant’s wallet to a beneficiary’s bank account. This request requires an api-key header for authorization and accepts a JSON payload containing the transfer amount, a unique customer reference, the destination bank code, account number, recipient name, and an optional narration. The endpoint facilitates seamless and secure disbursements while ensuring traceable transactions.

POSTProcess Transfer
https://pay.connectramp.com/api/payout/disburse
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json
Bodyraw (json)
Copy
{
  "customer_reference": "",
  "account_number": "1234567890",
  "bank_code": "000007",
  "currency": "GHS",
  "amount": "4",
  "narration": "Testing",
  "recipient_name": "John Doe",
  "ref_id": "",
  "sender_info": {
    "name": "Test",
    "phone": "090",
    "email": "test@gmail.com"
  }
}

Payload

Request Parameters
Parameter Description
customer_reference A unique reference string for tracking the transaction. Should be unique per request. Example: “2772h727dycncwddfdfdfnnccffhrfjjhhf2dfdhfhhb7dfr3fddhdd2ery”
account_number The beneficiary’s bank or wallet account number. Example: “0171605931”
bank_code The code of the beneficiary’s bank or mobile money provider. Example: “058” for GTBank
amount The amount to be transferred. Must be a numeric value as a string. Example: “120”
narration A short description or reason for the transfer. Example: “Test Transfer”
recipient_name Full name of the beneficiary. Example: “John DOE”
currency The currency of the transaction. Example: “GHS”

 

Verify transaction

An API endpoint (GET /api/payout/requery/{transaction_id}) that retrieves the status of a specific transaction using its unique reference ID. This endpoint is useful for checking the outcome of a previously initiated disbursement, allowing businesses to confirm whether a transaction was successful, pending, or failed. It ensures transparency and supports troubleshooting or reconciliation processes.

GETVerify transaction
https://pay.connectramp.com/api/payout/requery/63SUKNX9A5CRZH41754953377
HEADERS
AuthorizationBearer YOUR_API_TOKEN
Content-Typeapplication/json

 

 

 

 

Test Credentials

Use these credentials for testing in the sandbox environment:

  • Public Key: pk_test_xxxx
  • Secret Key: sk_test_xxxx

Only valid in the sandbox environment.

Test Cards

Use these cards for simulating card transactions:

Card Number Expiry CVV Response
4242 4242 4242 4242 12/30 123 Success
4000 0000 0000 0002 12/30 123 Failed

Webhooks (Callbacks)

Webhooks let you receive real-time updates from Ramp when events like payments or payouts occur. You must configure a webhook endpoint to start receiving data.

Setup Webhook

To set up a webhook for your business on Ramp:

  1. Log in to https://dashboard.connectramp.com.
  2. On the left sidebar, click on Business Information.
  3. Under Business Information, select Webhook.
  4. In the Webhook page:
    • Tick the Enable Webhook checkbox.
    • Enter your desired webhook URL in the URL field (make sure it starts with https://).
    • Click Set Webhook to save your configuration.

✅ Once set, your system will begin receiving relevant webhook notifications based on your integrations.

How To Validate Webhooks

Each webhook includes a signature header:

WebHook
Bash
Copy
X-JR-Signature: <hash>

To validate:

  1. Use your webhook secret
  2. Hash the body using SHA256 HMAC
  3. Compare it with the signature header

Collection Webhook

Triggered after a successful payment:

Collection WebHook
Json
Copy
{
  "event": "payment.success",
  "data": {
    "amount": 15000,
    "currency": "NGN"
  }
}

Charges Webhook (Checkout & Direct Charge)

Notifies you when a charge is completed:

Charges WebHook
Json
Copy
{
  "event": "charge.success",
  "data": {
    "method": "card",
    "status": "completed"
  }
}