Elemi API Documentation
  • Introduction
  • Getting Started
    • Registration
    • Error Handling
    • Authentication
    • Merchant Account Credentials
      • Generate Secret Key
      • Regenerate Security Keys
    • Supported Countries/Regions
    • Transaction Limits
    • Sandbox Test Accounts
    • Elemi Public Keys
  • Utility Functions
    • Balance Inquiry
    • Payment Options
    • Payout Bank Codes
    • Mobile Money Operator Prefixes
    • Handling Notifications/Callbacks
      • Callback Events
    • Transaction Status Verification
  • Funds Collection
    • Getting Started
    • Mobile Money Collection
      • Mobile Money - Direct Charge
      • Mobile Money - Hosted Page
    • NGN Bank Transfers
    • ZAR Bank Collections
    • Card Payments
      • Hosted Payment Page
      • Direct Card Payment (S2S)
  • Payouts/Disbursements
    • Getting Started
    • Mobile Money Payouts
    • Bank Account Transfers
  • Callbacks
    • HMAC Signature Verification
    • RSA Signature Verification
  • Appendix
    • API Reference
    • Merchant Account Transfers
    • Availing Payout Funds
    • Sub Account Transfers
    • Funds Settlement
    • Transaction Audit Logs
    • Cross Currency Transactions
Powered by GitBook
On this page
  1. Appendix

API Reference

PreviousRSA Signature VerificationNextMerchant Account Transfers

Last updated 2 months ago

get
Query parameters
currencystringRequired
transaction_typestringRequired
Header parameters
public-keystringRequired
x-api-versionnumberRequired
Accept-Languagestring · enumRequiredDefault: enPossible values:
Responses
200
Payment providers retrieved successfully.
application/json
get
GET /data/payment-providers HTTP/1.1
Host: sandbox.elemitech.com
public-key: text
x-api-version: 1
Accept-Language: en
Accept: */*
200

Payment providers retrieved successfully.

{
  "code": 200,
  "status": "success",
  "message": "Request completed successfully",
  "data": {
    "payment_providers": [
      {
        "provider_name": "MTN Mobile Money Uganda",
        "provider_code": "mtn_ug",
        "transaction_method": "MOBILE_MONEY",
        "transaction_method_name": "Mobile Money",
        "transaction_type": "Collection",
        "transaction_currency": "UGX",
        "min_amount": 500,
        "max_amount": 3000000,
        "max_daily_amount": 7000000,
        "is_active": true,
        "option_prefixes": [
          "77",
          "78",
          "76",
          "39"
        ]
      },
      {
        "provider_name": "Airtel Money Uganda",
        "provider_code": "airtel_ug",
        "transaction_method": "MOBILE_MONEY",
        "transaction_method_name": "Mobile Money",
        "transaction_type": "Collection",
        "transaction_currency": "UGX",
        "min_amount": 500,
        "max_amount": 3000000,
        "max_daily_amount": 7000000,
        "is_active": true,
        "option_prefixes": [
          "74",
          "75",
          "70"
        ]
      }
    ]
  }
}
get
Query parameters
currencystringOptional
Header parameters
public-keystringRequired
x-api-versionnumberRequired
Accept-Languagestring · enumRequiredDefault: enPossible values:
secret-keystringRequired
Responses
200
Wallet balances retrieved successfully.
application/json
get
GET /data/wallet-balances HTTP/1.1
Host: sandbox.elemitech.com
public-key: text
x-api-version: 1
Accept-Language: en
secret-key: text
Accept: */*
200

Wallet balances retrieved successfully.

