Submitting Transactions
You can submit transactions in 2 ways:
1. Transaction Submission with webhook response
When this endpoint is called, the transaction is processed by Sigma, and the result will be sent to the specified webhook once processing is complete. The webhook will include the transaction details and final status.
info
Method: POST
Endpoint: api/v1/transaction-monitoring
2. Transaction Submission with instant response
With this endpoint, you get instant result with the response of the API call including the transaction details and final status.
info
Method: POST
Endpoint: api/v1/transaction-monitoring/instant
Request
Headers :
{
"apiKey" : [YOUR APP API_KEY],
"apiSecret" : [YOUR APP API_SECRET],
"Content-Type": "application/json"
}
Example Body :
{
"transactionData" : {
"reference" : "2303pee2fc",
"amount" : 100.5,
"receiverAccount" : "93829392233",
"isExternalPayment" : false,
"status" : true,
"senderAccount" : "01929393923",
"balanceBefore" : 1000,
"type" : "debit",
"channel" : "pos",
"transactionDate" : "2022-04-28 10:30:00",
"vasReceiver": "08124668857",
"currency" : "ngn",
"narration" : "some payment",
"isInternalAccount": false
},
"device" : {
"deviceId" : "J020D23020D03300303203D3232DDD",
"manufacturer" : "Apple",
"model" : "iPhone 14 Pro",
"name" : "iPhone 14 Pro",
"osName" : "iOS",
"osVersion" : "17.1.0"
},
"anonymizedUserData" : {
"uniqueId" : "e8baeb9c-e563-11ed-b5ea-0242ac120002",
"accountType" : "individual",
"businessCategory" : "retail",
"isPhoneNumberVerified" : true,
"isBanned" : false,
"dateJoined" : "2022-01-01 23:58:00",
"age" : 29,
"isIdentityVerified" : true,
"state" : "lagos",
"city" : "ikeja",
"country" : "Nigeria"
},
"location" : {
"latitude" : 1.039303034,
"longitude" : -1.423243444,
},
"thirdPartyUserData" : {
"uniqueId" : "e2300-e563-11ed-b5ea-0242ac120002",
"cardPan" : "33899******3329",
},
"limits" : {
"dailyLimit" : 10000,
"overdraftLimit" : 20000
}
"screeningData" : {
"senderName" : 10000,
"receiverName" : 20000
}
}
Payment Channels
card payment |
web transfer |
bank transfer |
mobile transfer |
cash payment |
cash withdrawal |
airtime |
cable |
sports betting |
electricity |
internet |
data purchase |
Fields
Transaction Data (required)
Parameter | Type | Description |
---|---|---|
reference (required) | String | Unique identifier for the transaction. |
amount (required) | Number | Amount involved in the transaction. |
isExternalPayment (required) | Boolean | Indicates if the payment is external. |
status (required) | Boolean | Status of the transaction (true for successful, false for failed). |
type (required) | String | Type of transaction (debit or credit). |
channel (required) | String | Channel through which the transaction was made (e.g., POS). |
transactionDate (required) | String | Date and time when the transaction occurred. |
receiverAccount (optional) | String | Account number of the receiver. |
senderAccount (optional) | String | Account number of the sender. |
balanceBefore (optional) | Number | Account balance before the transaction. |
narration (optional) | String | Description or remarks for the transaction. |
vasReceiver (optional) | String | The phone number of the recipient of a VAS transaction. This should be provided when channel is "airtime" or "data purchase" |
currency (required) | String | Name of currency transaction. ISO 4217 Standard. See list here |
isInternalAccount (optional) | String | This indicates that the account in question is an internal account used by the bank. Rules can be set to affect only internal accounts |
Device (optional)
Parameter | Type | Description |
---|---|---|
deviceId (required) | String | Unique identifier for the device used in the transaction. |
manufacturer (optional) | String | Manufacturer of the device. |
model (optional) | String | Model of the device. |
name (optional) | String | Name of the device. |
osName (optional) | String | Operating system name of the device. |
osVersion (optional) | String | Version of the operating system of the device. |
Anonymized User Data (required)
Parameter | Type | Description |
---|---|---|
uniqueId (required) | String | Unique identifier for the user. |
isBanned (required) | Boolean | Indicates if the user is banned. |
isIdentityVerified (required) | Boolean | Indicates if the user's identity is verified. |
isPhoneNumberVerified (optional) | Boolean | Indicates if the user's phone number is verified. |
accountType (optional) | String | Type of the user's account. "individual" or "corporate" |
businessCategory (optional) | String | Business category of the account if the account type is "corporate". |
dateJoined (optional) | String | Date and time when the user joined. |
age (optional) | Number | Age of the user. |
state (optional) | String | State where the user is located. |
city (optional) | String | City where the user is located. |
country (optional) | String | Country where the user is located. |
Location (optional)
Parameter | Type | Description |
---|---|---|
longitude (required) | Number | The latitude position of where the location is coming from |
latitude (required) | Number | The longitude position of where the location is coming from |
Third Party User Data (optional)
Parameter | Type | Description |
---|---|---|
uniqueId (required) | String | This is a unique identifier for a third party user making payment |
cardPan (required) | String | This is the masked pan number of the credt/debit card used in making payment |
Limits (Optional)
Parameter | Type | Description |
---|---|---|
dailyLimit (optional) | String | This is the maximum daily limit that can be incurred in a transaction |
overdraftLimit (optional) | String | This is the maximum extra money that can be obtained or collected when an account balance goes below zero. |
Screening Data (Optional)
Parameter | Type | Description |
---|---|---|
senderName (optional) | String | This is the name of the sender. |
receiverName (optional) | String | This is the name of the receiver. |
Responses
See Response Section to view all expected responses