Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.dojah.io/llms.txt

Use this file to discover all available pages before exploring further.

Request

Real-time URL

[POST]
https://ingest.dojah.io/api/ingest
A dedicated API endpoint that you send data to as events happen (e.g., a user login, transaction, or account creation). Dojah immediately analyzes the event for suspicious patterns β€” velocity checks, IP reputation, device fingerprinting β€” and returns a risk score or block decision within milliseconds. Typical use: Webhooks, user actions, payment attempts, and other live traffic.

Backfill

[POST]
https://ingest.dojah.io/api/ingest/backfill
A separate endpoint used to upload historical events that already occurred before you integrated Dojah’s real-time API. Fraud models often need past data to learn β€œnormal” behavior (e.g., a user’s past login locations or transaction amounts). Without backfill, the real-time system may miss patterns that started earlier. Common use cases:
  • You have months of transaction logs stored in your database.
  • You send them via /api/ingest/backfill so Dojah can train and update risk rules retroactively.
  • After backfill is complete, you switch to the real-time URL for all new events.

Headers

HeaderTypeDescription
AuthorizationstringPrivate/secret key. Use <key> not Bearer <key>
Check out the guide on how to Connect a Flow.
The key in the request body is your Ingest key, which is different from your Authorization secret key. You can find your Ingest key in the EasyDetect settings on your dashboard.

Request Body Template

The tables below describe the fields available in the request body for each use case. Fields marked Required must be included in every request; all other fields are Optional but recommended for more accurate fraud scoring.

Top-level Fields

FieldTypeDescriptionApplies ToRequired
keystringYour Ingest key from EasyDetect settingsBanking, Payments, OnboardingRequired
typestringEvent type: banking, payments, or onboardingBanking, Payments, OnboardingRequired
eventobjectEvent payload containing the nested objects belowBanking, Payments, OnboardingRequired

event.transaction

FieldTypeDescriptionApplies ToRequired
idstringUnique transaction IDBanking, PaymentsOptional
timestringTransaction timestamp in ISO 8601 formatBanking, PaymentsRequired
amountnumberTransaction amountBanking, PaymentsOptional
currencystringCurrency code (e.g., XAF, NGN)Banking, PaymentsOptional
refstringTransaction referenceBanking, PaymentsOptional
session_idstringSession identifierBanking, PaymentsOptional
typestringTransaction type: deposit, debit, credit, transfer, purchase, refund, withdrawalBanking, PaymentsOptional
channelstringChannel: online, mobile, atm, branch, posBanking, PaymentsOptional
purposestringPurpose: bill payment, transfer, airtime, salary paymentBanking, PaymentsOptional
source_of_fundsstringSource: employment income, savings, business, investmentBanking, PaymentsOptional

event.user

FieldTypeDescriptionApplies ToRequired
user_idstringUnique user identifierBanking, Payments, OnboardingOptional
user_typestringindividual, business, government, otherBanking, Payments, OnboardingOptional
registration_timestringUser registration timestamp in ISO 8601 formatBanking, Payments, OnboardingRequired
emailstringUser email addressBanking, Payments, OnboardingOptional
namestringUser full nameBanking, Payments, OnboardingOptional
dobstringDate of birth in YYYY-MM-DD formatPayments, OnboardingOptional
tierstringAccount tier: basic, silver, gold, platinumBanking, Payments, OnboardingOptional
account_typestringsavings, checking, business, studentBanking, Payments, OnboardingOptional
genderstringmale, female, otherBanking, Payments, OnboardingOptional
balancenumberCurrent account balance before transactionBanking, Payments, OnboardingOptional
mobilestringUser phone numberBanking, Payments, OnboardingOptional
last_pin_changestringLast PIN change timestamp in ISO 8601 formatBanking, Payments, OnboardingOptional
last_password_changestringLast password change timestamp in ISO 8601 formatBanking, Payments, OnboardingOptional
credit_scorestringUser credit scorePayments, OnboardingOptional
employer_informationobjectEmployment details (annual_income, employment_status, employer_name)Payments, OnboardingOptional
kyc_informationarrayKYC documents, each with id_number, id_type, and countryPayments, OnboardingOptional