{
  "code": 200,
  "status": "success",
  "message": "Request completed successfully",
  "data": {
    "merchant_wallets": [
      {
        "available_balance": 40000,
        "actual_balance": 40000,
        "currency": "UGX",
        "uncleared_balance": 40000,
        "reserve_balance": 0,
        "wallet_type": "MERCHANT_COLLECTION"
      },
      {
        "available_balance": 0,
        "actual_balance": 0,
        "currency": "UGX",
        "uncleared_balance": 0,
        "reserve_balance": 0,
        "wallet_type": "MERCHANT_PAYOUT"
      }
    ]
  }
}
get
Path parameters
merchant_referencestringRequired
Header parameters
public-keystringRequired
x-api-versionnumberRequired
Accept-Languagestring · enumRequiredDefault: enPossible values:
Responses
200
Transaction retrieved successfully.
application/json
get
GET /data/transaction/verify/{merchant_reference} HTTP/1.1
Host: sandbox.elemitech.com
public-key: text
x-api-version: 1
Accept-Language: en
Accept: */*
200

Transaction retrieved successfully.

{
  "code": 200,
  "status": "success",
  "message": "Request completed successfully",
  "data": {
    "id": 20760,
    "merchant_reference": "MCTREFT2WMNWZ23SBN6Y",
    "internal_reference": "ELEMIRMGRXNNYBWATKJ",
    "transaction_type": "COLLECTION",
    "request_currency": "UGX",
    "transaction_amount": 2000000,
    "transaction_currency": "UGX",
    "transaction_charge": 60000,
    "transaction_account": "256787008803",
    "charge_customer": false,
    "total_credit": 1940000,
    "provider_code": "mtn_ug",
    "request_amount": 2000000,
    "customer_name": "JOHN DOE",
    "transaction_status": "COMPLETED",
    "status_message": "Transaction Completed Successfully"
  }
}
get
Query parameters
provider_codestringRequired
Header parameters
public-keystringRequired
x-api-versionnumberRequired
Accept-Languagestring · enumRequiredDefault: enPossible values:
Responses
200
Payout bank codes retrieved successfully.
application/json
get
GET /data/payout-bank-codes HTTP/1.1
Host: sandbox.elemitech.com
public-key: text
x-api-version: 1
Accept-Language: en
Accept: */*
200

Payout bank codes retrieved successfully.

{
  "code": 200,
  "status": "success",
  "message": "Request completed successfully",
  "data": {
    "payout_banks": [
      {
        "bank_name": "Access Bank Nigeria",
        "bank_code": "access_bank_ng",
        "is_active": true
      },
      {
        "bank_name": "Guaranty Trust Bank",
        "bank_code": "gtbank_ng",
        "is_active": true
      }
    ]
  }
}
  • GET/data/payment-providers
  • GET/data/wallet-balances
  • GET/data/transaction/verify/{merchant_reference}
  • POST/collections/initialize
  • POST/collections/authorize
  • GET/data/payout-bank-codes
  • POST/payout/send-funds
post
Header parameters
public-keystringRequired
x-api-versionnumberRequired
Accept-Languagestring · enumRequiredDefault: enPossible values:
Body
transaction_methodstring · enumRequired

The transaction method to be used.

Example: MOBILE_MONEYPossible values:
provider_codestringRequired

The provider code as obtained from the payment options

Example: mtn_ug
merchant_referencestring · min: 8 · max: 36Required

The unique reference for this request. It must be at least 8 characters long. Alternatively, the value auto can be passed, and a unique reference will be created for you by the API

Example: MCTREF123456
msisdnstringOptional

The mobile money number of the customer. Mandatory for Mobile Money.

Example: 256787701800
mobile_money_hppbooleanOptional

Should be sent with the value true in order for the API to handle the mobile money payment via hosted page

Default: false
currencystringRequired

The 3-character ISO currency code for the request currency

amountnumberRequired

The amount being requested

descriptionstring · min: 10 · max: 30Required

The description/narration for the transaction. Between 10-30 characters

customer_namestringOptional

The name of the customer

customer_emailstringOptional

The email of the customer

redirect_urlstringOptional

The HTTPs redirect URL to which the API will redirect when the payment is successful/failed

card_cipherstringOptional
charge_customerbooleanOptional

Whether or not the customer should bear the charge for the transaction. By default, this is false to mean that the merchant bears the charge

Default: false
allow_final_status_changebooleanOptional

Whether or not the final transaction status can be altered as described in the document

