> ## Documentation Index
> Fetch the complete documentation index at: https://docs.smartcomply.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Transaction for Monitoring

> Submit a transaction for real-time fraud assessment and receive an activity code based on your configured thresholds and limits.

The Submit Transaction endpoint processes a transaction in real-time against your configured thresholds and limits. The response includes an activity code indicating whether the transaction is clean, suspicious, or high-risk.

## Endpoint

```
POST /api/v1/monitoring/transaction_monitoring/
```

## Request

### Headers

| Header           | Value               | Required |
| ---------------- | ------------------- | -------- |
| `x-access-token` | Your API secret key | Yes      |
| `Content-Type`   | `application/json`  | Yes      |

### Body Parameters

| Parameter                                 | Type    | Required | Description                                                  |
| ----------------------------------------- | ------- | -------- | ------------------------------------------------------------ |
| `transaction_id`                          | string  | Yes      | Unique identifier for the transaction                        |
| `amount`                                  | number  | Yes      | Transaction amount                                           |
| `currency`                                | string  | Yes      | Currency code (e.g., `NGN`, `USD`)                           |
| `transaction_type`                        | string  | Yes      | Type of transaction: `transfer`, `card`, `ussd`, or `web`    |
| `account_type`                            | string  | Yes      | Account type: `individual` or `corporate`                    |
| `origin_account`                          | object  | Yes      | Originating account details                                  |
| `origin_account.account_number`           | string  | Yes      | Account number of the sender                                 |
| `origin_account.bank_code`                | string  | Yes      | Bank code of the sender                                      |
| `destination_account`                     | object  | Yes      | Destination account details                                  |
| `destination_account.account_number`      | string  | Yes      | Account number of the recipient                              |
| `destination_account.bank_code`           | string  | Yes      | Bank code of the recipient                                   |
| `customer_details`                        | object  | Yes      | Details of the customer initiating the transaction           |
| `customer_details.customer_name`          | string  | Yes      | Customer's full name                                         |
| `customer_details.customer_email`         | string  | Yes      | Customer's email address                                     |
| `customer_details.bvn`                    | string  | No       | Customer's BVN (used to build a risk profile)                |
| `additional_info`                         | object  | Yes      | Additional context for fraud evaluation                      |
| `additional_info.ip_address`              | string  | Yes      | IP address during the transaction                            |
| `additional_info.location`                | string  | Yes      | Location string or lat/lon (e.g., `"lat=-30.66,lon=-65.77"`) |
| `additional_info.transaction_description` | string  | No       | Transaction description                                      |
| `run_kyc`                                 | boolean | No       | Run a KYC check on the customer. Defaults to `false`         |

### Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://adhere-api.smartcomply.com/api/v1/monitoring/transaction_monitoring/" \
    -H "x-access-token: YOUR_SECRET_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "transaction_id": "12345678",
      "amount": 14000000,
      "currency": "NGN",
      "transaction_type": "card",
      "account_type": "individual",
      "origin_account": {
        "account_number": "9876543219",
        "bank_code": "001"
      },
      "destination_account": {
        "account_number": "123456789",
        "bank_code": "002"
      },
      "customer_details": {
        "customer_name": "Muhammad Ibrahim Isah",
        "customer_email": "user@example.com",
        "bvn": "22430372151"
      },
      "additional_info": {
        "ip_address": "192.168.1.1",
        "location": "Lagos, Nigeria",
        "transaction_description": "Payment for order #789"
      },
      "run_kyc": false
    }'
  ```
</CodeGroup>

## Response

### Activity Codes

**Suspicious (flag for review):**

| Code  | Description                                                 |
| ----- | ----------------------------------------------------------- |
| `450` | Suspicious Transaction Detected — Requires Manual Review    |
| `451` | High-Risk Transaction — Potential Fraud                     |
| `452` | Unusual Transaction Behavior — Pattern Anomaly              |
| `453` | Velocity Check Failed — Too Many Transactions in Short Time |
| `454` | Geographic Inconsistency — Unusual Location                 |
| `455` | Transaction Amount Too High — Above Threshold               |
| `456` | Blacklisted Account or Entity                               |
| `457` | Repeated Failed Transactions — Possible Fraud Attempt       |

**Safe:**

| Code  | Description                                                    |
| ----- | -------------------------------------------------------------- |
| `200` | Transaction Approved — No Issues                               |
| `201` | Transaction Successfully Processed                             |
| `202` | Transaction Pending Review — Routine Check                     |
| `210` | Trusted Transaction — Verified and Safe                        |
| `211` | Low-Risk Transaction — No Anomalies Detected                   |
| `212` | Recurring Transaction Approved — Previously Authorized Pattern |
| `220` | Whitelisted Entity — Pre-approved Account or Business          |
| `221` | Known Customer — Transaction Aligns with User History          |

### 201 Created

```json theme={null}
{
  "status": "Success",
  "data": {
    "activity_code": "450",
    "status": "suspicious",
    "comment": ["4 rule(s) triggered"]
  },
  "message": "Transaction was successfully processed"
}
```

### 400 Bad Request

```json theme={null}
{
  "status": "failed",
  "data": [],
  "message": "Sorry, your check cannot be processed at the moment. Please try again in a few minutes"
}
```

### 401 Unauthorized

```json theme={null}
{
  "status": "failed",
  "message": "Authentication credentials were not provided."
}
```


## OpenAPI

````yaml POST /api/v1/monitoring/transaction_monitoring/
openapi: 3.0.3
info:
  title: Adhere API
  description: >-
    Identity verification, credit checks, transaction monitoring, and loan fraud
    detection across Africa.
  version: 3.0.0
servers:
  - url: https://adhere-api.smartcomply.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Nigeria KYC
  - name: Kenya KYC
  - name: Ghana KYC
  - name: Rwanda KYC
  - name: Uganda KYC
  - name: Biometrics
  - name: Individual Credit
  - name: Business Credit
  - name: Transaction Monitoring
  - name: Transaction Screening
  - name: Transaction KYC
  - name: Loan Fraud
  - name: User Journey
paths:
  /api/v1/monitoring/transaction_monitoring/:
    post:
      tags:
        - Transaction Monitoring
      summary: Submit Transaction for Monitoring
      operationId: submitTransaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - transaction_id
                - amount
                - currency
                - transaction_type
                - account_type
                - origin_account
                - destination_account
                - customer_details
                - additional_info
              properties:
                transaction_id:
                  type: string
                  example: TXN-12345678
                amount:
                  type: number
                  example: 50000
                currency:
                  type: string
                  example: NGN
                transaction_type:
                  type: string
                  enum:
                    - transfer
                    - card
                    - ussd
                    - web
                account_type:
                  type: string
                  enum:
                    - individual
                    - corporate
                origin_account:
                  type: object
                  required:
                    - account_number
                    - bank_code
                  properties:
                    account_number:
                      type: string
                      example: '9876543219'
                    bank_code:
                      type: string
                      example: '001'
                destination_account:
                  type: object
                  required:
                    - account_number
                    - bank_code
                  properties:
                    account_number:
                      type: string
                      example: '123456789'
                    bank_code:
                      type: string
                      example: '002'
                customer_details:
                  type: object
                  required:
                    - customer_name
                    - customer_email
                  properties:
                    customer_name:
                      type: string
                    customer_email:
                      type: string
                      format: email
                    bvn:
                      type: string
                additional_info:
                  type: object
                  required:
                    - ip_address
                    - location
                  properties:
                    ip_address:
                      type: string
                      example: 192.168.1.1
                    location:
                      type: string
                      example: Lagos, Nigeria
                    transaction_description:
                      type: string
                run_kyc:
                  type: boolean
                  default: false
      responses:
        '201':
          description: Transaction processed
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: failed
              data:
                type: array
                items: {}
              message:
                type: string
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: failed
              message:
                type: string
                example: Authentication credentials were not provided.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-access-token
      description: Your Adhere API secret key

````