event.receiver

FieldTypeDescriptionApplies ToRequired
account_namestringReceiver’s account nameBankingOptional
bank_namestringReceiver’s bank nameBankingOptional
account_numberstringReceiver’s account numberBankingOptional
countrystringReceiver’s countryBankingOptional

event.sender

FieldTypeDescriptionApplies ToRequired
account_namestringSender’s account nameBankingOptional
bank_namestringSender’s bank nameBankingOptional
account_numberstringSender’s account numberBankingOptional
countrystringSender’s countryBankingOptional

event.payment

FieldTypeDescriptionApplies ToRequired
payment_idstringUnique payment identifierPaymentsOptional
is_recurringbooleanWhether the payment is recurringPaymentsOptional
method_typestringPayment method: card, ussd, transferPaymentsOptional
schemestringCard scheme (e.g., Visa, Mastercard)PaymentsOptional
card_fundingstringcredit or debitPaymentsOptional
card_last_fourstringLast four digits of the cardPaymentsOptional
expiry_monthstringCard expiry monthPaymentsOptional
expiry_yearstringCard expiry yearPaymentsOptional
is_3ds_enabledbooleanWhether 3D Secure is enabledPaymentsOptional
is_card_presentbooleanWhether the physical card is presentPaymentsOptional
cvv_providedbooleanWhether CVV was providedPaymentsOptional
avs_passedbooleanWhether AVS check passedPaymentsOptional
name_on_cardstringCardholder namePaymentsOptional
billing_addressobjectBilling address (city, street, country)PaymentsOptional

event.merchant

FieldTypeDescriptionApplies ToRequired
namestringMerchant namePaymentsOptional
categorystringMerchant categoryPaymentsOptional
countrystringMerchant countryPaymentsOptional

event.device

FieldTypeDescriptionApplies ToRequired
typestringDevice type (e.g., mobile, desktop)Banking, Payments, OnboardingOptional
osstringOperating system (e.g., Android, iOS)Banking, Payments, OnboardingOptional
modelstringDevice model (e.g., Pixel 7)Banking, Payments, OnboardingOptional
languagestringDevice language (e.g., en-US)Banking, Payments, OnboardingOptional
ip_addressstringUser’s IP addressBanking, Payments, OnboardingOptional
device_idstringUnique device identifier / fingerprint IDBanking, Payments, OnboardingOptional

event.address

FieldTypeDescriptionApplies ToRequired
citystringCity nameBanking, Payments, OnboardingOptional
streetstringStreet addressBankingOptional
address1stringPrimary address linePayments, OnboardingOptional
address2stringSecondary address linePayments, OnboardingOptional
regionstringRegion or statePayments, OnboardingOptional
zipcodestringPostal / ZIP codePayments, OnboardingOptional
countrystringCountry nameBanking, Payments, OnboardingOptional

event.meta

FieldTypeDescriptionApplies ToRequired
metaarrayArray of custom key-value pair objects for additional contextBankingOptional

Transaction Monitoring - Use cases

Banking