Default: true
Responses
202
Collection initiated successfully.
application/json
400
The request is invalid
application/json
401
Unauthorized
application/json
422
Unprocessable Entity
application/json
500
An error occurred while processing the request
application/json
post
POST /collections/initialize HTTP/1.1
Host: sandbox.elemitech.com
public-key: text
x-api-version: 1
Accept-Language: en
Content-Type: application/json
Accept: */*
Content-Length: 344

{
  "transaction_method": "MOBILE_MONEY",
  "provider_code": "mtn_ug",
  "merchant_reference": "MCTREF123456",
  "msisdn": "256787701800",
  "mobile_money_hpp": false,
  "currency": "text",
  "amount": 1,
  "description": "text",
  "customer_name": "text",
  "customer_email": "text",
  "redirect_url": "text",
  "card_cipher": "text",
  "charge_customer": false,
  "allow_final_status_change": true
}
{
  "code": 202,
  "status": "accepted",
  "message": "Request Accepted",
  "data": {
    "internal_reference": "ELEMIRMGRXNNYBWATKJ",
    "merchant_reference": "MCTREFT2WMNWZ23SBN6Y"
  }
}
post
Header parameters
public-keystringRequired
x-api-versionnumberRequired
Accept-Languagestring · enumRequiredDefault: enPossible values:
Body
internal_referencestringRequired

Internal/gateway transaction reference

Example: ELEMIRMGRXNNYBWATKJ
otpnumber · min: 4Required

OTP Auth

Example: 123456
Responses
202
Authorization request accepted.
application/json
400
The request is invalid
application/json
401
Unauthorized
application/json
422
Unprocessable Entity
application/json
500
An error occurred while processing the request
application/json
post
POST /collections/authorize HTTP/1.1
Host: sandbox.elemitech.com
public-key: text
x-api-version: 1
Accept-Language: en
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "internal_reference": "ELEMIRMGRXNNYBWATKJ",
  "otp": 123456
}
{
  "code": 202,
  "status": "accepted",
  "message": "Request Accepted",
  "data": {
    "internal_reference": "ELEMIRMGRXNNYBWATKJ",
    "merchant_reference": "MCTREFT2WMNWZ23SBN6Y",
    "payment_url": "https://sandboxpay.elemitech.com/pay/collection/ELEMIRMGRXNNYBWATKJ"
  }
}
post
Header parameters
public-keystringRequired
x-api-versionnumberRequired
Accept-Languagestring · enumRequiredDefault: enPossible values:
secret-keystringRequired
Body
merchant_referencestring · min: 8 · max: 36Required

The unique reference for this request. It must be at least 8 characters long.

Example: MCTREF123456
transaction_methodstring · enumRequired

The transaction method to be used.

Example: MOBILE_MONEYPossible values:
currencystring · min: 3Required

The 3-character ISO currency code for the request currency.

Example: UGX
amountnumberRequired

The amount being requested

Example: 5000
provider_codestringRequired

The provider code as obtained from the payment options

Example: mtn_ug
account_numberstringRequired

The bank account or mobile money number of the recipient.

Example: 17100000034
customer_namestringRequired

The name of the customer.

Example: John Doe
descriptionstring · min: 10 · max: 30Required

The description/narration for the transaction. Between 10-30 characters

Responses
202
Payout initiated successfully.
application/json
400
The request is invalid
application/json
401
Unauthorized
application/json
422
Unprocessable Entity
application/json
500
An error occurred while processing the request
application/json
post
POST /payout/send-funds HTTP/1.1
Host: sandbox.elemitech.com
public-key: text
x-api-version: 1
Accept-Language: en
secret-key: text
Content-Type: application/json
Accept: */*
Content-Length: 274

{
  "merchant_reference": "MCTREF123456",
  "transaction_method": "MOBILE_MONEY",
  "currency": "UGX",
  "amount": 5000,
  "provider_code": "mtn_ug",
  "account_number": "17100000034",
  "customer_name": "John Doe",
  "description": "text",
  "extra_params": {
    "bank_code": "access_bank_ng",
    "branch_code": "046"
  }
}
{
  "code": 202,
  "status": "accepted",
  "message": "Request Accepted",
  "data": {
    "internal_reference": "ELEMIRMGRXNNYBWATKJ",
    "merchant_reference": "MCTREFT2WMNWZ23SBN6Y"
  }
}