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,
"isStaffAccount": false,
"sessionId": "16273849501234",
"isDormantAccount": 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,
"country": "ng"
},
"thirdPartyUserData" : {
"uniqueId" : "e2300-e563-11ed-b5ea-0242ac120002",
"cardPan" : "33899******3329",
},
"limits" : {
"dailyLimit" : 10000,
"overdraftLimit" : 20000
}
"screeningData" : {
"senderName" : "Chris Banes",
"receiverName" : "Justin Lake"
},
"beneficiary" : {
"isRegisteredBeneficiary" : false,
"isNewBeneficiary" : false
},
}

Payment Channels

card payment
web transfer
bank transfer
mobile transfer
cash payment
cash withdrawal
airtime
cable
sports betting
electricity
internet
data purchase
atm

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 ISO Currency List
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
isStaffAccount (optional)BooleanThis indicate whether a user account belongs to a staff member or not.
sessionId (optional)StringThis is the unique identifier including the bank code and other identifiers generated by the bank for each transaction
isDormantAccount (optional)BooleanThis indicates whether an account is inactive or not

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. ISO 4217 Standard. See ISO Country Codes. (use 'alpha-2' code from the link).

Location (optional)

ParameterTypeDescription
longitude (optional)NumberThe latitude position of where the location is coming from
latitude (optional)NumberThe longitude position of where the location is coming from
country (optional)StringThe location the transaction is originating 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. Unless an overdraft limit is provided, any transaction that results in a negative balance will be flagged for manual review by default. This behavior can also be configured to reject such transactions from the Preferences tab on your dashboard.

Screening Data (Optional)

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

Beneficiary (Optional)

isRegisteredBeneficiary (required)BooleanThis indicates whether a beneficiary is officially registered in a system or database. If true, the beneficiary is recognized as a registered entity; if false, they are not.
isNewBeneficiary (required)BooleanThis indicates whether a beneficiary is newly added to the system. If true, the beneficiary is newly created; if false, they are an existing beneficiary.
Responses

See Response Section to view all expected responses