Request body
{
   "key": "<your_ingest_key>",
   "type":"banking",  //banking, payments, onboarding
   "event":{
      "transaction":{
         "id": "87554303-3f75-4883-8fb8-48fce003859f", //unique transaction id
         "time": "2022-12-12T12:15:05.391Z", //ISO 8601 format
         "amount": 8291,
         "currency": "XAF",
         "ref": "xaf",
         "session_id": "xaf",
         "type": "deposit",  //debit, credit, transfer, etc.
         "channel": "mobile",  //online, mobile, atm, branch, pos
         "purpose": "salary payment",  //bill payment, transfer, airtime, etc.
         "source_of_funds": "employment income"  //savings, business, investment, etc.
      },
      "user":{
         "user_id":"9931fac0-6bfa-4b3c-842c-7840006d89b6",
         "user_type": "individual",  //individual, business, government, other
         "registration_time": "2022-12-12T12:15:05.392Z",
         "email":"erik.miller@buchanan.com",
         "name":"Trevor Arias",
         "tier": "silver",  //basic, silver, gold, platinum
         "account_type": "checking",  //savings, checking, business, student
         "gender": "male",  //male, female, other
         "balance": 24500.50,  //current account balance before transaction
         "mobile":"5797454931",
         "last_pin_change": "2022-11-01T08:30:00.000Z",
         "last_password_change": "2022-10-15T14:22:10.000Z"
      },
      "receiver":{
         "account_name": "John Doe",
         "bank_name": "EcoBank",
         "account_number": "CM21100375689",
         "country": "Cameroon"
      },
      "sender":{
         "account_name": "Anon Doe",
         "bank_name": "Paystack TITAN",
         "account_number": "NG0567890321",
         "country": "Nigeria"
      },
      "device":{
         "type":"mobile",
         "os":"Android",
         "model":"Pixel 7",
         "language":"en-US",
         "ip_address":"154.72.170.233",
         "device_id":"ff97adb7-8d3d-4f15-94df-87e21e1212de"
      },
      "address":{
         "city":"North Sarah",
         "street":"6238 Walker Unions Suite 802",
         "country":"Morocco"
      },
       "meta": [
        {"key": "value"}
      ]
   }
}

Payments

Request body
{
   "key": "<your_ingest_key>",
   "type":"payments",
   "event":{
      "user":{
               "user_id":"9931fac0-6bfa-4b3c-842c-7840006d89b6",
               "user_type": "individual",  //individual, business, government, other
               "registration_time": "2022-12-12T12:15:05.392Z",
               "email":"erik.miller@buchanan.com",
               "name":"Trevor Arias",
               "dob": "1980-01-01", //User's date of birth, YYYY-MM-DD format
               "tier": "silver",  //basic, silver, gold, platinum
               "account_type": "checking",  //savings, checking, business, student
               "gender": "male",  //male, female, other
               "balance": 24500.50,  //current account balance before transaction
               "mobile":"5797454931",
               "last_pin_change": "2022-11-01T08:30:00.000Z",
               "last_password_change": "2022-10-15T14:22:10.000Z",
               "credit_score": "720",
               "employer_information": {
               "annual_income": "",
               "employment_status": "employed",
               "employer_name": "Innovate Solutions",
               },
               "kyc_information": [
                  {
                  "id_number": "1234567890",
                  "id_type": "bvn",
                  "country": "NG",
                  },
                  {
                  "id_number": "1234567890",
                  "id_type": "NIN",
                  "country": "NG",
                  }
               ]
            },
      "transaction":{
               "id": "87554303-3f75-4883-8fb8-48fce003859f", //unique transaction id
               "time": "2022-12-12T12:15:05.391Z", //ISO 8601 format
               "amount": 8291,
               "currency": "XAF",
               "ref": "xaf",
               "session_id": "xaf",
               "type": "deposit",  //debit, credit, transfer, purchase, refund, withdrawal etc.
               "channel": "mobile",  //online, mobile, atm, branch, pos
               "purpose": "salary payment",  //bill payment, transfer, airtime, etc.
               "source_of_funds": "employment income"  //savings, business, investment, etc.
            },
      "payment":{
               "payment_id": "9931fac0-6bfa-4b3c-842c",
               "is_recurring": true, //true or false
               "method_type": "card", //card, ussd, transfer etc
               "scheme": "Visa",
               "card_funding": "debit", //credit or debit
               "card_last_four": "9876",
               "expiry_month": "10",
               "expiry_year": "25",
               "is_3ds_enabled": true,
               "is_card_present": true,
               "cvv_provided": true,
               "avs_passed": true,
               "name_on_card": "John Buchanan",
               "billing_address": {
               "city": "North Sarah",
               "street": "6238 Walker Unions Suite 802",
               "country": "Morocco"
               }
      },
      "merchant": {
               "name":"Merchant 1",
               "category":"Android",
               "country":"Nigeria"
      },
      "device":{
               "type":"mobile",
               "os":"Android",
               "model":"Pixel 7",
               "language":"en-US",
               "ip_address":"154.72.170.233",
               "device_id":"ff97adb7-8d3d-4f15-94df-87e21e1212de" //fingerprint_id
            },
         "address":{
               "address1": "6238 Walker Unions Suite 802",
               "address2": "",
               "city": "North Sarah",
               "region": "",
               "zipcode" : "23401",
               "country":"Morocco"
            }
   }
}

