Skip to main content

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)

ParameterTypeDescription
reference (required)StringUnique identifier for the transaction.
amount (required)NumberAmount involved in the transaction.
isExternalPayment (required)BooleanIndicates if the payment is external.
status (required)BooleanStatus of the transaction (true for successful, false for failed).
type (required)StringType of transaction (debit or credit).
channel (required)StringChannel through which the transaction was made (e.g., POS).
transactionDate (required)StringDate and time when the transaction occurred.
receiverAccount (optional)StringAccount number of the receiver.
senderAccount (optional)StringAccount number of the sender.
balanceBefore (optional)NumberAccount balance before the transaction.
narration (optional)StringDescription or remarks for the transaction.
vasReceiver (optional)StringThe phone number of the recipient of a VAS transaction. This should be provided when channel is "airtime" or "data purchase"
currency (required)StringName of currency transaction. ISO 4217 Standard. See list here
isInternalAccount (optional)StringThis 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)

ParameterTypeDescription
deviceId (required)StringUnique identifier for the device used in the transaction.
manufacturer (optional)StringManufacturer of the device.
model (optional)StringModel of the device.
name (optional)StringName of the device.
osName (optional)StringOperating system name of the device.
osVersion (optional)StringVersion of the operating system of the device.

Anonymized User Data (required)

ParameterTypeDescription
uniqueId (required)StringUnique identifier for the user.
isBanned (required)BooleanIndicates if the user is banned.
isIdentityVerified (required)BooleanIndicates if the user's identity is verified.
isPhoneNumberVerified (optional)BooleanIndicates if the user's phone number is verified.
accountType (optional)StringType of the user's account. "individual" or "corporate"
businessCategory (optional)StringBusiness category of the account if the account type is "corporate".
dateJoined (optional)StringDate and time when the user joined.
age (optional)NumberAge of the user.
state (optional)StringState where the user is located.
city (optional)StringCity where the user is located.
country (optional)StringCountry where the user is located.

Location (optional)

ParameterTypeDescription
longitude (required)NumberThe latitude position of where the location is coming from
latitude (required)NumberThe longitude position of where the location is coming from

Third Party User Data (optional)

ParameterTypeDescription
uniqueId (required)StringThis is a unique identifier for a third party user making payment
cardPan (required)StringThis is the masked pan number of the credt/debit card used in making payment

Limits (Optional)

ParameterTypeDescription
dailyLimit (optional)StringThis is the maximum daily limit that can be incurred in a transaction
overdraftLimit (optional)StringThis is the maximum extra money that can be obtained or collected when an account balance goes below zero.

Screening Data (Optional)

ParameterTypeDescription
senderName (optional)StringThis is the name of the sender.
receiverName (optional)StringThis is the name of the receiver.
Responses

See Response Section to view all expected responses