Onboarding

Request body
{
   "key": "<your_ingest_key>",
   "type":"onboarding",
   "event":{
         "user":{
                  "user_id":"9931fac0-6bfa-4b3c-842c-7840006d89b6",
                  "user_type": "individual",  //individual, business, government, other
                  "registration_time": "2022-12-12T12:15:05.392Z",
                  "email":"erik.miller@buchanan.com",
                  "name":"Trevor Arias",
                  "dob": "1980-01-01", //User's date of birth, YYYY-MM-DD format
                  "tier": "silver",  //basic, silver, gold, platinum
                  "account_type": "checking",  //savings, checking, business, student
                  "gender": "male",  //male, female, other
                  "balance": 24500.50,  //current account balance before transaction
                  "mobile":"5797454931",
                  "last_pin_change": "2022-11-01T08:30:00.000Z",
                  "last_password_change": "2022-10-15T14:22:10.000Z",
                  "credit_score": "720",
                  "employer_information": {
                  "annual_income": "",
                  "employment_status": "employed",
                  "employer_name": "Innovate Solutions",
                  },
                  "kyc_information": [
                     {
                     "id_number": "1234567890",
                     "id_type": "bvn",
                     "country": "NG",
                     },
                     {
                     "id_number": "1234567890",
                     "id_type": "NIN",
                     "country": "NG",
                     }
                  ]
               },
         "device":{
                  "type":"mobile",
                  "os":"Android",
                  "model":"Pixel 7",
                  "language":"en-US",
                  "ip_address":"154.72.170.233",
                  "device_id":"ff97adb7-8d3d-4f15-94df-87e21e1212de" //fingerprint_id
               },
         "address":{
                  "address1": "6238 Walker Unions Suite 802",
                  "address2": "",
                  "city": "North Sarah",
                  "region": "",
                  "zipcode" : "23401",
                  "country":"Morocco"
               }

      }

}

Webhook Notification Response

Response
{
    event: {
        meta: [
            {
                transaction_id: "Dojah-20231111085937073"
            }
        ],
        user: {
            name: "Maplerad-Provarex-Acc  None",
            email: "",
            mobile: "None",
            user_id: "4ac1bc59-34ad-485a-bda5-eb406a49a411",
            registration_time: "1696421468798421"
        },
        device: {
            os: "Android",
            type: "mobile",
            model: "Pixel 7",
            language: "en-US",
            device_id: "ff97adb7-8d3d-4f15-94df-87e21e1212de",
            ip_address: "154.72.170.233"
        },
        sender: {
            country: "NG",
            bank_name: "",
            account_name: "Paystack",
            account_number: "1017692813"
        },
        address: {
            city: "Lagos",
            street: "Ikeja",
            country: "Nigeria"
        },
        receiver: {
            country: "NG",
            bank_name: "VFD_NEW",
            account_name: "",
            account_number: "1029283851"
        },
        transaction: {
            id: "Dojah-20231111085937073",
            ref: "Dojah-20231111085937073",
            time: "1699693180085313",
            type: "deposit",
            amount: 300,
            channel: "transfer",
            currency: "NGN",
            session_id: "Dojah-20231111085937073"
        }
    },
    score: 30,
    decision: {
        action: "Allow",
        rule_status: false
    },
    behavioral: {
        UnusualTimeTransactions: {
            state: true,
            description: "User transaction time is outside of normal business hours"
        },
        AbnormalTransactionVolume: {
            state: true,
            description: "User has abnormally high transaction volume of 34 within a short period"
        }
    }
}