MoCore GraphQL API - Faro Sandbox

API documentation for the MoCore partner sandbox environment. All external requests require the x-api-key header for authentication.

API Endpoints
https://sandbox.mocore.mo.zone/graphql
Headers
# Required. Partner API key for sandbox authentication.
x-api-key: <your-api-key>
# Required. Apollo Server CSRF prevention header.
apollo-require-preflight: 1
# Required for POST requests.
Content-Type: application/json

Authentication

All API requests to the sandbox must include these headers. Contact MoPhones to receive your API key.

x-api-key: <your-api-key>
apollo-require-preflight: 1
Content-Type: application/json

Example cURL:

curl -X POST https://sandbox.mocore.mo.zone/graphql \
  -H "Content-Type: application/json" \
  -H "x-api-key: <your-api-key>" \
  -H "apollo-require-preflight: 1" \
  -d '{"query":"{ customerCursor(pagination: { limit: 10 }) { data { id customer_first_name customer_surname_name } } }"}'

Faro integration domains

Customer management

Primary queries: customer(id), customerCursor(pagination, filters), customersByPhone(phoneNumber), customerByFilters(filters), customersCount(filters).

Mutations: createCustomer(input), updateCustomer(id, input), deleteCustomer(id).

Customers have nested applications and latestApplication fields resolved automatically.

Fields use snake_case: customer_first_name, customer_surname_name, customer_status, customer_id_number, customer_phone_number.

Applications

Queries: application(id), applicationByFilters(filters).

Linked to customers via the applications resolve field on any customer object.

Inventory and products

Inventory: inventory(id), inventoryWithCursorPagination(pagination, filters), inventoryCount(filters), plus CRUD mutations.

Products: product(id), products(filter), productsWithCursorPagination(pagination, filters), activeProducts(categoryId), plus CRUD mutations.

Used for device catalog and stock management.

Loan module (namespace pattern)

Access via loan_module query, then drill into sub-namespaces:

query {
  loan_module {
    loanContracts {
      loanContract(id: "contract-uuid") {
        contract_id
        customer_id
        status
        principal_amount
      }
    }
    loanLedger { ... }
    loanInstallments { ... }
    loanDelinquency { ... }
  }
}

Payment module (namespace pattern)

Access via payment_module query:

query {
  payment_module {
    paymentOrchestrator { ... }
    payments { ... }
    paymentAdjustments { ... }
  }
}

MDM / device locking

devices and deviceLock queries for device management and remote lock/unlock status.

Credit bureau

creditBureauTransaction(id), creditBureauTransactionByFilters(filters), creditBureauTransactionsCursor(pagination, filters) for credit check results.

Namespace pattern

The Loan and Payment modules use a namespace pattern where the top-level query returns a namespace object, and actual operations are accessed as resolve fields on that namespace.

Query loan_module { loanContracts { ... } } rather than loanContract(...) directly.

In the schema reference below, look for LoanModuleNamespace, LoanContractsNamespace, PaymentModuleNamespace types to find all available sub-operations.

Pagination

Most list queries support cursor pagination via CursorPaginationInputType:

query {
  customerCursor(
    pagination: {
      limit: 10
      cursor: null
      sortField: "created_at"
      sortDirection: "DESC"
    }
  ) {
    data {
      id
      customer_first_name
      customer_surname_name
      customer_status
    }
    pagination {
      cursor
      hasMore
    }
  }
}

Fields: limit (required), cursor (null for first page), sortField, sortDirection (ASC/DESC), direction (NEXT/PREVIOUS).

Other available domains

Beyond the Faro-focused domains above, the API also includes:

  • Auth -- user, role, and group management
  • Config -- system configuration and onboarding config
  • Communication -- messaging and notifications
  • Territory -- geographic territory management
  • Sales and orders -- order processing, delivery, reconciliation
  • Price plans -- pricing, commissions, seller tiers
  • After-sale -- returns and refunds
  • Audit -- audit trail logging
  • Export -- data export functionality
  • Partner -- partner management

These are fully queryable in the sandbox. See the schema reference below for details.

Demo data

The sandbox includes 7 seeded customers across loan lifecycle stages:

Customer Stage Notes
Alice Active loan
Bob Delinquent Device locked
Carol Paid off
David Pre-loan Has SPIN/CRB data
Eve Written off Device locked
Frank Active loan
Grace Pre-loan Has SPIN/CRB data

Mocked integrations

All external integrations return success stubs in the sandbox:

  • MDM (NuovoPay/Scalefusion) -- MockMdmProvider
  • Payments (M-Pesa/Stripe) -- MockPaymentProvider
  • Liveness/KYC (SmileID/SumSub) -- MockLivenessAdapter
  • Credit bureaus, KRA -- disabled via env flags

Queries

activeCategories

Response

Returns [CategoryObjectType!]!

Arguments
Name Description
level - Float

Example

Query
query activeCategories($level: Float) {
  activeCategories(level: $level) {
    category_id
    name
    slug
    description
    icon_url
    image_url
    required_attributes
    sku_attributes
    parent_category_id
    level
    path
    sort_order
    is_active
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"level": 987.65}
Response
{
  "data": {
    "activeCategories": [
      {
        "category_id": 4,
        "name": "xyz789",
        "slug": "xyz789",
        "description": "xyz789",
        "icon_url": "abc123",
        "image_url": "abc123",
        "required_attributes": {},
        "sku_attributes": {},
        "parent_category_id": "abc123",
        "level": 123.45,
        "path": "xyz789",
        "sort_order": 123.45,
        "is_active": true,
        "meta_title": "xyz789",
        "meta_description": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeConditions

Response

Returns [ConditionObjectType!]!

Example

Query
query activeConditions {
  activeConditions {
    condition_id
    grade
    name
    sort_order
    color_hex
    badge_icon
    criteria
    description
    internal_notes
    verification_requirements
    warranty_months
    price_multiplier
    financing_impact
    seller_requirements
    is_active
    available_for_sellers
    created_at
    updated_at
  }
}
Response
{
  "data": {
    "activeConditions": [
      {
        "condition_id": 4,
        "grade": "xyz789",
        "name": "xyz789",
        "sort_order": 987,
        "color_hex": "abc123",
        "badge_icon": "xyz789",
        "criteria": {},
        "description": "xyz789",
        "internal_notes": "xyz789",
        "verification_requirements": {},
        "warranty_months": 987,
        "price_multiplier": 123.45,
        "financing_impact": {},
        "seller_requirements": {},
        "is_active": true,
        "available_for_sellers": true,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeFlashSaleItems

Response

Returns [FlashSaleItemObjectType!]!

Example

Query
query activeFlashSaleItems {
  activeFlashSaleItems {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Response
{
  "data": {
    "activeFlashSaleItems": [
      {
        "flash_sale_item_id": 4,
        "flash_sale_id": "abc123",
        "seller_catalog_id": "xyz789",
        "product_id": "abc123",
        "sku_id": "abc123",
        "original_price": 987.65,
        "flash_sale_price": 123.45,
        "discount_percentage": 987.65,
        "stock_allocated": 123,
        "stock_sold": 123,
        "stock_remaining": 987,
        "max_per_customer": 123,
        "display_priority": 123,
        "is_featured": false,
        "badge_text": "abc123",
        "created_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeFlashSales

Response

Returns [FlashSaleObjectType!]!

Example

Query
query activeFlashSales {
  activeFlashSales {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Response
{
  "data": {
    "activeFlashSales": [
      {
        "flash_sale_id": "4",
        "title": "abc123",
        "slug": "xyz789",
        "description": "abc123",
        "start_date": "2007-12-03T10:15:30Z",
        "end_date": "2007-12-03T10:15:30Z",
        "status": "SCHEDULED",
        "max_quantity": 123,
        "sold_quantity": 123,
        "min_discount_percentage": 987.65,
        "is_featured": false,
        "banner_image": "abc123",
        "icon_url": "abc123",
        "countdown_display": false,
        "priority": 987,
        "participating_sellers": ["abc123"],
        "performance_metrics": {},
        "meta_title": "xyz789",
        "meta_description": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeInventoryLocations

Example

Query
query activeInventoryLocations {
  activeInventoryLocations {
    inventory_location_id
    location_name
    location_type
    location_code
    address
    city
    region
    coordinates {
      lat
      lng
    }
    location_details {
      country
      county
      sub_county
      ward
      town
      landmark
      gps_coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
    }
    user_id
    manager_id
    capacity
    current_stock
    is_active
    operating_hours
    seller_id
    created_at
    updated_at
  }
}
Response
{
  "data": {
    "activeInventoryLocations": [
      {
        "inventory_location_id": 4,
        "location_name": "xyz789",
        "location_type": "TRANSIT_INBOUND",
        "location_code": "abc123",
        "address": "abc123",
        "city": "xyz789",
        "region": "xyz789",
        "coordinates": InventoryCoordinatesObjectType,
        "location_details": InventoryLocationDetailsObjectType,
        "user_id": "abc123",
        "manager_id": "abc123",
        "capacity": 123,
        "current_stock": 987,
        "is_active": false,
        "operating_hours": {},
        "seller_id": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeListings

Response

Returns [SellerCatalogObjectType!]!

Arguments
Name Description
sellerId - ID

Example

Query
query activeListings($sellerId: ID) {
  activeListings(sellerId: $sellerId) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"sellerId": 4}
Response
{
  "data": {
    "activeListings": [
      {
        "seller_catalog_id": 4,
        "seller_id": "xyz789",
        "sku_id": "xyz789",
        "cost_price": 123.45,
        "retail_price": 123.45,
        "currency": "abc123",
        "stock_on_hand": 987,
        "reserved_stock": 987,
        "is_active": true,
        "listed_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "available_stock": 123,
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType
      }
    ]
  }
}

activeLoanDevices

Response

Returns [InventoryObjectType!]!

Example

Query
query activeLoanDevices {
  activeLoanDevices {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Response
{
  "data": {
    "activeLoanDevices": [
      {
        "inventory_id": 4,
        "product_id": "xyz789",
        "sku_id": "abc123",
        "condition_id": "xyz789",
        "seller_catalog_id": "xyz789",
        "seller_id": "abc123",
        "serial_number": "xyz789",
        "identifiers": {},
        "physical_state": "IN_STOCK",
        "mdm_enrollment": "PENDING",
        "enrollment_status": "PENDING",
        "stock_status_type": "INBOUND",
        "stock_status_name": "ORDERED",
        "stock_origin": "INTERNATIONAL",
        "stock_type": "ONE_P",
        "b2b": false,
        "qc_report": QCReportType,
        "qc_report_link": "xyz789",
        "qc_status": "PENDING",
        "qc_status_type": "INBOUND",
        "unit_cost": 987.65,
        "contract_id": "xyz789",
        "mdm_status": {},
        "batch_number": "xyz789",
        "location_id": "xyz789",
        "inspection_report": "xyz789",
        "warranty": {},
        "acquisition_date": "2007-12-03T10:15:30Z",
        "first_sale_date": "2007-12-03T10:15:30Z",
        "supplier_name": "xyz789",
        "supplier_code": "abc123",
        "supplier_order_reference": "abc123",
        "customer_id": "abc123",
        "sale_id": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType,
        "condition": ConditionObjectType,
        "sellerCatalog": SellerCatalogObjectType,
        "location": InventoryLocationObjectType
      }
    ]
  }
}

activeOrderByApplication

Description

Returns the single workable order for an application — the non-cancelled order, preferring one that already has a delivery

Response

Returns an OrderObjectType

Arguments
Name Description
applicationId - ID!

Example

Query
query activeOrderByApplication($applicationId: ID!) {
  activeOrderByApplication(applicationId: $applicationId) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "activeOrderByApplication": {
      "order_id": "4",
      "customer_id": 4,
      "order_status": "PENDING",
      "payment_status": "UNPAID",
      "shipping_address": ShippingAddress,
      "currency": "xyz789",
      "sub_total": 987.65,
      "total_discount": 987.65,
      "delivery_fee": 987.65,
      "service_fee": 123.45,
      "tax_amount": 123.45,
      "total_amount": 123.45,
      "application_id": "abc123",
      "sale_agent_id": "xyz789",
      "submitting_agent_id": "abc123",
      "manual_override": false,
      "order_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "application": ApplicationEntityGraphQL,
      "orderItems": [OrderItemObjectType],
      "deliveries": [DeliveryObjectType],
      "sales": [SalesObjectType],
      "deliveryCalls": [DeliveryCallObjectType]
    }
  }
}

activeProductOffers

Response

Returns [ProductOfferObjectType!]!

Example

Query
query activeProductOffers {
  activeProductOffers {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Response
{
  "data": {
    "activeProductOffers": [
      {
        "product_offer_id": 4,
        "sku_id": 4,
        "description": "xyz789",
        "status": "DRAFT",
        "type": "PERCENTAGE",
        "discount_value": 123.45,
        "minimum_purchase_amount": 123.45,
        "maximum_discount_amount": 987.65,
        "usage_limit": 123,
        "usage_count": 123,
        "usage_limit_per_customer": 987,
        "promo_code": "xyz789",
        "category_filters": ["abc123"],
        "brand_filters": ["abc123"],
        "applicable_channels": ["abc123"],
        "active": true,
        "starts_at": "2007-12-03T10:15:30Z",
        "ends_at": "2007-12-03T10:15:30Z",
        "seller_id": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeProducts

Response

Returns [ProductObjectType!]!

Arguments
Name Description
categoryId - ID

Example

Query
query activeProducts($categoryId: ID) {
  activeProducts(categoryId: $categoryId) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"categoryId": 4}
Response
{
  "data": {
    "activeProducts": [
      {
        "product_id": 4,
        "name": "abc123",
        "slug": "xyz789",
        "brand": "abc123",
        "model": "xyz789",
        "category_id": "xyz789",
        "category": CategoryObjectType,
        "description": "xyz789",
        "long_description": "abc123",
        "base_specifications": {},
        "primary_image_url": "xyz789",
        "images": ["xyz789"],
        "video_url": "xyz789",
        "meta_title": "abc123",
        "meta_description": "xyz789",
        "keywords": ["xyz789"],
        "is_active": true,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "abc123",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

activeSkus

Response

Returns [SkuObjectType!]!

Arguments
Name Description
productId - ID

Example

Query
query activeSkus($productId: ID) {
  activeSkus(productId: $productId) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"productId": 4}
Response
{
  "data": {
    "activeSkus": [
      {
        "sku_id": "4",
        "product_id": "abc123",
        "condition_id": "abc123",
        "parent_sku_id": "xyz789",
        "level": 987,
        "level_attribute_key": "abc123",
        "level_attribute_value": "xyz789",
        "sku_code": "abc123",
        "name": "xyz789",
        "attributes": {},
        "variant_specifications": {},
        "msrp_price": 987.65,
        "min_seller_price": 987.65,
        "max_seller_price": 987.65,
        "suggested_retail_price": 987.65,
        "effective_price": 123.45,
        "images": ["abc123"],
        "weight_grams": 123,
        "dimensions_mm": "xyz789",
        "is_active": false,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "xyz789",
        "approved_by": "abc123",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "product": ProductObjectType,
        "condition": ConditionObjectType
      }
    ]
  }
}

application

Description

Get a single application by ID

Response

Returns an ApplicationEntityGraphQL

Arguments
Name Description
id - ID!

Example

Query
query application($id: ID!) {
  application(id: $id) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "application": {
      "_id": 4,
      "customer_id": "xyz789",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["abc123"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "abc123",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

applicationActiveKycDocuments

Description

Get the resolved media assets for an application's active KYC documents

Arguments
Name Description
applicationId - ID!

Example

Query
query applicationActiveKycDocuments($applicationId: ID!) {
  applicationActiveKycDocuments(applicationId: $applicationId) {
    mpesa_statement {
      _id
      domain
      type
      target
      target_id
      password
      url
      name
      content_type
      storage_provider
      raw
      createdAt
      updatedAt
    }
    bank_statement {
      _id
      domain
      type
      target
      target_id
      password
      url
      name
      content_type
      storage_provider
      raw
      createdAt
      updatedAt
    }
    front_id {
      _id
      domain
      type
      target
      target_id
      password
      url
      name
      content_type
      storage_provider
      raw
      createdAt
      updatedAt
    }
    back_id {
      _id
      domain
      type
      target
      target_id
      password
      url
      name
      content_type
      storage_provider
      raw
      createdAt
      updatedAt
    }
    selfie {
      _id
      domain
      type
      target
      target_id
      password
      url
      name
      content_type
      storage_provider
      raw
      createdAt
      updatedAt
    }
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "applicationActiveKycDocuments": {
      "mpesa_statement": MediaAssetDto,
      "bank_statement": MediaAssetDto,
      "front_id": MediaAssetDto,
      "back_id": MediaAssetDto,
      "selfie": MediaAssetDto
    }
  }
}

applicationByFilters

Description

Get a single application by specific filters

Response

Returns an ApplicationEntityGraphQL

Arguments
Name Description
filters - ApplicationFilterInput!

Example

Query
query applicationByFilters($filters: ApplicationFilterInput!) {
  applicationByFilters(filters: $filters) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"filters": ApplicationFilterInput}
Response
{
  "data": {
    "applicationByFilters": {
      "_id": 4,
      "customer_id": "xyz789",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["xyz789"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "abc123",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

applicationCallDetail

Description

Get a single application call detail by ID

Response

Returns an ApplicationCallDetailsType

Arguments
Name Description
id - ID!

Example

Query
query applicationCallDetail($id: ID!) {
  applicationCallDetail(id: $id) {
    _id
    application_id
    status
    notes
    agent_name
    caller_id
    delivery_location_type
    priority
    call_date
    follow_up_required
    customer_location
    employer_info
    employment_details
    delivery_location
    product_choice
    confirmed_price_plan
    geo_address
    delivery_or_collection_location
    other_delivery_notes
    call_type
    call_outcome
    call_notes
    call_ended_at
    call_started_at
    call_duration_seconds
    nok {
      call_status
      notes
      relation
      consent
      idNumber
    }
    customer_general_location
    preferred_delivery_day
    preferred_delivery_slot
    work_location
    work_location_link
    screening_consent
    accept_loan_terms
    extras
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "applicationCallDetail": {
      "_id": "4",
      "application_id": 4,
      "status": "abc123",
      "notes": "xyz789",
      "agent_name": "xyz789",
      "caller_id": "abc123",
      "delivery_location_type": "xyz789",
      "priority": "xyz789",
      "call_date": "2007-12-03T10:15:30Z",
      "follow_up_required": false,
      "customer_location": "abc123",
      "employer_info": "xyz789",
      "employment_details": "xyz789",
      "delivery_location": "abc123",
      "product_choice": "xyz789",
      "confirmed_price_plan": "abc123",
      "geo_address": "abc123",
      "delivery_or_collection_location": "abc123",
      "other_delivery_notes": "abc123",
      "call_type": "NOK",
      "call_outcome": "abc123",
      "call_notes": "xyz789",
      "call_ended_at": "2007-12-03T10:15:30Z",
      "call_started_at": "2007-12-03T10:15:30Z",
      "call_duration_seconds": 123.45,
      "nok": CallDetailsNokType,
      "customer_general_location": "abc123",
      "preferred_delivery_day": "2007-12-03T10:15:30Z",
      "preferred_delivery_slot": "abc123",
      "work_location": "abc123",
      "work_location_link": "xyz789",
      "screening_consent": "abc123",
      "accept_loan_terms": "xyz789",
      "extras": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

applicationCallDetails

Description

Get all call details matching filters

Arguments
Name Description
filters - ApplicationCallDetailsFilterInput

Example

Query
query applicationCallDetails($filters: ApplicationCallDetailsFilterInput) {
  applicationCallDetails(filters: $filters) {
    _id
    application_id
    status
    notes
    agent_name
    caller_id
    delivery_location_type
    priority
    call_date
    follow_up_required
    customer_location
    employer_info
    employment_details
    delivery_location
    product_choice
    confirmed_price_plan
    geo_address
    delivery_or_collection_location
    other_delivery_notes
    call_type
    call_outcome
    call_notes
    call_ended_at
    call_started_at
    call_duration_seconds
    nok {
      call_status
      notes
      relation
      consent
      idNumber
    }
    customer_general_location
    preferred_delivery_day
    preferred_delivery_slot
    work_location
    work_location_link
    screening_consent
    accept_loan_terms
    extras
    createdAt
    updatedAt
  }
}
Variables
{"filters": ApplicationCallDetailsFilterInput}
Response
{
  "data": {
    "applicationCallDetails": [
      {
        "_id": "4",
        "application_id": 4,
        "status": "xyz789",
        "notes": "abc123",
        "agent_name": "xyz789",
        "caller_id": "abc123",
        "delivery_location_type": "abc123",
        "priority": "abc123",
        "call_date": "2007-12-03T10:15:30Z",
        "follow_up_required": false,
        "customer_location": "xyz789",
        "employer_info": "abc123",
        "employment_details": "abc123",
        "delivery_location": "xyz789",
        "product_choice": "abc123",
        "confirmed_price_plan": "xyz789",
        "geo_address": "xyz789",
        "delivery_or_collection_location": "abc123",
        "other_delivery_notes": "xyz789",
        "call_type": "NOK",
        "call_outcome": "abc123",
        "call_notes": "xyz789",
        "call_ended_at": "2007-12-03T10:15:30Z",
        "call_started_at": "2007-12-03T10:15:30Z",
        "call_duration_seconds": 987.65,
        "nok": CallDetailsNokType,
        "customer_general_location": "xyz789",
        "preferred_delivery_day": "2007-12-03T10:15:30Z",
        "preferred_delivery_slot": "xyz789",
        "work_location": "abc123",
        "work_location_link": "xyz789",
        "screening_consent": "abc123",
        "accept_loan_terms": "xyz789",
        "extras": {},
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

applicationCallDetailsByApplication

Description

Get all call details for an application

Arguments
Name Description
applicationId - ID!

Example

Query
query applicationCallDetailsByApplication($applicationId: ID!) {
  applicationCallDetailsByApplication(applicationId: $applicationId) {
    _id
    application_id
    status
    notes
    agent_name
    caller_id
    delivery_location_type
    priority
    call_date
    follow_up_required
    customer_location
    employer_info
    employment_details
    delivery_location
    product_choice
    confirmed_price_plan
    geo_address
    delivery_or_collection_location
    other_delivery_notes
    call_type
    call_outcome
    call_notes
    call_ended_at
    call_started_at
    call_duration_seconds
    nok {
      call_status
      notes
      relation
      consent
      idNumber
    }
    customer_general_location
    preferred_delivery_day
    preferred_delivery_slot
    work_location
    work_location_link
    screening_consent
    accept_loan_terms
    extras
    createdAt
    updatedAt
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "applicationCallDetailsByApplication": [
      {
        "_id": 4,
        "application_id": "4",
        "status": "xyz789",
        "notes": "abc123",
        "agent_name": "xyz789",
        "caller_id": "abc123",
        "delivery_location_type": "xyz789",
        "priority": "abc123",
        "call_date": "2007-12-03T10:15:30Z",
        "follow_up_required": false,
        "customer_location": "xyz789",
        "employer_info": "abc123",
        "employment_details": "abc123",
        "delivery_location": "abc123",
        "product_choice": "abc123",
        "confirmed_price_plan": "xyz789",
        "geo_address": "abc123",
        "delivery_or_collection_location": "xyz789",
        "other_delivery_notes": "xyz789",
        "call_type": "NOK",
        "call_outcome": "xyz789",
        "call_notes": "abc123",
        "call_ended_at": "2007-12-03T10:15:30Z",
        "call_started_at": "2007-12-03T10:15:30Z",
        "call_duration_seconds": 123.45,
        "nok": CallDetailsNokType,
        "customer_general_location": "xyz789",
        "preferred_delivery_day": "2007-12-03T10:15:30Z",
        "preferred_delivery_slot": "abc123",
        "work_location": "abc123",
        "work_location_link": "xyz789",
        "screening_consent": "abc123",
        "accept_loan_terms": "xyz789",
        "extras": {},
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

applicationCallDetailsCount

Description

Get count of call details matching filters

Response

Returns a Float!

Arguments
Name Description
filters - ApplicationCallDetailsFilterInput

Example

Query
query applicationCallDetailsCount($filters: ApplicationCallDetailsFilterInput) {
  applicationCallDetailsCount(filters: $filters)
}
Variables
{"filters": ApplicationCallDetailsFilterInput}
Response
{"data": {"applicationCallDetailsCount": 987.65}}

applicationCallDetailsCursor

Description

Get paginated call details using cursor-based pagination

Arguments
Name Description
pagination - CursorPaginationInputType
filters - ApplicationCallDetailsFilterInput
regexFilters - ApplicationCallDetailsFilterInput

Example

Query
query applicationCallDetailsCursor(
  $pagination: CursorPaginationInputType,
  $filters: ApplicationCallDetailsFilterInput,
  $regexFilters: ApplicationCallDetailsFilterInput
) {
  applicationCallDetailsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ApplicationCallDetailsFilterInput,
  "regexFilters": ApplicationCallDetailsFilterInput
}
Response
{
  "data": {
    "applicationCallDetailsCursor": {
      "data": [ApplicationCallDetailsType],
      "pagination": CursorPaginationMetadata
    }
  }
}

applicationCallDetailsOffset

Description

Get paginated call details using offset-based pagination

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - ApplicationCallDetailsFilterInput
regexFilters - ApplicationCallDetailsFilterInput

Example

Query
query applicationCallDetailsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: ApplicationCallDetailsFilterInput,
  $regexFilters: ApplicationCallDetailsFilterInput
) {
  applicationCallDetailsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ApplicationCallDetailsFilterInput,
  "regexFilters": ApplicationCallDetailsFilterInput
}
Response
{
  "data": {
    "applicationCallDetailsOffset": {
      "data": [ApplicationCallDetailsType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

applicationKycMediaAssets

Description

Get all active KYC media asset documents for an application as a flat list

Response

Returns [MediaAssetDto!]!

Arguments
Name Description
applicationId - ID!

Example

Query
query applicationKycMediaAssets($applicationId: ID!) {
  applicationKycMediaAssets(applicationId: $applicationId) {
    _id
    domain
    type
    target
    target_id
    password
    url
    name
    content_type
    storage_provider
    raw
    createdAt
    updatedAt
  }
}
Variables
{"applicationId": 4}
Response
{
  "data": {
    "applicationKycMediaAssets": [
      {
        "_id": 4,
        "domain": "AUDIT",
        "type": "SELFIE",
        "target": "xyz789",
        "target_id": "abc123",
        "password": "xyz789",
        "url": "xyz789",
        "name": "abc123",
        "content_type": "abc123",
        "storage_provider": "S3",
        "raw": {},
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

applicationSellerQuote

Description

Get the seller quote for an application

Response

Returns a SellerQuoteType

Arguments
Name Description
applicationId - ID!

Example

Query
query applicationSellerQuote($applicationId: ID!) {
  applicationSellerQuote(applicationId: $applicationId) {
    cash_price
    available_plans {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      is_override
      commission_override_id
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
    seller_id
    calculated_at
  }
}
Variables
{"applicationId": 4}
Response
{
  "data": {
    "applicationSellerQuote": {
      "cash_price": 123.45,
      "available_plans": [PricingCalculationType],
      "commission": CommissionCalculationType,
      "seller_id": "abc123",
      "calculated_at": "2007-12-03T10:15:30Z"
    }
  }
}

applicationsByCustomerId

Description

Get all applications for a customer

Response

Returns [ApplicationEntityGraphQL!]!

Arguments
Name Description
customerId - String!

Example

Query
query applicationsByCustomerId($customerId: String!) {
  applicationsByCustomerId(customerId: $customerId) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"customerId": "abc123"}
Response
{
  "data": {
    "applicationsByCustomerId": [
      {
        "_id": 4,
        "customer_id": "xyz789",
        "application_state": "partial_lead",
        "credit_state": "UNKNOWN",
        "prospect_stage": "UNKNOWN",
        "application_channel": "SALES_APP",
        "kyc_documents": ["abc123"],
        "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
        "customer": ApplicationCustomerGraphQL,
        "next_of_kin": ApplicationNextOfKinGraphQL,
        "previous_next_of_kin": ApplicationNextOfKinGraphQL,
        "credit": ApplicationCreditGraphQL,
        "risk": ApplicationRiskGraphQL,
        "delivery": ApplicationDeliveryGraphQL,
        "legacy_references": ApplicationLegacyReferencesGraphQL,
        "metadata": {},
        "timeline": ApplicationTimelineGraphQL,
        "references": ApplicationReferencesGraphQL,
        "validation_references": ApplicationValidationReferencesGraphQL,
        "application_type": "FIRST_LOAN",
        "normal_high_deposit": "NORMAL",
        "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
        "credit_call": ApplicationCreditCallGraphQL,
        "call_disposition_id": "abc123",
        "submission_source": "AGENT_DIRECT",
        "leads_screens": LeadsScreensGraphQL,
        "prospects_screens": ProspectsScreensGraphQL,
        "liveness_check": ApplicationLivenessCheckGraphQL,
        "consent": ApplicationConsentGraphQL,
        "staff": ApplicationStaffGraphQL,
        "creditProduct": SellerCatalogObjectType,
        "customerProduct": SellerCatalogObjectType,
        "seller": SellerObjectType,
        "salesAgent": AgentProfileObjectType,
        "submittingAgent": AgentProfileObjectType,
        "sfmAgent": AgentProfileObjectType,
        "active_resubmission": ApplicationResubmissionGraphQL,
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z",
        "callDisposition": CallDispositionType,
        "validation_records": [
          ValidationRecordGraphQLEntity
        ],
        "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
        "creditCallDetails": ApplicationCallDetailsType,
        "activeCreditPricePlan": PricingCalculationType
      }
    ]
  }
}

applicationsCount

Description

Get count of applications matching filters

Response

Returns a Float!

Arguments
Name Description
filters - ApplicationFilterInput

Example

Query
query applicationsCount($filters: ApplicationFilterInput) {
  applicationsCount(filters: $filters)
}
Variables
{"filters": ApplicationFilterInput}
Response
{"data": {"applicationsCount": 123.45}}

applicationsCursor

Description

Get paginated applications using cursor-based pagination

Response

Returns a CursorPaginatedApplications!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - ApplicationFilterInput
regexFilters - ApplicationFilterInput

Example

Query
query applicationsCursor(
  $pagination: CursorPaginationInputType,
  $filters: ApplicationFilterInput,
  $regexFilters: ApplicationFilterInput
) {
  applicationsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ApplicationFilterInput,
  "regexFilters": ApplicationFilterInput
}
Response
{
  "data": {
    "applicationsCursor": {
      "data": [ApplicationEntityGraphQL],
      "pagination": CursorPaginationMetadata
    }
  }
}

applicationsOffset

Description

Get paginated applications using offset-based pagination

Response

Returns an OffsetPaginatedApplications!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - ApplicationFilterInput
regexFilters - ApplicationFilterInput

Example

Query
query applicationsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: ApplicationFilterInput,
  $regexFilters: ApplicationFilterInput
) {
  applicationsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ApplicationFilterInput,
  "regexFilters": ApplicationFilterInput
}
Response
{
  "data": {
    "applicationsOffset": {
      "data": [ApplicationEntityGraphQL],
      "metadata": OffsetPaginationMetadata
    }
  }
}

audit_module

Description

Access audit module operations

Response

Returns an AuditModuleNamespace!

Example

Query
query audit_module {
  audit_module {
    auditLog {
      auditLog {
        ...AuditLogObjectTypeFragment
      }
      auditLogByFilters {
        ...AuditLogObjectTypeFragment
      }
      auditLogCount
      auditLogsCursor {
        ...CursorPaginatedAuditLogsFragment
      }
      auditLogsOffset {
        ...OffsetPaginatedAuditLogsFragment
      }
      createAuditLog {
        ...AuditLogObjectTypeFragment
      }
      createNote {
        ...AuditLogObjectTypeFragment
      }
      updateAuditLog {
        ...AuditLogObjectTypeFragment
      }
      updateAuditLogs
      deleteAuditLog
      deleteAuditLogs
    }
  }
}
Response
{
  "data": {
    "audit_module": {"auditLog": AuditLogNamespace}
  }
}

availableInventory

Response

Returns [InventoryObjectType!]!

Example

Query
query availableInventory {
  availableInventory {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Response
{
  "data": {
    "availableInventory": [
      {
        "inventory_id": 4,
        "product_id": "xyz789",
        "sku_id": "abc123",
        "condition_id": "xyz789",
        "seller_catalog_id": "abc123",
        "seller_id": "xyz789",
        "serial_number": "abc123",
        "identifiers": {},
        "physical_state": "IN_STOCK",
        "mdm_enrollment": "PENDING",
        "enrollment_status": "PENDING",
        "stock_status_type": "INBOUND",
        "stock_status_name": "ORDERED",
        "stock_origin": "INTERNATIONAL",
        "stock_type": "ONE_P",
        "b2b": true,
        "qc_report": QCReportType,
        "qc_report_link": "abc123",
        "qc_status": "PENDING",
        "qc_status_type": "INBOUND",
        "unit_cost": 123.45,
        "contract_id": "xyz789",
        "mdm_status": {},
        "batch_number": "xyz789",
        "location_id": "xyz789",
        "inspection_report": "xyz789",
        "warranty": {},
        "acquisition_date": "2007-12-03T10:15:30Z",
        "first_sale_date": "2007-12-03T10:15:30Z",
        "supplier_name": "xyz789",
        "supplier_code": "xyz789",
        "supplier_order_reference": "abc123",
        "customer_id": "abc123",
        "sale_id": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType,
        "condition": ConditionObjectType,
        "sellerCatalog": SellerCatalogObjectType,
        "location": InventoryLocationObjectType
      }
    ]
  }
}

bestOfferForProduct

Response

Returns a ProductOfferObjectType

Arguments
Name Description
productId - ID!

Example

Query
query bestOfferForProduct($productId: ID!) {
  bestOfferForProduct(productId: $productId) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{"productId": "4"}
Response
{
  "data": {
    "bestOfferForProduct": {
      "product_offer_id": 4,
      "sku_id": "4",
      "description": "xyz789",
      "status": "DRAFT",
      "type": "PERCENTAGE",
      "discount_value": 987.65,
      "minimum_purchase_amount": 123.45,
      "maximum_discount_amount": 123.45,
      "usage_limit": 987,
      "usage_count": 123,
      "usage_limit_per_customer": 987,
      "promo_code": "xyz789",
      "category_filters": ["xyz789"],
      "brand_filters": ["abc123"],
      "applicable_channels": ["xyz789"],
      "active": false,
      "starts_at": "2007-12-03T10:15:30Z",
      "ends_at": "2007-12-03T10:15:30Z",
      "seller_id": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

bestPriceForSku

Response

Returns a SellerCatalogObjectType

Arguments
Name Description
skuId - ID!

Example

Query
query bestPriceForSku($skuId: ID!) {
  bestPriceForSku(skuId: $skuId) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"skuId": 4}
Response
{
  "data": {
    "bestPriceForSku": {
      "seller_catalog_id": "4",
      "seller_id": "xyz789",
      "sku_id": "xyz789",
      "cost_price": 123.45,
      "retail_price": 123.45,
      "currency": "abc123",
      "stock_on_hand": 123,
      "reserved_stock": 987,
      "is_active": true,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 123,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

calculateEarlyPayoffV2

Response

Returns a JSON!

Arguments
Name Description
planId - String!
cashPrice - Float!
months - [Int!]

Example

Query
query calculateEarlyPayoffV2(
  $planId: String!,
  $cashPrice: Float!,
  $months: [Int!]
) {
  calculateEarlyPayoffV2(
    planId: $planId,
    cashPrice: $cashPrice,
    months: $months
  )
}
Variables
{
  "planId": "xyz789",
  "cashPrice": 123.45,
  "months": [987]
}
Response
{"data": {"calculateEarlyPayoffV2": {}}}

callDisposition

Description

Get a single call disposition by ID

Response

Returns a CallDispositionType

Arguments
Name Description
id - ID!

Example

Query
query callDisposition($id: ID!) {
  callDisposition(id: $id) {
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    disposition
    notes
    priority
    next_call_date
    createdAt
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "callDisposition": {
      "_id": 4,
      "application_id": "4",
      "application": ApplicationEntityGraphQL,
      "disposition": "xyz789",
      "notes": "abc123",
      "priority": "xyz789",
      "next_call_date": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

callDispositionByFilters

Description

Get a single call disposition by specific filters

Response

Returns a CallDispositionType

Arguments
Name Description
filters - CallDispositionFilterInput!

Example

Query
query callDispositionByFilters($filters: CallDispositionFilterInput!) {
  callDispositionByFilters(filters: $filters) {
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    disposition
    notes
    priority
    next_call_date
    createdAt
    updatedAt
  }
}
Variables
{"filters": CallDispositionFilterInput}
Response
{
  "data": {
    "callDispositionByFilters": {
      "_id": "4",
      "application_id": "4",
      "application": ApplicationEntityGraphQL,
      "disposition": "xyz789",
      "notes": "xyz789",
      "priority": "abc123",
      "next_call_date": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

callDispositionsByApplication

Description

Get all call dispositions for an application

Response

Returns [CallDispositionType!]!

Arguments
Name Description
applicationId - ID!

Example

Query
query callDispositionsByApplication($applicationId: ID!) {
  callDispositionsByApplication(applicationId: $applicationId) {
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    disposition
    notes
    priority
    next_call_date
    createdAt
    updatedAt
  }
}
Variables
{"applicationId": 4}
Response
{
  "data": {
    "callDispositionsByApplication": [
      {
        "_id": "4",
        "application_id": "4",
        "application": ApplicationEntityGraphQL,
        "disposition": "xyz789",
        "notes": "xyz789",
        "priority": "abc123",
        "next_call_date": "2007-12-03T10:15:30Z",
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

callDispositionsByCustomer

Description

Get all call dispositions for a customer

Response

Returns [CallDispositionType!]!

Arguments
Name Description
customerId - ID!

Example

Query
query callDispositionsByCustomer($customerId: ID!) {
  callDispositionsByCustomer(customerId: $customerId) {
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    disposition
    notes
    priority
    next_call_date
    createdAt
    updatedAt
  }
}
Variables
{"customerId": 4}
Response
{
  "data": {
    "callDispositionsByCustomer": [
      {
        "_id": 4,
        "application_id": 4,
        "application": ApplicationEntityGraphQL,
        "disposition": "xyz789",
        "notes": "abc123",
        "priority": "abc123",
        "next_call_date": "2007-12-03T10:15:30Z",
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

callDispositionsCount

Description

Get count of call dispositions matching filters

Response

Returns a Float!

Arguments
Name Description
filters - CallDispositionFilterInput

Example

Query
query callDispositionsCount($filters: CallDispositionFilterInput) {
  callDispositionsCount(filters: $filters)
}
Variables
{"filters": CallDispositionFilterInput}
Response
{"data": {"callDispositionsCount": 123.45}}

callDispositionsCursor

Description

Get paginated call dispositions using cursor-based pagination

Arguments
Name Description
pagination - CursorPaginationInputType
filters - CallDispositionFilterInput
regexFilters - CallDispositionFilterInput

Example

Query
query callDispositionsCursor(
  $pagination: CursorPaginationInputType,
  $filters: CallDispositionFilterInput,
  $regexFilters: CallDispositionFilterInput
) {
  callDispositionsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": CallDispositionFilterInput,
  "regexFilters": CallDispositionFilterInput
}
Response
{
  "data": {
    "callDispositionsCursor": {
      "data": [CallDispositionType],
      "pagination": CursorPaginationMetadata
    }
  }
}

callDispositionsOffset

Description

Get paginated call dispositions using offset-based pagination

Response

Returns an OffsetPaginatedCallDispositions!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - CallDispositionFilterInput
regexFilters - CallDispositionFilterInput

Example

Query
query callDispositionsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: CallDispositionFilterInput,
  $regexFilters: CallDispositionFilterInput
) {
  callDispositionsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": CallDispositionFilterInput,
  "regexFilters": CallDispositionFilterInput
}
Response
{
  "data": {
    "callDispositionsOffset": {
      "data": [CallDispositionType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

canManageRole

Response

Returns a Boolean!

Arguments
Name Description
managerRoleName - String!
targetRoleName - String!
realm - String

Example

Query
query canManageRole(
  $managerRoleName: String!,
  $targetRoleName: String!,
  $realm: String
) {
  canManageRole(
    managerRoleName: $managerRoleName,
    targetRoleName: $targetRoleName,
    realm: $realm
  )
}
Variables
{
  "managerRoleName": "abc123",
  "targetRoleName": "abc123",
  "realm": "xyz789"
}
Response
{"data": {"canManageRole": false}}

categories

Response

Returns [CategoryObjectType!]!

Arguments
Name Description
filter - CategoryFilterInput

Example

Query
query categories($filter: CategoryFilterInput) {
  categories(filter: $filter) {
    category_id
    name
    slug
    description
    icon_url
    image_url
    required_attributes
    sku_attributes
    parent_category_id
    level
    path
    sort_order
    is_active
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"filter": CategoryFilterInput}
Response
{
  "data": {
    "categories": [
      {
        "category_id": "4",
        "name": "xyz789",
        "slug": "abc123",
        "description": "abc123",
        "icon_url": "xyz789",
        "image_url": "abc123",
        "required_attributes": {},
        "sku_attributes": {},
        "parent_category_id": "abc123",
        "level": 987.65,
        "path": "abc123",
        "sort_order": 123.45,
        "is_active": false,
        "meta_title": "xyz789",
        "meta_description": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

categoriesCount

Response

Returns a Float!

Arguments
Name Description
filters - CategoryFilterInput

Example

Query
query categoriesCount($filters: CategoryFilterInput) {
  categoriesCount(filters: $filters)
}
Variables
{"filters": CategoryFilterInput}
Response
{"data": {"categoriesCount": 123.45}}

categoriesWithCursorPagination

Response

Returns a CursorPaginatedCategories!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - CategoryFilterInput
regexFilters - CategoryFilterInput

Example

Query
query categoriesWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: CategoryFilterInput,
  $regexFilters: CategoryFilterInput
) {
  categoriesWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": CategoryFilterInput,
  "regexFilters": CategoryFilterInput
}
Response
{
  "data": {
    "categoriesWithCursorPagination": {
      "data": [CategoryObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

categoriesWithOffsetPagination

Response

Returns an OffsetPaginatedCategories!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - CategoryFilterInput
regexFilters - CategoryFilterInput

Example

Query
query categoriesWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: CategoryFilterInput,
  $regexFilters: CategoryFilterInput
) {
  categoriesWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": CategoryFilterInput,
  "regexFilters": CategoryFilterInput
}
Response
{
  "data": {
    "categoriesWithOffsetPagination": {
      "data": [CategoryObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

category

Response

Returns a CategoryObjectType!

Arguments
Name Description
id - ID!

Example

Query
query category($id: ID!) {
  category(id: $id) {
    category_id
    name
    slug
    description
    icon_url
    image_url
    required_attributes
    sku_attributes
    parent_category_id
    level
    path
    sort_order
    is_active
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "category": {
      "category_id": 4,
      "name": "xyz789",
      "slug": "abc123",
      "description": "xyz789",
      "icon_url": "abc123",
      "image_url": "xyz789",
      "required_attributes": {},
      "sku_attributes": {},
      "parent_category_id": "xyz789",
      "level": 123.45,
      "path": "xyz789",
      "sort_order": 987.65,
      "is_active": false,
      "meta_title": "xyz789",
      "meta_description": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

categoryHierarchy

Response

Returns [CategoryObjectType!]!

Arguments
Name Description
categoryId - ID

Example

Query
query categoryHierarchy($categoryId: ID) {
  categoryHierarchy(categoryId: $categoryId) {
    category_id
    name
    slug
    description
    icon_url
    image_url
    required_attributes
    sku_attributes
    parent_category_id
    level
    path
    sort_order
    is_active
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"categoryId": 4}
Response
{
  "data": {
    "categoryHierarchy": [
      {
        "category_id": "4",
        "name": "abc123",
        "slug": "xyz789",
        "description": "xyz789",
        "icon_url": "abc123",
        "image_url": "xyz789",
        "required_attributes": {},
        "sku_attributes": {},
        "parent_category_id": "xyz789",
        "level": 987.65,
        "path": "xyz789",
        "sort_order": 987.65,
        "is_active": false,
        "meta_title": "xyz789",
        "meta_description": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

categoryPath

Response

Returns [CategoryObjectType!]!

Arguments
Name Description
categoryId - ID!

Example

Query
query categoryPath($categoryId: ID!) {
  categoryPath(categoryId: $categoryId) {
    category_id
    name
    slug
    description
    icon_url
    image_url
    required_attributes
    sku_attributes
    parent_category_id
    level
    path
    sort_order
    is_active
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"categoryId": "4"}
Response
{
  "data": {
    "categoryPath": [
      {
        "category_id": 4,
        "name": "abc123",
        "slug": "xyz789",
        "description": "xyz789",
        "icon_url": "abc123",
        "image_url": "abc123",
        "required_attributes": {},
        "sku_attributes": {},
        "parent_category_id": "xyz789",
        "level": 123.45,
        "path": "abc123",
        "sort_order": 987.65,
        "is_active": true,
        "meta_title": "xyz789",
        "meta_description": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

checkProductExists

Response

Returns a Boolean!

Arguments
Name Description
brand - String!
model - String!

Example

Query
query checkProductExists(
  $brand: String!,
  $model: String!
) {
  checkProductExists(
    brand: $brand,
    model: $model
  )
}
Variables
{
  "brand": "xyz789",
  "model": "abc123"
}
Response
{"data": {"checkProductExists": false}}

commission

Response

Returns a CommissionObjectType!

Arguments
Name Description
id - String!

Example

Query
query commission($id: String!) {
  commission(id: $id) {
    id
    channel_type
    commission_type
    attribute_type
    commission_value_type
    sku_id
    min_price
    max_price
    product_commission
    loan_commission
    cash_commission
    start_date
    end_date
    is_active
    created_at
    updated_at
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    overrides {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "commission": {
      "id": "4",
      "channel_type": "ONLINE_AGENT",
      "commission_type": "FLAT",
      "attribute_type": "ALL",
      "commission_value_type": "FLAT",
      "sku_id": "abc123",
      "min_price": 123.45,
      "max_price": 987.65,
      "product_commission": 123.45,
      "loan_commission": 987.65,
      "cash_commission": 123.45,
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sku": SkuObjectType,
      "overrides": [CommissionOverrideObjectType]
    }
  }
}

commissionByFilter

Response

Returns a CommissionObjectType

Arguments
Name Description
filters - CommissionFilterInput

Example

Query
query commissionByFilter($filters: CommissionFilterInput) {
  commissionByFilter(filters: $filters) {
    id
    channel_type
    commission_type
    attribute_type
    commission_value_type
    sku_id
    min_price
    max_price
    product_commission
    loan_commission
    cash_commission
    start_date
    end_date
    is_active
    created_at
    updated_at
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    overrides {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": CommissionFilterInput}
Response
{
  "data": {
    "commissionByFilter": {
      "id": 4,
      "channel_type": "ONLINE_AGENT",
      "commission_type": "FLAT",
      "attribute_type": "ALL",
      "commission_value_type": "FLAT",
      "sku_id": "xyz789",
      "min_price": 987.65,
      "max_price": 123.45,
      "product_commission": 123.45,
      "loan_commission": 987.65,
      "cash_commission": 123.45,
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sku": SkuObjectType,
      "overrides": [CommissionOverrideObjectType]
    }
  }
}

commissionOverride

Response

Returns a CommissionOverrideObjectType!

Arguments
Name Description
id - String!

Example

Query
query commissionOverride($id: String!) {
  commissionOverride(id: $id) {
    id
    agent_profile_id
    commission_rule_id
    product_commission
    loan_commission
    cash_commission
    commission_value_type
    is_active
    created_at
    updated_at
    agent_profile {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "commissionOverride": {
      "id": "4",
      "agent_profile_id": "xyz789",
      "commission_rule_id": "abc123",
      "product_commission": 987.65,
      "loan_commission": 987.65,
      "cash_commission": 987.65,
      "commission_value_type": "FLAT",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "agent_profile": AgentProfileObjectType,
      "commission_rule": CommissionObjectType
    }
  }
}

commissionOverrideByFilter

Response

Returns a CommissionOverrideObjectType

Arguments
Name Description
filters - CommissionOverrideFilterInput

Example

Query
query commissionOverrideByFilter($filters: CommissionOverrideFilterInput) {
  commissionOverrideByFilter(filters: $filters) {
    id
    agent_profile_id
    commission_rule_id
    product_commission
    loan_commission
    cash_commission
    commission_value_type
    is_active
    created_at
    updated_at
    agent_profile {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": CommissionOverrideFilterInput}
Response
{
  "data": {
    "commissionOverrideByFilter": {
      "id": "4",
      "agent_profile_id": "abc123",
      "commission_rule_id": "abc123",
      "product_commission": 123.45,
      "loan_commission": 123.45,
      "cash_commission": 123.45,
      "commission_value_type": "FLAT",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "agent_profile": AgentProfileObjectType,
      "commission_rule": CommissionObjectType
    }
  }
}

commissionOverrides

Arguments
Name Description
filters - CommissionOverrideFilterInput

Example

Query
query commissionOverrides($filters: CommissionOverrideFilterInput) {
  commissionOverrides(filters: $filters) {
    id
    agent_profile_id
    commission_rule_id
    product_commission
    loan_commission
    cash_commission
    commission_value_type
    is_active
    created_at
    updated_at
    agent_profile {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": CommissionOverrideFilterInput}
Response
{
  "data": {
    "commissionOverrides": [
      {
        "id": "4",
        "agent_profile_id": "xyz789",
        "commission_rule_id": "abc123",
        "product_commission": 987.65,
        "loan_commission": 123.45,
        "cash_commission": 123.45,
        "commission_value_type": "FLAT",
        "is_active": true,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "agent_profile": AgentProfileObjectType,
        "commission_rule": CommissionObjectType
      }
    ]
  }
}

commissionOverridesByAgent

Arguments
Name Description
agentProfileId - String!

Example

Query
query commissionOverridesByAgent($agentProfileId: String!) {
  commissionOverridesByAgent(agentProfileId: $agentProfileId) {
    id
    agent_profile_id
    commission_rule_id
    product_commission
    loan_commission
    cash_commission
    commission_value_type
    is_active
    created_at
    updated_at
    agent_profile {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{"agentProfileId": "abc123"}
Response
{
  "data": {
    "commissionOverridesByAgent": [
      {
        "id": 4,
        "agent_profile_id": "xyz789",
        "commission_rule_id": "xyz789",
        "product_commission": 123.45,
        "loan_commission": 987.65,
        "cash_commission": 987.65,
        "commission_value_type": "FLAT",
        "is_active": false,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "agent_profile": AgentProfileObjectType,
        "commission_rule": CommissionObjectType
      }
    ]
  }
}

commissionOverridesCount

Response

Returns a Float!

Arguments
Name Description
filters - CommissionOverrideFilterInput

Example

Query
query commissionOverridesCount($filters: CommissionOverrideFilterInput) {
  commissionOverridesCount(filters: $filters)
}
Variables
{"filters": CommissionOverrideFilterInput}
Response
{"data": {"commissionOverridesCount": 987.65}}

commissionOverridesCursorPaginated

Arguments
Name Description
pagination - CursorPaginationInputType
filters - CommissionOverrideFilterInput
regexFilters - CommissionOverrideFilterInput

Example

Query
query commissionOverridesCursorPaginated(
  $pagination: CursorPaginationInputType,
  $filters: CommissionOverrideFilterInput,
  $regexFilters: CommissionOverrideFilterInput
) {
  commissionOverridesCursorPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": CommissionOverrideFilterInput,
  "regexFilters": CommissionOverrideFilterInput
}
Response
{
  "data": {
    "commissionOverridesCursorPaginated": {
      "data": [CommissionOverrideObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

commissionOverridesOffsetPaginated

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - CommissionOverrideFilterInput
regexFilters - CommissionOverrideFilterInput

Example

Query
query commissionOverridesOffsetPaginated(
  $pagination: OffsetPaginationInputType,
  $filters: CommissionOverrideFilterInput,
  $regexFilters: CommissionOverrideFilterInput
) {
  commissionOverridesOffsetPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": CommissionOverrideFilterInput,
  "regexFilters": CommissionOverrideFilterInput
}
Response
{
  "data": {
    "commissionOverridesOffsetPaginated": {
      "data": [CommissionOverrideObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

commissions

Response

Returns [CommissionObjectType!]!

Arguments
Name Description
filters - CommissionFilterInput

Example

Query
query commissions($filters: CommissionFilterInput) {
  commissions(filters: $filters) {
    id
    channel_type
    commission_type
    attribute_type
    commission_value_type
    sku_id
    min_price
    max_price
    product_commission
    loan_commission
    cash_commission
    start_date
    end_date
    is_active
    created_at
    updated_at
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    overrides {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": CommissionFilterInput}
Response
{
  "data": {
    "commissions": [
      {
        "id": 4,
        "channel_type": "ONLINE_AGENT",
        "commission_type": "FLAT",
        "attribute_type": "ALL",
        "commission_value_type": "FLAT",
        "sku_id": "abc123",
        "min_price": 987.65,
        "max_price": 123.45,
        "product_commission": 987.65,
        "loan_commission": 987.65,
        "cash_commission": 987.65,
        "start_date": "2007-12-03T10:15:30Z",
        "end_date": "2007-12-03T10:15:30Z",
        "is_active": false,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "sku": SkuObjectType,
        "overrides": [CommissionOverrideObjectType]
      }
    ]
  }
}

commissionsCount

Response

Returns a Float!

Arguments
Name Description
filters - CommissionFilterInput

Example

Query
query commissionsCount($filters: CommissionFilterInput) {
  commissionsCount(filters: $filters)
}
Variables
{"filters": CommissionFilterInput}
Response
{"data": {"commissionsCount": 987.65}}

commissionsCursorPaginated

Response

Returns a CursorsPaginatedCommissions!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - CommissionFilterInput
regexFilters - CommissionFilterInput

Example

Query
query commissionsCursorPaginated(
  $pagination: CursorPaginationInputType,
  $filters: CommissionFilterInput,
  $regexFilters: CommissionFilterInput
) {
  commissionsCursorPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": CommissionFilterInput,
  "regexFilters": CommissionFilterInput
}
Response
{
  "data": {
    "commissionsCursorPaginated": {
      "data": [CommissionObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

commissionsOffsetPaginated

Response

Returns an OffsetPaginatedCommissions!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - CommissionFilterInput
regexFilters - CommissionFilterInput

Example

Query
query commissionsOffsetPaginated(
  $pagination: OffsetPaginationInputType,
  $filters: CommissionFilterInput,
  $regexFilters: CommissionFilterInput
) {
  commissionsOffsetPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": CommissionFilterInput,
  "regexFilters": CommissionFilterInput
}
Response
{
  "data": {
    "commissionsOffsetPaginated": {
      "data": [CommissionObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

communication_module

Description

Access communication module queries

Response

Returns a CommunicationModuleNamespace!

Example

Query
query communication_module {
  communication_module {
    communication {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    communicationsOffset {
      data {
        ...CommunicationObjectTypeFragment
      }
      metadata {
        ...OffsetPaginationMetadataFragment
      }
    }
    communicationsCursor {
      data {
        ...CommunicationObjectTypeFragment
      }
      pagination {
        ...CursorPaginationMetadataFragment
      }
    }
    createCommunication {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    bulkCreateCommunications {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    updateCommunication {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    retryCommunication
    markNotificationAsRead {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    markAllNotificationsAsRead
    trackNotificationClick {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    deleteCommunication
    deleteManyCommunications
    subscribeToTopic
    unsubscribeFromTopic
    subscribeToDefaultTopics
    unsubscribeFromDefaultTopics
  }
}
Response
{
  "data": {
    "communication_module": {
      "communication": CommunicationObjectType,
      "communicationsOffset": OffsetPaginatedCommunications,
      "communicationsCursor": CursorPaginatedCommunications,
      "createCommunication": CommunicationObjectType,
      "bulkCreateCommunications": [
        CommunicationObjectType
      ],
      "updateCommunication": CommunicationObjectType,
      "retryCommunication": true,
      "markNotificationAsRead": CommunicationObjectType,
      "markAllNotificationsAsRead": 987,
      "trackNotificationClick": CommunicationObjectType,
      "deleteCommunication": true,
      "deleteManyCommunications": 987,
      "subscribeToTopic": true,
      "unsubscribeFromTopic": true,
      "subscribeToDefaultTopics": true,
      "unsubscribeFromDefaultTopics": true
    }
  }
}

completedRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query completedRepairs {
  completedRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "completedRepairs": [
      {
        "repair_id": "4",
        "repair_display_id": "xyz789",
        "requires_technician": false,
        "inventory_id": "abc123",
        "customer_id": "abc123",
        "original_sale_id": "abc123",
        "provider_seller_id": "xyz789",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": false,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "xyz789",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "xyz789",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 987.65,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

condition

Response

Returns a ConditionObjectType!

Arguments
Name Description
id - ID!

Example

Query
query condition($id: ID!) {
  condition(id: $id) {
    condition_id
    grade
    name
    sort_order
    color_hex
    badge_icon
    criteria
    description
    internal_notes
    verification_requirements
    warranty_months
    price_multiplier
    financing_impact
    seller_requirements
    is_active
    available_for_sellers
    created_at
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "condition": {
      "condition_id": 4,
      "grade": "abc123",
      "name": "abc123",
      "sort_order": 123,
      "color_hex": "abc123",
      "badge_icon": "xyz789",
      "criteria": {},
      "description": "abc123",
      "internal_notes": "abc123",
      "verification_requirements": {},
      "warranty_months": 123,
      "price_multiplier": 987.65,
      "financing_impact": {},
      "seller_requirements": {},
      "is_active": false,
      "available_for_sellers": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

conditionByGrade

Response

Returns a ConditionObjectType

Arguments
Name Description
grade - String!

Example

Query
query conditionByGrade($grade: String!) {
  conditionByGrade(grade: $grade) {
    condition_id
    grade
    name
    sort_order
    color_hex
    badge_icon
    criteria
    description
    internal_notes
    verification_requirements
    warranty_months
    price_multiplier
    financing_impact
    seller_requirements
    is_active
    available_for_sellers
    created_at
    updated_at
  }
}
Variables
{"grade": "abc123"}
Response
{
  "data": {
    "conditionByGrade": {
      "condition_id": "4",
      "grade": "xyz789",
      "name": "xyz789",
      "sort_order": 123,
      "color_hex": "xyz789",
      "badge_icon": "xyz789",
      "criteria": {},
      "description": "xyz789",
      "internal_notes": "xyz789",
      "verification_requirements": {},
      "warranty_months": 987,
      "price_multiplier": 123.45,
      "financing_impact": {},
      "seller_requirements": {},
      "is_active": false,
      "available_for_sellers": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

conditions

Response

Returns [ConditionObjectType!]!

Arguments
Name Description
filter - ConditionFilterInput

Example

Query
query conditions($filter: ConditionFilterInput) {
  conditions(filter: $filter) {
    condition_id
    grade
    name
    sort_order
    color_hex
    badge_icon
    criteria
    description
    internal_notes
    verification_requirements
    warranty_months
    price_multiplier
    financing_impact
    seller_requirements
    is_active
    available_for_sellers
    created_at
    updated_at
  }
}
Variables
{"filter": ConditionFilterInput}
Response
{
  "data": {
    "conditions": [
      {
        "condition_id": "4",
        "grade": "abc123",
        "name": "xyz789",
        "sort_order": 123,
        "color_hex": "xyz789",
        "badge_icon": "xyz789",
        "criteria": {},
        "description": "abc123",
        "internal_notes": "xyz789",
        "verification_requirements": {},
        "warranty_months": 987,
        "price_multiplier": 987.65,
        "financing_impact": {},
        "seller_requirements": {},
        "is_active": true,
        "available_for_sellers": false,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

conditionsWithCursorPagination

Response

Returns a CursorPaginatedConditions!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - ConditionFilterInput
regexFilters - ConditionFilterInput

Example

Query
query conditionsWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: ConditionFilterInput,
  $regexFilters: ConditionFilterInput
) {
  conditionsWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ConditionFilterInput,
  "regexFilters": ConditionFilterInput
}
Response
{
  "data": {
    "conditionsWithCursorPagination": {
      "data": [ConditionObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

conditionsWithOffsetPagination

Response

Returns an OffsetPaginatedConditions!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - ConditionFilterInput
regexFilters - ConditionFilterInput

Example

Query
query conditionsWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: ConditionFilterInput,
  $regexFilters: ConditionFilterInput
) {
  conditionsWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ConditionFilterInput,
  "regexFilters": ConditionFilterInput
}
Response
{
  "data": {
    "conditionsWithOffsetPagination": {
      "data": [ConditionObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

config_module

Description

Access config module queries

Response

Returns a ConfigModuleNamespace!

Example

Query
query config_module {
  config_module {
    configs {
      byId {
        ...ConfigTypeFragment
      }
      byFilters {
        ...ConfigTypeFragment
      }
      count
      value {
        ...ConfigValueResponseFragment
      }
      exists {
        ...ConfigExistsResponseFragment
      }
      offsetPaginated {
        ...ConfigOffsetPaginatedResponseFragment
      }
      cursorPaginated {
        ...ConfigCursorPaginatedResponseFragment
      }
      clientConfigs
      byCategory
      inventory {
        ...InventoryUiConfigTypeFragment
      }
      featureFlags
      isFeatureEnabled {
        ...FeatureStatusResponseFragment
      }
      withHistory {
        ...ConfigWithHistoryFragment
      }
      create {
        ...ConfigTypeFragment
      }
      updateById {
        ...ConfigTypeFragment
      }
      updateMany
      deleteById
      deleteMany
      bulkCreate {
        ...BulkConfigMutationResponseFragment
      }
      delete {
        ...ConfigDeleteResponseFragment
      }
      publish {
        ...ConfigMutationResponseFragment
      }
      rollback {
        ...ConfigMutationResponseFragment
      }
      clearCache {
        ...CacheClearedFragment
      }
    }
    userRoleConfigs {
      value {
        ...UserRoleConfigValueResponseFragment
      }
      myConfigs {
        ...ConfigTypeFragment
      }
      roleConfigs {
        ...ConfigTypeFragment
      }
      setMyConfig {
        ...ConfigTypeFragment
      }
      setRoleConfig {
        ...ConfigTypeFragment
      }
      deleteMyConfig
      deleteRoleConfig
    }
    sharedResources {
      mySharedResources {
        ...OffsetPaginatedSharedResourcesFragment
      }
      sharedWithMe {
        ...OffsetPaginatedSharedResourcesFragment
      }
      sharedResource {
        ...SharedResourceObjectTypeFragment
      }
      sharedResourcesByKey {
        ...SharedResourceObjectTypeFragment
      }
      createSharedResource {
        ...SharedResourceObjectTypeFragment
      }
      updateSharedResource {
        ...SharedResourceObjectTypeFragment
      }
      deleteSharedResource
      addUsersToSharedResource {
        ...SharedResourceObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "config_module": {
      "configs": ConfigsNamespace,
      "userRoleConfigs": UserRoleConfigsNamespace,
      "sharedResources": SharedResourcesNamespace
    }
  }
}

creditApplicationConfig

Description

Returns dropdown options and labels for all credit-related fields

Response

Returns a CreditApplicationConfigType!

Example

Query
query creditApplicationConfig {
  creditApplicationConfig {
    mpesaStatementValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    bankStatementValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    kraPinValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    customerIdFrontpageValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    idWithSelfieValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    altContactIdValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    altContactPhoneValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    customerIdBackpageValid {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    mpesaStatementRecentAirtime {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    mpesaStatementGapsAnalysis {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    crdApproval {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    previousLoans {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    riskFlags {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    creditStatus {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    pendingKycChecks {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    highDepositOverride {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    loanDuration {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    pricePlanCreditStatus {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    approvalCreditStatus {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    depositAndDeliveryCreditStatus {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    finalRiskScore {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
    creditCallStatus {
      name
      options {
        ...DropdownOptionTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "creditApplicationConfig": {
      "mpesaStatementValid": CreditConfigFieldType,
      "bankStatementValid": CreditConfigFieldType,
      "kraPinValid": CreditConfigFieldType,
      "customerIdFrontpageValid": CreditConfigFieldType,
      "idWithSelfieValid": CreditConfigFieldType,
      "altContactIdValid": CreditConfigFieldType,
      "altContactPhoneValid": CreditConfigFieldType,
      "customerIdBackpageValid": CreditConfigFieldType,
      "mpesaStatementRecentAirtime": CreditConfigFieldType,
      "mpesaStatementGapsAnalysis": CreditConfigFieldType,
      "crdApproval": CreditConfigFieldType,
      "previousLoans": CreditConfigFieldType,
      "riskFlags": CreditConfigFieldType,
      "creditStatus": CreditConfigFieldType,
      "pendingKycChecks": CreditConfigFieldType,
      "highDepositOverride": CreditConfigFieldType,
      "loanDuration": CreditConfigFieldType,
      "pricePlanCreditStatus": CreditConfigFieldType,
      "approvalCreditStatus": CreditConfigFieldType,
      "depositAndDeliveryCreditStatus": CreditConfigFieldType,
      "finalRiskScore": CreditConfigFieldType,
      "creditCallStatus": CreditConfigFieldType
    }
  }
}

creditBureauTransaction

Description

Get a single credit bureau transaction by ID

Response

Returns a CreditBureauTransactionDto

Arguments
Name Description
id - ID!

Example

Query
query creditBureauTransaction($id: ID!) {
  creditBureauTransaction(id: $id) {
    id
    _id
    provider
    customer_id
    customer_dob
    customer_age
    customer_name
    recent_loans_crb
    open_loans_count
    past_default_crb
    open_loan_record
    written_off_loans
    settled_default_loans
    closed_default_loans
    open_default_loans
    is_report_empty
    has_no_defaults_and_low_principals
    paid_off_loans_in_time_12_months
    paid_off_loans_in_time_all
    principals_below_5000
    phone_numbers
    system_defined_score
    user_defined_score
    score
    pdf_id
    pdf_url
    rawData
    metadata
    manual_override
    record_status
    crb_analysis {
      scoreExplanation {
        ...CrbScoreExplanationTypeFragment
      }
      creditCheckFields {
        ...CrbCreditCheckFieldsTypeFragment
      }
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "creditBureauTransaction": {
      "id": 4,
      "_id": "4",
      "provider": "TRANSUNION",
      "customer_id": "xyz789",
      "customer_dob": "2007-12-03T10:15:30Z",
      "customer_age": 123.45,
      "customer_name": "xyz789",
      "recent_loans_crb": 123.45,
      "open_loans_count": 123.45,
      "past_default_crb": 123.45,
      "open_loan_record": 123.45,
      "written_off_loans": 987.65,
      "settled_default_loans": 123.45,
      "closed_default_loans": 987.65,
      "open_default_loans": 123.45,
      "is_report_empty": false,
      "has_no_defaults_and_low_principals": false,
      "paid_off_loans_in_time_12_months": 123.45,
      "paid_off_loans_in_time_all": 987.65,
      "principals_below_5000": 123.45,
      "phone_numbers": ["abc123"],
      "system_defined_score": "xyz789",
      "user_defined_score": "xyz789",
      "score": "xyz789",
      "pdf_id": "xyz789",
      "pdf_url": "abc123",
      "rawData": {},
      "metadata": {},
      "manual_override": false,
      "record_status": "ACTIVE",
      "crb_analysis": CrbAnalysisType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

creditBureauTransactionByFilters

Description

Get a single credit bureau transaction by filters

Response

Returns a CreditBureauTransactionDto

Arguments
Name Description
filters - CreditBureauTransactionFilterInput!

Example

Query
query creditBureauTransactionByFilters($filters: CreditBureauTransactionFilterInput!) {
  creditBureauTransactionByFilters(filters: $filters) {
    id
    _id
    provider
    customer_id
    customer_dob
    customer_age
    customer_name
    recent_loans_crb
    open_loans_count
    past_default_crb
    open_loan_record
    written_off_loans
    settled_default_loans
    closed_default_loans
    open_default_loans
    is_report_empty
    has_no_defaults_and_low_principals
    paid_off_loans_in_time_12_months
    paid_off_loans_in_time_all
    principals_below_5000
    phone_numbers
    system_defined_score
    user_defined_score
    score
    pdf_id
    pdf_url
    rawData
    metadata
    manual_override
    record_status
    crb_analysis {
      scoreExplanation {
        ...CrbScoreExplanationTypeFragment
      }
      creditCheckFields {
        ...CrbCreditCheckFieldsTypeFragment
      }
    }
    createdAt
    updatedAt
  }
}
Variables
{"filters": CreditBureauTransactionFilterInput}
Response
{
  "data": {
    "creditBureauTransactionByFilters": {
      "id": 4,
      "_id": 4,
      "provider": "TRANSUNION",
      "customer_id": "xyz789",
      "customer_dob": "2007-12-03T10:15:30Z",
      "customer_age": 987.65,
      "customer_name": "abc123",
      "recent_loans_crb": 987.65,
      "open_loans_count": 123.45,
      "past_default_crb": 123.45,
      "open_loan_record": 987.65,
      "written_off_loans": 123.45,
      "settled_default_loans": 123.45,
      "closed_default_loans": 987.65,
      "open_default_loans": 123.45,
      "is_report_empty": true,
      "has_no_defaults_and_low_principals": false,
      "paid_off_loans_in_time_12_months": 987.65,
      "paid_off_loans_in_time_all": 987.65,
      "principals_below_5000": 123.45,
      "phone_numbers": ["xyz789"],
      "system_defined_score": "abc123",
      "user_defined_score": "xyz789",
      "score": "abc123",
      "pdf_id": "abc123",
      "pdf_url": "xyz789",
      "rawData": {},
      "metadata": {},
      "manual_override": true,
      "record_status": "ACTIVE",
      "crb_analysis": CrbAnalysisType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

creditBureauTransactionCount

Description

Get count of credit bureau transactions with optional filters

Response

Returns a Float!

Arguments
Name Description
filters - CreditBureauTransactionFilterInput

Example

Query
query creditBureauTransactionCount($filters: CreditBureauTransactionFilterInput) {
  creditBureauTransactionCount(filters: $filters)
}
Variables
{"filters": CreditBureauTransactionFilterInput}
Response
{"data": {"creditBureauTransactionCount": 987.65}}

creditBureauTransactionsCursor

Description

Get paginated credit bureau transactions using cursor-based pagination

Example

Query
query creditBureauTransactionsCursor(
  $pagination: CursorPaginationInputType,
  $filters: CreditBureauTransactionFilterInput,
  $regexFilters: CreditBureauTransactionFilterInput
) {
  creditBureauTransactionsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      _id
      provider
      customer_id
      customer_dob
      customer_age
      customer_name
      recent_loans_crb
      open_loans_count
      past_default_crb
      open_loan_record
      written_off_loans
      settled_default_loans
      closed_default_loans
      open_default_loans
      is_report_empty
      has_no_defaults_and_low_principals
      paid_off_loans_in_time_12_months
      paid_off_loans_in_time_all
      principals_below_5000
      phone_numbers
      system_defined_score
      user_defined_score
      score
      pdf_id
      pdf_url
      rawData
      metadata
      manual_override
      record_status
      crb_analysis {
        ...CrbAnalysisTypeFragment
      }
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": CreditBureauTransactionFilterInput,
  "regexFilters": CreditBureauTransactionFilterInput
}
Response
{
  "data": {
    "creditBureauTransactionsCursor": {
      "data": [CreditBureauTransactionDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

creditBureauTransactionsOffset

Description

Get paginated credit bureau transactions using offset-based pagination

Example

Query
query creditBureauTransactionsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: CreditBureauTransactionFilterInput,
  $regexFilters: CreditBureauTransactionFilterInput
) {
  creditBureauTransactionsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      _id
      provider
      customer_id
      customer_dob
      customer_age
      customer_name
      recent_loans_crb
      open_loans_count
      past_default_crb
      open_loan_record
      written_off_loans
      settled_default_loans
      closed_default_loans
      open_default_loans
      is_report_empty
      has_no_defaults_and_low_principals
      paid_off_loans_in_time_12_months
      paid_off_loans_in_time_all
      principals_below_5000
      phone_numbers
      system_defined_score
      user_defined_score
      score
      pdf_id
      pdf_url
      rawData
      metadata
      manual_override
      record_status
      crb_analysis {
        ...CrbAnalysisTypeFragment
      }
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": CreditBureauTransactionFilterInput,
  "regexFilters": CreditBureauTransactionFilterInput
}
Response
{
  "data": {
    "creditBureauTransactionsOffset": {
      "data": [CreditBureauTransactionDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

customer

Response

Returns a RawCustomersDto!

Arguments
Name Description
id - ID!

Example

Query
query customer($id: ID!) {
  customer(id: $id) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "customer": {
      "customer_id": "4",
      "customer_created_at": "2007-12-03T10:15:30Z",
      "customer_type": "INDIVIDUAL",
      "customer_phone_number": "xyz789",
      "official_id_number": "xyz789",
      "country": "xyz789",
      "county": "xyz789",
      "sub_county": "xyz789",
      "ward": "xyz789",
      "town": "abc123",
      "landmark": "abc123",
      "customer_email_address": "abc123",
      "customer_status": "ACTIVE",
      "display_name": "abc123",
      "customer_first_name": "abc123",
      "customer_surname_name": "xyz789",
      "organization_name": "xyz789",
      "organization_registration_number": "abc123",
      "individual_details": IndividualDetailsDto,
      "organization_details": OrganizationDetailsDto,
      "contact_person": ContactPersonDto,
      "kyc_documents": KycDocumentsDto,
      "next_of_kin": NextOfKinDto,
      "total_loans_taken": 123.45,
      "active_loans_count": 123.45,
      "completed_loans_count": 123.45,
      "has_defaulted": false,
      "current_credit_score": "xyz789",
      "metadata": {},
      "customer_updated_at": "2007-12-03T10:15:30Z",
      "keycloak_id": "abc123",
      "referral_code": "abc123",
      "applications": [ApplicationEntityGraphQL],
      "latestApplication": ApplicationEntityGraphQL
    }
  }
}

customerByFilters

Response

Returns a RawCustomersDto

Arguments
Name Description
filters - RawCustomersFilterInput!

Example

Query
query customerByFilters($filters: RawCustomersFilterInput!) {
  customerByFilters(filters: $filters) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"filters": RawCustomersFilterInput}
Response
{
  "data": {
    "customerByFilters": {
      "customer_id": "4",
      "customer_created_at": "2007-12-03T10:15:30Z",
      "customer_type": "INDIVIDUAL",
      "customer_phone_number": "abc123",
      "official_id_number": "xyz789",
      "country": "xyz789",
      "county": "abc123",
      "sub_county": "xyz789",
      "ward": "abc123",
      "town": "xyz789",
      "landmark": "abc123",
      "customer_email_address": "xyz789",
      "customer_status": "ACTIVE",
      "display_name": "xyz789",
      "customer_first_name": "xyz789",
      "customer_surname_name": "xyz789",
      "organization_name": "abc123",
      "organization_registration_number": "xyz789",
      "individual_details": IndividualDetailsDto,
      "organization_details": OrganizationDetailsDto,
      "contact_person": ContactPersonDto,
      "kyc_documents": KycDocumentsDto,
      "next_of_kin": NextOfKinDto,
      "total_loans_taken": 987.65,
      "active_loans_count": 123.45,
      "completed_loans_count": 123.45,
      "has_defaulted": true,
      "current_credit_score": "xyz789",
      "metadata": {},
      "customer_updated_at": "2007-12-03T10:15:30Z",
      "keycloak_id": "xyz789",
      "referral_code": "xyz789",
      "applications": [ApplicationEntityGraphQL],
      "latestApplication": ApplicationEntityGraphQL
    }
  }
}

customerCursor

Description

Get paginated customers (cursor)

Response

Returns a CursorPaginatedRawCustomers!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - RawCustomersFilterInput
regexFilters - RawCustomersFilterInput

Example

Query
query customerCursor(
  $pagination: CursorPaginationInputType!,
  $filters: RawCustomersFilterInput,
  $regexFilters: RawCustomersFilterInput
) {
  customerCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": RawCustomersFilterInput,
  "regexFilters": RawCustomersFilterInput
}
Response
{
  "data": {
    "customerCursor": {
      "data": [RawCustomersDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

customerReferral

Response

Returns a CustomerReferralDto

Arguments
Name Description
id - ID!

Example

Query
query customerReferral($id: ID!) {
  customerReferral(id: $id) {
    referral_id
    referrer_customer_id
    referee_customer_id
    referee_customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    referral_code_used
    referral_status
    validation_due_date
    validated_at
    rewards_processed_at
    referee_loan_contract_id
    referee_opening_date
    payment_adjustment_id
    referrer_airtime_transaction_id
    referee_airtime_transaction_id
    created_by
    created_at
    updated_by
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "customerReferral": {
      "referral_id": 4,
      "referrer_customer_id": 4,
      "referee_customer_id": 4,
      "referee_customer": RawCustomersDto,
      "referral_code_used": "abc123",
      "referral_status": "INCOMPLETE",
      "validation_due_date": "2007-12-03T10:15:30Z",
      "validated_at": "2007-12-03T10:15:30Z",
      "rewards_processed_at": "2007-12-03T10:15:30Z",
      "referee_loan_contract_id": "xyz789",
      "referee_opening_date": "2007-12-03T10:15:30Z",
      "payment_adjustment_id": "xyz789",
      "referrer_airtime_transaction_id": "xyz789",
      "referee_airtime_transaction_id": "abc123",
      "created_by": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_by": "xyz789",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

customerReferralByReferee

Response

Returns a CustomerReferralDto

Arguments
Name Description
referee_customer_id - ID!

Example

Query
query customerReferralByReferee($referee_customer_id: ID!) {
  customerReferralByReferee(referee_customer_id: $referee_customer_id) {
    referral_id
    referrer_customer_id
    referee_customer_id
    referee_customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    referral_code_used
    referral_status
    validation_due_date
    validated_at
    rewards_processed_at
    referee_loan_contract_id
    referee_opening_date
    payment_adjustment_id
    referrer_airtime_transaction_id
    referee_airtime_transaction_id
    created_by
    created_at
    updated_by
    updated_at
  }
}
Variables
{"referee_customer_id": "4"}
Response
{
  "data": {
    "customerReferralByReferee": {
      "referral_id": 4,
      "referrer_customer_id": "4",
      "referee_customer_id": "4",
      "referee_customer": RawCustomersDto,
      "referral_code_used": "abc123",
      "referral_status": "INCOMPLETE",
      "validation_due_date": "2007-12-03T10:15:30Z",
      "validated_at": "2007-12-03T10:15:30Z",
      "rewards_processed_at": "2007-12-03T10:15:30Z",
      "referee_loan_contract_id": "abc123",
      "referee_opening_date": "2007-12-03T10:15:30Z",
      "payment_adjustment_id": "abc123",
      "referrer_airtime_transaction_id": "xyz789",
      "referee_airtime_transaction_id": "abc123",
      "created_by": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_by": "xyz789",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

customerReferralCodeUsage

Response

Returns [CustomerReferralDto!]!

Arguments
Name Description
customer_id - ID!
status - ReferralStatusEnum

Example

Query
query customerReferralCodeUsage(
  $customer_id: ID!,
  $status: ReferralStatusEnum
) {
  customerReferralCodeUsage(
    customer_id: $customer_id,
    status: $status
  ) {
    referral_id
    referrer_customer_id
    referee_customer_id
    referee_customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    referral_code_used
    referral_status
    validation_due_date
    validated_at
    rewards_processed_at
    referee_loan_contract_id
    referee_opening_date
    payment_adjustment_id
    referrer_airtime_transaction_id
    referee_airtime_transaction_id
    created_by
    created_at
    updated_by
    updated_at
  }
}
Variables
{"customer_id": "4", "status": "INCOMPLETE"}
Response
{
  "data": {
    "customerReferralCodeUsage": [
      {
        "referral_id": "4",
        "referrer_customer_id": 4,
        "referee_customer_id": 4,
        "referee_customer": RawCustomersDto,
        "referral_code_used": "xyz789",
        "referral_status": "INCOMPLETE",
        "validation_due_date": "2007-12-03T10:15:30Z",
        "validated_at": "2007-12-03T10:15:30Z",
        "rewards_processed_at": "2007-12-03T10:15:30Z",
        "referee_loan_contract_id": "abc123",
        "referee_opening_date": "2007-12-03T10:15:30Z",
        "payment_adjustment_id": "xyz789",
        "referrer_airtime_transaction_id": "abc123",
        "referee_airtime_transaction_id": "xyz789",
        "created_by": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_by": "xyz789",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

customerReferrals

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - CustomerReferralFilterInput

Example

Query
query customerReferrals(
  $pagination: CursorPaginationInputType!,
  $filters: CustomerReferralFilterInput
) {
  customerReferrals(
    pagination: $pagination,
    filters: $filters
  ) {
    data {
      referral_id
      referrer_customer_id
      referee_customer_id
      referee_customer {
        ...RawCustomersDtoFragment
      }
      referral_code_used
      referral_status
      validation_due_date
      validated_at
      rewards_processed_at
      referee_loan_contract_id
      referee_opening_date
      payment_adjustment_id
      referrer_airtime_transaction_id
      referee_airtime_transaction_id
      created_by
      created_at
      updated_by
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": CustomerReferralFilterInput
}
Response
{
  "data": {
    "customerReferrals": {
      "data": [CustomerReferralDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

customerReferralsByReferrer

Response

Returns [CustomerReferralDto!]!

Arguments
Name Description
referrer_customer_id - ID!
status - ReferralStatusEnum

Example

Query
query customerReferralsByReferrer(
  $referrer_customer_id: ID!,
  $status: ReferralStatusEnum
) {
  customerReferralsByReferrer(
    referrer_customer_id: $referrer_customer_id,
    status: $status
  ) {
    referral_id
    referrer_customer_id
    referee_customer_id
    referee_customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    referral_code_used
    referral_status
    validation_due_date
    validated_at
    rewards_processed_at
    referee_loan_contract_id
    referee_opening_date
    payment_adjustment_id
    referrer_airtime_transaction_id
    referee_airtime_transaction_id
    created_by
    created_at
    updated_by
    updated_at
  }
}
Variables
{"referrer_customer_id": 4, "status": "INCOMPLETE"}
Response
{
  "data": {
    "customerReferralsByReferrer": [
      {
        "referral_id": "4",
        "referrer_customer_id": "4",
        "referee_customer_id": 4,
        "referee_customer": RawCustomersDto,
        "referral_code_used": "xyz789",
        "referral_status": "INCOMPLETE",
        "validation_due_date": "2007-12-03T10:15:30Z",
        "validated_at": "2007-12-03T10:15:30Z",
        "rewards_processed_at": "2007-12-03T10:15:30Z",
        "referee_loan_contract_id": "abc123",
        "referee_opening_date": "2007-12-03T10:15:30Z",
        "payment_adjustment_id": "abc123",
        "referrer_airtime_transaction_id": "xyz789",
        "referee_airtime_transaction_id": "abc123",
        "created_by": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_by": "xyz789",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

customerWallet

Response

Returns a RawCustomerWalletsDto!

Arguments
Name Description
id - ID!

Example

Query
query customerWallet($id: ID!) {
  customerWallet(id: $id) {
    customer_wallet_id
    customer_id
    customer_wallet_available_balance
    customer_wallet_total_payments
    customer_wallet_total_adjustments
    customer_wallet_total_days_given
    customer_wallet_total_points
    customer_wallet_total_allocated
    customer_wallet_lifetime_credits
    customer_wallet_lifetime_debits
    customer_wallet_currency
    customer_wallet_created_at
    customer_wallet_updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "customerWallet": {
      "customer_wallet_id": "4",
      "customer_id": "4",
      "customer_wallet_available_balance": 987.65,
      "customer_wallet_total_payments": 987.65,
      "customer_wallet_total_adjustments": 123.45,
      "customer_wallet_total_days_given": 123.45,
      "customer_wallet_total_points": 123.45,
      "customer_wallet_total_allocated": 123.45,
      "customer_wallet_lifetime_credits": 123.45,
      "customer_wallet_lifetime_debits": 987.65,
      "customer_wallet_currency": "KES",
      "customer_wallet_created_at": "2007-12-03T10:15:30Z",
      "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

customerWalletByFilters

Response

Returns a RawCustomerWalletsDto

Arguments
Name Description
filters - CustomerWalletsFilterInput!

Example

Query
query customerWalletByFilters($filters: CustomerWalletsFilterInput!) {
  customerWalletByFilters(filters: $filters) {
    customer_wallet_id
    customer_id
    customer_wallet_available_balance
    customer_wallet_total_payments
    customer_wallet_total_adjustments
    customer_wallet_total_days_given
    customer_wallet_total_points
    customer_wallet_total_allocated
    customer_wallet_lifetime_credits
    customer_wallet_lifetime_debits
    customer_wallet_currency
    customer_wallet_created_at
    customer_wallet_updated_at
  }
}
Variables
{"filters": CustomerWalletsFilterInput}
Response
{
  "data": {
    "customerWalletByFilters": {
      "customer_wallet_id": 4,
      "customer_id": 4,
      "customer_wallet_available_balance": 123.45,
      "customer_wallet_total_payments": 987.65,
      "customer_wallet_total_adjustments": 987.65,
      "customer_wallet_total_days_given": 987.65,
      "customer_wallet_total_points": 987.65,
      "customer_wallet_total_allocated": 987.65,
      "customer_wallet_lifetime_credits": 987.65,
      "customer_wallet_lifetime_debits": 123.45,
      "customer_wallet_currency": "KES",
      "customer_wallet_created_at": "2007-12-03T10:15:30Z",
      "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

customerWallets

Response

Returns [RawCustomerWalletsDto!]!

Arguments
Name Description
filters - CustomerWalletsFilterInput

Example

Query
query customerWallets($filters: CustomerWalletsFilterInput) {
  customerWallets(filters: $filters) {
    customer_wallet_id
    customer_id
    customer_wallet_available_balance
    customer_wallet_total_payments
    customer_wallet_total_adjustments
    customer_wallet_total_days_given
    customer_wallet_total_points
    customer_wallet_total_allocated
    customer_wallet_lifetime_credits
    customer_wallet_lifetime_debits
    customer_wallet_currency
    customer_wallet_created_at
    customer_wallet_updated_at
  }
}
Variables
{"filters": CustomerWalletsFilterInput}
Response
{
  "data": {
    "customerWallets": [
      {
        "customer_wallet_id": "4",
        "customer_id": "4",
        "customer_wallet_available_balance": 123.45,
        "customer_wallet_total_payments": 987.65,
        "customer_wallet_total_adjustments": 987.65,
        "customer_wallet_total_days_given": 987.65,
        "customer_wallet_total_points": 987.65,
        "customer_wallet_total_allocated": 123.45,
        "customer_wallet_lifetime_credits": 987.65,
        "customer_wallet_lifetime_debits": 123.45,
        "customer_wallet_currency": "KES",
        "customer_wallet_created_at": "2007-12-03T10:15:30Z",
        "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

customerWalletsCount

Response

Returns a Float!

Arguments
Name Description
filters - CustomerWalletsFilterInput

Example

Query
query customerWalletsCount($filters: CustomerWalletsFilterInput) {
  customerWalletsCount(filters: $filters)
}
Variables
{"filters": CustomerWalletsFilterInput}
Response
{"data": {"customerWalletsCount": 987.65}}

customer_module

Description

Access customer module operations

Response

Returns a CustomerModuleNamespace!

Example

Query
query customer_module {
  customer_module {
    credit {
      queueAnalytics {
        ...QueueAnalyticsTypeFragment
      }
      queueWorkload {
        ...QueueWorkloadResponseTypeFragment
      }
      queueApplicationsOffset {
        ...OffsetPaginatedApplicationsFragment
      }
      queueApplicationsCursor {
        ...CursorPaginatedApplicationsFragment
      }
      updateCreditProspectStage {
        ...ApplicationEntityGraphQLFragment
      }
      assignCreditAgent {
        ...ApplicationEntityGraphQLFragment
      }
      updateCreditApplication {
        ...ApplicationEntityGraphQLFragment
      }
      retryOrderCreation {
        ...ApplicationEntityGraphQLFragment
      }
    }
    subsequentLoan {
      createSubsequentLoanApplication {
        ...ApplicationEntityGraphQLFragment
      }
      verifySubsequentLoanOtp {
        ...ApplicationEntityGraphQLFragment
      }
      checkSubsequentLoanEligibility
    }
    risk {
      riskRecord {
        ...RawRiskDtoFragment
      }
      riskRecordByFilters {
        ...RawRiskDtoFragment
      }
      riskRecordsCount
      riskRecordsCursor {
        ...CursorPaginatedRawRiskFragment
      }
      riskRecordsOffset {
        ...OffsetPaginatedRawRiskFragment
      }
      riskRecordsByCustomer {
        ...RawRiskDtoFragment
      }
      isBlocked {
        ...RawRiskDtoFragment
      }
      createRiskRecord {
        ...RawRiskDtoFragment
      }
      updateRiskRecord {
        ...RawRiskDtoFragment
      }
      updateManyRiskRecords
      deleteRiskRecord
      deleteManyRiskRecords
      deactivateRiskRecord {
        ...RawRiskDtoFragment
      }
      combinedRiskFlagForCustomer {
        ...CombinedRiskFlagResultTypeFragment
      }
      combinedRiskFlagForApplication {
        ...CombinedRiskFlagResultTypeFragment
      }
      exemptionEligibility {
        ...ExemptionEligibilityTypeFragment
      }
      processExemption {
        ...ApplicationEntityGraphQLFragment
      }
      calculateCustomerRisk
      calculateApplicationRisk
    }
    applications {
      resubmissionEligibility {
        ...ResubmissionJourneyGraphQLFragment
      }
      resubmissionForm {
        ...ResubmissionFormSchemaGraphQLFragment
      }
      resubmissionOverview {
        ...ResubmissionOverviewTypeFragment
      }
      resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      submitResubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      updateResubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      commitResubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      transferProspectForResubmission
    }
    onboardingChecks {
      runFullValidationCheck {
        ...OnboardingCheckResponseFragment
      }
      runIprsCheck {
        ...OnboardingCheckResponseFragment
      }
      runMpesaCheck {
        ...OnboardingCheckResponseFragment
      }
      runDuplicateCheck {
        ...OnboardingCheckResponseFragment
      }
      runCrbCheck {
        ...OnboardingCheckResponseFragment
      }
      runKraCheck {
        ...OnboardingCheckResponseFragment
      }
      runFateGuideCheck {
        ...OnboardingCheckResponseFragment
      }
      runRiskCheck {
        ...OnboardingCheckResponseFragment
      }
      runPrescreeningCheck {
        ...OnboardingCheckResponseFragment
      }
      runPrescreenFlow {
        ...OnboardingCheckResponseFragment
      }
      runNokCheckFlow {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionIprsCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionMpesaCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionNokMpesaCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionKraCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionRiskCheck {
        ...OnboardingCheckResponseFragment
      }
      resendDuplicateOtp {
        ...ApplicationEntityGraphQLFragment
      }
      verifyDuplicateOtp {
        ...ApplicationEntityGraphQLFragment
      }
      previewDuplicateCheck {
        ...DuplicatePreviewCheckResultFragment
      }
    }
    onboardingSupport {
      rerunRoundRobin {
        ...RoundRobinRerunResultTypeFragment
      }
    }
    selfUnlockDevice {
      success
      customer_id
      total_contracts
      eligible_contracts
      queued_unlocks
      skipped_contracts
      results {
        ...CustomerSelfUnlockContractResultTypeFragment
      }
    }
    gracePeriodEligibility {
      eligible
      reason
      contractId
      loanId
      category
      maxAvailableDays
      selectableOptions
      currentGracePeriodExpiry
      isActiveGracePeriod
    }
    requestGracePeriod {
      success
      contractId
      loanId
      category
      graceDays
      gracePeriodCreditExpiry
      wasExtended
    }
    grantGracePeriodOverride {
      success
      contractId
      loanId
      category
      graceDays
      gracePeriodCreditExpiry
      wasExtended
    }
    revokeGracePeriod {
      success
      contractId
      loanId
      revoked
      deviceAction
    }
  }
}
Response
{
  "data": {
    "customer_module": {
      "credit": CreditNamespace,
      "subsequentLoan": SubsequentLoanNamespace,
      "risk": RiskNamespace,
      "applications": ApplicationsNamespace,
      "onboardingChecks": OnboardingChecksNamespace,
      "onboardingSupport": OnboardingSupportNamespace,
      "selfUnlockDevice": CustomerSelfUnlockResultType,
      "gracePeriodEligibility": GracePeriodEligibilityResultType,
      "requestGracePeriod": GracePeriodAwardResultType,
      "grantGracePeriodOverride": GracePeriodAwardResultType,
      "revokeGracePeriod": GracePeriodRevocationResultType
    }
  }
}

customersByPhone

Response

Returns [RawCustomersDto!]!

Arguments
Name Description
phoneNumber - String!

Example

Query
query customersByPhone($phoneNumber: String!) {
  customersByPhone(phoneNumber: $phoneNumber) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"phoneNumber": "xyz789"}
Response
{
  "data": {
    "customersByPhone": [
      {
        "customer_id": "4",
        "customer_created_at": "2007-12-03T10:15:30Z",
        "customer_type": "INDIVIDUAL",
        "customer_phone_number": "abc123",
        "official_id_number": "abc123",
        "country": "xyz789",
        "county": "xyz789",
        "sub_county": "abc123",
        "ward": "abc123",
        "town": "xyz789",
        "landmark": "xyz789",
        "customer_email_address": "xyz789",
        "customer_status": "ACTIVE",
        "display_name": "xyz789",
        "customer_first_name": "abc123",
        "customer_surname_name": "xyz789",
        "organization_name": "xyz789",
        "organization_registration_number": "abc123",
        "individual_details": IndividualDetailsDto,
        "organization_details": OrganizationDetailsDto,
        "contact_person": ContactPersonDto,
        "kyc_documents": KycDocumentsDto,
        "next_of_kin": NextOfKinDto,
        "total_loans_taken": 987.65,
        "active_loans_count": 987.65,
        "completed_loans_count": 987.65,
        "has_defaulted": true,
        "current_credit_score": "xyz789",
        "metadata": {},
        "customer_updated_at": "2007-12-03T10:15:30Z",
        "keycloak_id": "abc123",
        "referral_code": "abc123",
        "applications": [ApplicationEntityGraphQL],
        "latestApplication": ApplicationEntityGraphQL
      }
    ]
  }
}

customersCount

Response

Returns a Float!

Arguments
Name Description
filters - RawCustomersFilterInput

Example

Query
query customersCount($filters: RawCustomersFilterInput) {
  customersCount(filters: $filters)
}
Variables
{"filters": RawCustomersFilterInput}
Response
{"data": {"customersCount": 987.65}}

deliveries

Response

Returns [DeliveryObjectType!]

Arguments
Name Description
filters - DeliveryFilterInput

Example

Query
query deliveries($filters: DeliveryFilterInput) {
  deliveries(filters: $filters) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": DeliveryFilterInput}
Response
{
  "data": {
    "deliveries": [
      {
        "delivery_id": 4,
        "order_id": 4,
        "seller_id": 4,
        "assigned_rider_id": "4",
        "delivery_status": "PENDING",
        "delivery_address": DeliveryAddress,
        "tracking_number": "xyz789",
        "provider_info": ProviderInfo,
        "proof_of_delivery": ProofOfDelivery,
        "delivery_notes": "abc123",
        "destination_location": GeoLocation,
        "estimated_arrival": "2007-12-03T10:15:30Z",
        "actual_arrival": "2007-12-03T10:15:30Z",
        "metadata": {},
        "assigned_rider": UserObjectType,
        "seller": SellerObjectType,
        "order": OrderObjectType,
        "items": [DeliveryItemObjectType],
        "calls": [DeliveryCallObjectType],
        "latestAnsweredCall": DeliveryCallObjectType,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "deliveryItems": [DeliveryItemObjectType]
      }
    ]
  }
}

deliveriesCursor

Response

Returns a CursorPaginatedDeliveries

Arguments
Name Description
pagination - CursorPaginationInputType
filters - DeliveryFilterInput
regexFilters - DeliveryFilterInput

Example

Query
query deliveriesCursor(
  $pagination: CursorPaginationInputType,
  $filters: DeliveryFilterInput,
  $regexFilters: DeliveryFilterInput
) {
  deliveriesCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": DeliveryFilterInput,
  "regexFilters": DeliveryFilterInput
}
Response
{
  "data": {
    "deliveriesCursor": {
      "data": [DeliveryObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

deliveriesOffset

Response

Returns an OffsetPaginatedDeliveries!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - DeliveryFilterInput
regexFilters - DeliveryFilterInput

Example

Query
query deliveriesOffset(
  $pagination: OffsetPaginationInputType,
  $filters: DeliveryFilterInput,
  $regexFilters: DeliveryFilterInput
) {
  deliveriesOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": DeliveryFilterInput,
  "regexFilters": DeliveryFilterInput
}
Response
{
  "data": {
    "deliveriesOffset": {
      "data": [DeliveryObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

delivery

Response

Returns a DeliveryObjectType

Arguments
Name Description
id - ID!

Example

Query
query delivery($id: ID!) {
  delivery(id: $id) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "delivery": {
      "delivery_id": 4,
      "order_id": "4",
      "seller_id": "4",
      "assigned_rider_id": 4,
      "delivery_status": "PENDING",
      "delivery_address": DeliveryAddress,
      "tracking_number": "xyz789",
      "provider_info": ProviderInfo,
      "proof_of_delivery": ProofOfDelivery,
      "delivery_notes": "xyz789",
      "destination_location": GeoLocation,
      "estimated_arrival": "2007-12-03T10:15:30Z",
      "actual_arrival": "2007-12-03T10:15:30Z",
      "metadata": {},
      "assigned_rider": UserObjectType,
      "seller": SellerObjectType,
      "order": OrderObjectType,
      "items": [DeliveryItemObjectType],
      "calls": [DeliveryCallObjectType],
      "latestAnsweredCall": DeliveryCallObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "deliveryItems": [DeliveryItemObjectType]
    }
  }
}

deliveryByFilters

Response

Returns a DeliveryObjectType

Arguments
Name Description
filters - DeliveryFilterInput!

Example

Query
query deliveryByFilters($filters: DeliveryFilterInput!) {
  deliveryByFilters(filters: $filters) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": DeliveryFilterInput}
Response
{
  "data": {
    "deliveryByFilters": {
      "delivery_id": "4",
      "order_id": "4",
      "seller_id": "4",
      "assigned_rider_id": "4",
      "delivery_status": "PENDING",
      "delivery_address": DeliveryAddress,
      "tracking_number": "abc123",
      "provider_info": ProviderInfo,
      "proof_of_delivery": ProofOfDelivery,
      "delivery_notes": "xyz789",
      "destination_location": GeoLocation,
      "estimated_arrival": "2007-12-03T10:15:30Z",
      "actual_arrival": "2007-12-03T10:15:30Z",
      "metadata": {},
      "assigned_rider": UserObjectType,
      "seller": SellerObjectType,
      "order": OrderObjectType,
      "items": [DeliveryItemObjectType],
      "calls": [DeliveryCallObjectType],
      "latestAnsweredCall": DeliveryCallObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "deliveryItems": [DeliveryItemObjectType]
    }
  }
}

deliveryCall

Response

Returns a DeliveryCallObjectType

Arguments
Name Description
id - ID!

Example

Query
query deliveryCall($id: ID!) {
  deliveryCall(id: $id) {
    call_id
    order_id
    called_by
    caller {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    confirmed_delivery_location {
      street
      city
      state
      postal_code
      country
      geo {
        ...DeliveryCallGeoFragment
      }
    }
    spec_preference {
      colour
      sim_card_preference
    }
    confirmed_delivery_date
    confirmed_delivery_slot
    call_time
    outcome
    confirmed_delivery_type
    confirmed_delivery_type_name
    notes
    metadata
    created_at
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deliveryCall": {
      "call_id": 4,
      "order_id": "4",
      "called_by": "4",
      "caller": UserObjectType,
      "confirmed_delivery_location": ConfirmedDeliveryLocationObjectType,
      "spec_preference": SpecPreferenceObjectType,
      "confirmed_delivery_date": "xyz789",
      "confirmed_delivery_slot": "MORNING",
      "call_time": "2007-12-03T10:15:30Z",
      "outcome": "CALL_BACK",
      "confirmed_delivery_type": "DELIVERY",
      "confirmed_delivery_type_name": "MO",
      "notes": "xyz789",
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "order": OrderObjectType
    }
  }
}

deliveryCalls

Response

Returns [DeliveryCallObjectType!]

Arguments
Name Description
filters - DeliveryCallFilterInput

Example

Query
query deliveryCalls($filters: DeliveryCallFilterInput) {
  deliveryCalls(filters: $filters) {
    call_id
    order_id
    called_by
    caller {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    confirmed_delivery_location {
      street
      city
      state
      postal_code
      country
      geo {
        ...DeliveryCallGeoFragment
      }
    }
    spec_preference {
      colour
      sim_card_preference
    }
    confirmed_delivery_date
    confirmed_delivery_slot
    call_time
    outcome
    confirmed_delivery_type
    confirmed_delivery_type_name
    notes
    metadata
    created_at
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": DeliveryCallFilterInput}
Response
{
  "data": {
    "deliveryCalls": [
      {
        "call_id": 4,
        "order_id": 4,
        "called_by": "4",
        "caller": UserObjectType,
        "confirmed_delivery_location": ConfirmedDeliveryLocationObjectType,
        "spec_preference": SpecPreferenceObjectType,
        "confirmed_delivery_date": "abc123",
        "confirmed_delivery_slot": "MORNING",
        "call_time": "2007-12-03T10:15:30Z",
        "outcome": "CALL_BACK",
        "confirmed_delivery_type": "DELIVERY",
        "confirmed_delivery_type_name": "MO",
        "notes": "xyz789",
        "metadata": {},
        "created_at": "2007-12-03T10:15:30Z",
        "order": OrderObjectType
      }
    ]
  }
}

deliveryCallsCursor

Response

Returns a CursorPaginatedDeliveryCalls

Arguments
Name Description
pagination - CursorPaginationInputType
filters - DeliveryCallFilterInput
regexFilters - DeliveryCallFilterInput

Example

Query
query deliveryCallsCursor(
  $pagination: CursorPaginationInputType,
  $filters: DeliveryCallFilterInput,
  $regexFilters: DeliveryCallFilterInput
) {
  deliveryCallsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": DeliveryCallFilterInput,
  "regexFilters": DeliveryCallFilterInput
}
Response
{
  "data": {
    "deliveryCallsCursor": {
      "data": [DeliveryCallObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

deliveryCallsOffset

Response

Returns an OffsetPaginatedDeliveryCalls!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - DeliveryCallFilterInput
regexFilters - DeliveryCallFilterInput

Example

Query
query deliveryCallsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: DeliveryCallFilterInput,
  $regexFilters: DeliveryCallFilterInput
) {
  deliveryCallsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": DeliveryCallFilterInput,
  "regexFilters": DeliveryCallFilterInput
}
Response
{
  "data": {
    "deliveryCallsOffset": {
      "data": [DeliveryCallObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

deliveryItem

Response

Returns a DeliveryItemObjectType

Arguments
Name Description
id - ID!

Example

Query
query deliveryItem($id: ID!) {
  deliveryItem(id: $id) {
    id
    delivery_id
    order_item_id
    quantity_shipped
    delivery {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deliveryItem": {
      "id": 4,
      "delivery_id": "4",
      "order_item_id": "4",
      "quantity_shipped": 987.65,
      "delivery": DeliveryObjectType,
      "order_item": OrderItemObjectType
    }
  }
}

deliveryItemByFilters

Response

Returns a DeliveryItemObjectType

Arguments
Name Description
filters - DeliveryItemFilterInput!

Example

Query
query deliveryItemByFilters($filters: DeliveryItemFilterInput!) {
  deliveryItemByFilters(filters: $filters) {
    id
    delivery_id
    order_item_id
    quantity_shipped
    delivery {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": DeliveryItemFilterInput}
Response
{
  "data": {
    "deliveryItemByFilters": {
      "id": "4",
      "delivery_id": "4",
      "order_item_id": 4,
      "quantity_shipped": 987.65,
      "delivery": DeliveryObjectType,
      "order_item": OrderItemObjectType
    }
  }
}

deliveryItems

Response

Returns [DeliveryItemObjectType!]

Arguments
Name Description
filters - DeliveryItemFilterInput

Example

Query
query deliveryItems($filters: DeliveryItemFilterInput) {
  deliveryItems(filters: $filters) {
    id
    delivery_id
    order_item_id
    quantity_shipped
    delivery {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": DeliveryItemFilterInput}
Response
{
  "data": {
    "deliveryItems": [
      {
        "id": 4,
        "delivery_id": "4",
        "order_item_id": "4",
        "quantity_shipped": 987.65,
        "delivery": DeliveryObjectType,
        "order_item": OrderItemObjectType
      }
    ]
  }
}

deliveryItemsCursor

Response

Returns a CursorPaginatedDeliveryItems

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - DeliveryItemFilterInput
regexFilters - DeliveryItemFilterInput

Example

Query
query deliveryItemsCursor(
  $pagination: CursorPaginationInputType!,
  $filters: DeliveryItemFilterInput,
  $regexFilters: DeliveryItemFilterInput
) {
  deliveryItemsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": DeliveryItemFilterInput,
  "regexFilters": DeliveryItemFilterInput
}
Response
{
  "data": {
    "deliveryItemsCursor": {
      "data": [DeliveryItemObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

deliveryItemsOffset

Response

Returns an OffsetPaginatedDeliveryItems!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - DeliveryItemFilterInput
regexFilters - DeliveryItemFilterInput

Example

Query
query deliveryItemsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: DeliveryItemFilterInput,
  $regexFilters: DeliveryItemFilterInput
) {
  deliveryItemsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": DeliveryItemFilterInput,
  "regexFilters": DeliveryItemFilterInput
}
Response
{
  "data": {
    "deliveryItemsOffset": {
      "data": [DeliveryItemObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

deviceLock

Response

Returns a MdmLockLogsNamespace!

Example

Query
query deviceLock {
  deviceLock {
    _description
    command {
      command_id
      device_id
      device_imei
      command_type
      command_status
      command_trigger
      mdm_provider
      initiated_by
      mdm_reference_id
      error_message
      attempt_count
      command_payload
      mdm_response
      command_queued_at
      command_sent_at
      command_delivered_at
      command_completed_at
      command_created_at
      command_updated_at
    }
    commandHistory {
      command_id
      device_id
      device_imei
      command_type
      command_status
      command_trigger
      mdm_provider
      initiated_by
      mdm_reference_id
      error_message
      attempt_count
      command_payload
      mdm_response
      command_queued_at
      command_sent_at
      command_delivered_at
      command_completed_at
      command_created_at
      command_updated_at
    }
    latestCommand {
      command_id
      device_id
      device_imei
      command_type
      command_status
      command_trigger
      mdm_provider
      initiated_by
      mdm_reference_id
      error_message
      attempt_count
      command_payload
      mdm_response
      command_queued_at
      command_sent_at
      command_delivered_at
      command_completed_at
      command_created_at
      command_updated_at
    }
  }
}
Response
{
  "data": {
    "deviceLock": {
      "_description": "abc123",
      "command": DeviceLockCommandType,
      "commandHistory": [DeviceLockCommandType],
      "latestCommand": DeviceLockCommandType
    }
  }
}

devices

Response

Returns a MdmNamespace!

Example

Query
query devices {
  devices {
    _description
    lockDevice {
      success
      message
      command {
        ...DeviceLockCommandTypeFragment
      }
    }
    unlockDevice {
      success
      message
      command {
        ...DeviceLockCommandTypeFragment
      }
    }
    bulkUnlockDevices {
      totalRequested
      totalResolved
      totalSucceeded
      totalFailed
      results {
        ...BulkUnlockDeviceResultTypeFragment
      }
      platformSummaries {
        ...PlatformUnlockSummaryTypeFragment
      }
    }
    bulkLockDevices {
      totalRequested
      totalResolved
      totalSucceeded
      totalFailed
      results {
        ...BulkUnlockDeviceResultTypeFragment
      }
      platformSummaries {
        ...PlatformUnlockSummaryTypeFragment
      }
    }
    deviceStatus {
      success
      id
      mdmProvider
      isLocked
      isEnrolled
      isOnline
      isScreenLocked
      isCharging
      isLost
      imei
      imei2
      serialNumber
      model
      manufacturer
      osVersion
      phoneNumber
      phoneNumber2
      networkOperator
      networkOperator2
      batteryLevel
      lastSeenAt
      enrollmentDate
      enrollmentStatus
      nextLockDate
      unlockCode
      deviceGroupId
      deviceGroupName
      storageTotal
      storageAvailable
      location {
        ...DeviceLocationResultTypeFragment
      }
      simLockInfo {
        ...SimLockInfoTypeFragment
      }
      rawStatus
    }
    activityLogs {
      logs {
        ...MdmActivityLogEntryTypeFragment
      }
      total_count
    }
  }
}
Response
{
  "data": {
    "devices": {
      "_description": "xyz789",
      "lockDevice": DeviceCommandResultType,
      "unlockDevice": DeviceCommandResultType,
      "bulkUnlockDevices": BulkUnlockResultType,
      "bulkLockDevices": BulkUnlockResultType,
      "deviceStatus": DeviceStatusResultType,
      "activityLogs": MdmActivityLogsResultType
    }
  }
}

earlyPayoffCalculation

Response

Returns an EarlyPayoffCalculationType!

Arguments
Name Description
planId - String!
cashPrice - Float!
discountMonth - Int!

Example

Query
query earlyPayoffCalculation(
  $planId: String!,
  $cashPrice: Float!,
  $discountMonth: Int!
) {
  earlyPayoffCalculation(
    planId: $planId,
    cashPrice: $cashPrice,
    discountMonth: $discountMonth
  ) {
    total_loan_amount
    deposit_amount
    outstanding_loan
    discount_percent
    discount_amount
    outstanding_discount_applied
    total_customer_pays
    accurate_total_customer_pays
    monthly_instalment_amount
    weekly_instalment_amount
    daily_instalment_amount
    duration_months
    payment_frequency
    total_loan_amount_high
    discount_amount_high
    total_customer_pays_high
    outstanding_loan_high
    monthly_instalment_amount_high
    weekly_instalment_amount_high
    daily_instalment_amount_high
  }
}
Variables
{
  "planId": "xyz789",
  "cashPrice": 123.45,
  "discountMonth": 987
}
Response
{
  "data": {
    "earlyPayoffCalculation": {
      "total_loan_amount": 987.65,
      "deposit_amount": 123.45,
      "outstanding_loan": 123.45,
      "discount_percent": 123.45,
      "discount_amount": 123.45,
      "outstanding_discount_applied": 987.65,
      "total_customer_pays": 123.45,
      "accurate_total_customer_pays": 123.45,
      "monthly_instalment_amount": 987.65,
      "weekly_instalment_amount": 123.45,
      "daily_instalment_amount": 987.65,
      "duration_months": 123,
      "payment_frequency": "xyz789",
      "total_loan_amount_high": 123.45,
      "discount_amount_high": 123.45,
      "total_customer_pays_high": 123.45,
      "outstanding_loan_high": 987.65,
      "monthly_instalment_amount_high": 123.45,
      "weekly_instalment_amount_high": 123.45,
      "daily_instalment_amount_high": 987.65
    }
  }
}

eligiblePricePlans

Response

Returns [PricePlanObjectType!]!

Arguments
Name Description
deviceValue - Float!
sellerTierId - String
includePrivate - Boolean Default = false

Example

Query
query eligiblePricePlans(
  $deviceValue: Float!,
  $sellerTierId: String,
  $includePrivate: Boolean
) {
  eligiblePricePlans(
    deviceValue: $deviceValue,
    sellerTierId: $sellerTierId,
    includePrivate: $includePrivate
  ) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{
  "deviceValue": 987.65,
  "sellerTierId": "xyz789",
  "includePrivate": false
}
Response
{
  "data": {
    "eligiblePricePlans": [
      {
        "id": 4,
        "tier_id": "abc123",
        "parent_plan_id": "xyz789",
        "code": "abc123",
        "name": "xyz789",
        "min_device_value": 987.65,
        "max_device_value": 987.65,
        "deposit_percent": 123.45,
        "deposit_percent_high": 987.65,
        "subsequent_loan_discount_percent": 123.45,
        "loan_multiplier": 123.45,
        "loan_multiplier_high": 987.65,
        "mocare_percent": 123.45,
        "duration_months": 987,
        "duration_months_high": 987,
        "payment_frequency": "DAILY",
        "effective_from": "2007-12-03T10:15:30Z",
        "effective_to": "2007-12-03T10:15:30Z",
        "early_payoff_discounts": [
          EarlyPayoffDiscountObjectType
        ],
        "status": "ACTIVE",
        "is_private": true,
        "version": 987,
        "metadata": {},
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "tier": SellerTierObjectType,
        "versions": [PricePlanObjectType]
      }
    ]
  }
}

export_module

Description

Access data export module operations

Response

Returns an ExportModuleNamespace!

Example

Query
query export_module {
  export_module {
    dataExport {
      scheduleDataExport {
        ...DataExportTypeFragment
      }
      estimateRowCount
      exportColumnCatalog {
        ...ExportDomainColumnCatalogTypeFragment
      }
      dataExport {
        ...DataExportTypeFragment
      }
      dataExports {
        ...DataExportTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "export_module": {"dataExport": DataExportNamespace}
  }
}

fateGuideScores

Description

Get a single fate guide score by ID

Response

Returns a FateGuideScoresDto

Arguments
Name Description
id - ID!

Example

Query
query fateGuideScores($id: ID!) {
  fateGuideScores(id: $id) {
    id
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    customer_id
    crb_transaction_id
    mobile_analysis_id
    document_id
    crb_score
    crb_past_default_record
    customer_age
    big_loan_default
    model_type
    fate_guide_message
    requires_recheck
    sale_agent_id
    available_plans
    version
    sku
    type
    active
    devicePrice
    durationMonths
    age
    loanHistory {
      status
      accountStatus
      principal_amount
      originalAmount
      instalment_amount
      scheduledPaymentAmount
      term_months
      repaymentPeriod
    }
    signals {
      slopeBucket
      spinAffordability
      slopePctPerMonth
      bettingRatio
      p2pShare
      cov
      age
    }
    tier
    status
    rejectionReason
    statementLength
    minimumRequired
    sdiPct
    maxMonthlyInstallment
    maxCashPrice
    maxCashPriceHigh
    maxCashPriceMosaver
    productBand
    canonicalProductBand
    depositLevel
    affordabilitySource
    affordabilityValue
    adjustedAffordability
    crbInferredAffordability
    recommendation
    slopeBucket
    slopeHaircutPct
    bettingRatio
    p2pShare
    crbPositiveScore
    cov
    productBands
    deviceAssessment
    customerName
    assessedAt
    modelVersion
    formulas {
      grossInflows
      inorganicBanks
      inorganicMfis
      inorganicMobileLenders
      inorganicBetting
      inorganicInsurance
      inorganicTotal
      inorganicPct
      netInflows
      essentials
      loanRepayments
      frequentP2pSent
      frequentP2pTxnsPm
      nondiscretionary
      nondiscretionaryPct
      disposableIncome
      disposableIncomeMonthly
      monthlyDataPoints
      covBucket
      dirPct
      p2pReceivedTotal
      top10P2pTotal
      top10P2pShare
      p2pHaircutPct
      loanExposure
      fulizaPerMonth
      fulizaOvercountFlag
      financialHaircutPct
      bettingSent
      bettingPerMonth
      bettingFreqFlag
      bettingHaircutPct
      totalRafPct
      maxInstallmentPreRaf
      maxInstallment
      rejected
      negativeDisposableFlag
    }
    explanation {
      recommendation
      reason
      affordabilitySource
      spinAffordability
      crbInferredAffordability
      adjustedAffordability
      sdiPct
      tier
      tierThresholds
      slopeBucket
      haircutPct
      maxCashPrice
      maxCashPriceHigh
      maxCashPriceMosaver
      keyFormulas
      rafMonitoring {
        ...FateGuideExplainerRafMonitoringDtoFragment
      }
    }
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "fateGuideScores": {
      "id": "4",
      "_id": 4,
      "application_id": "4",
      "application": ApplicationEntityGraphQL,
      "customer_id": "abc123",
      "crb_transaction_id": 4,
      "mobile_analysis_id": "xyz789",
      "document_id": "4",
      "crb_score": "xyz789",
      "crb_past_default_record": 123.45,
      "customer_age": 123,
      "big_loan_default": "xyz789",
      "model_type": "abc123",
      "fate_guide_message": "xyz789",
      "requires_recheck": false,
      "sale_agent_id": "xyz789",
      "available_plans": ["xyz789"],
      "version": 987,
      "sku": "xyz789",
      "type": "abc123",
      "active": true,
      "devicePrice": 123.45,
      "durationMonths": 123,
      "age": 123.45,
      "loanHistory": [FateGuideRuntimeLoanRecordDto],
      "signals": FateGuideRuntimeSignalsDto,
      "tier": "abc123",
      "status": "xyz789",
      "rejectionReason": "abc123",
      "statementLength": 123.45,
      "minimumRequired": 987.65,
      "sdiPct": 987.65,
      "maxMonthlyInstallment": 123.45,
      "maxCashPrice": 987.65,
      "maxCashPriceHigh": 123.45,
      "maxCashPriceMosaver": 123.45,
      "productBand": "abc123",
      "canonicalProductBand": "xyz789",
      "depositLevel": "xyz789",
      "affordabilitySource": "abc123",
      "affordabilityValue": 987.65,
      "adjustedAffordability": 987.65,
      "crbInferredAffordability": 987.65,
      "recommendation": "abc123",
      "slopeBucket": "abc123",
      "slopeHaircutPct": 987.65,
      "bettingRatio": 987.65,
      "p2pShare": 123.45,
      "crbPositiveScore": 123.45,
      "cov": 987.65,
      "productBands": {},
      "deviceAssessment": {},
      "customerName": "xyz789",
      "assessedAt": "xyz789",
      "modelVersion": "xyz789",
      "formulas": FateGuideRuntimeFormulasDto,
      "explanation": FateGuideRuntimeExplanationDto,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

fateGuideScoresByApplicationId

Description

Get fate guide scores for an application

Response

Returns [FateGuideScoresDto!]!

Arguments
Name Description
applicationId - ID!

Example

Query
query fateGuideScoresByApplicationId($applicationId: ID!) {
  fateGuideScoresByApplicationId(applicationId: $applicationId) {
    id
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    customer_id
    crb_transaction_id
    mobile_analysis_id
    document_id
    crb_score
    crb_past_default_record
    customer_age
    big_loan_default
    model_type
    fate_guide_message
    requires_recheck
    sale_agent_id
    available_plans
    version
    sku
    type
    active
    devicePrice
    durationMonths
    age
    loanHistory {
      status
      accountStatus
      principal_amount
      originalAmount
      instalment_amount
      scheduledPaymentAmount
      term_months
      repaymentPeriod
    }
    signals {
      slopeBucket
      spinAffordability
      slopePctPerMonth
      bettingRatio
      p2pShare
      cov
      age
    }
    tier
    status
    rejectionReason
    statementLength
    minimumRequired
    sdiPct
    maxMonthlyInstallment
    maxCashPrice
    maxCashPriceHigh
    maxCashPriceMosaver
    productBand
    canonicalProductBand
    depositLevel
    affordabilitySource
    affordabilityValue
    adjustedAffordability
    crbInferredAffordability
    recommendation
    slopeBucket
    slopeHaircutPct
    bettingRatio
    p2pShare
    crbPositiveScore
    cov
    productBands
    deviceAssessment
    customerName
    assessedAt
    modelVersion
    formulas {
      grossInflows
      inorganicBanks
      inorganicMfis
      inorganicMobileLenders
      inorganicBetting
      inorganicInsurance
      inorganicTotal
      inorganicPct
      netInflows
      essentials
      loanRepayments
      frequentP2pSent
      frequentP2pTxnsPm
      nondiscretionary
      nondiscretionaryPct
      disposableIncome
      disposableIncomeMonthly
      monthlyDataPoints
      covBucket
      dirPct
      p2pReceivedTotal
      top10P2pTotal
      top10P2pShare
      p2pHaircutPct
      loanExposure
      fulizaPerMonth
      fulizaOvercountFlag
      financialHaircutPct
      bettingSent
      bettingPerMonth
      bettingFreqFlag
      bettingHaircutPct
      totalRafPct
      maxInstallmentPreRaf
      maxInstallment
      rejected
      negativeDisposableFlag
    }
    explanation {
      recommendation
      reason
      affordabilitySource
      spinAffordability
      crbInferredAffordability
      adjustedAffordability
      sdiPct
      tier
      tierThresholds
      slopeBucket
      haircutPct
      maxCashPrice
      maxCashPriceHigh
      maxCashPriceMosaver
      keyFormulas
      rafMonitoring {
        ...FateGuideExplainerRafMonitoringDtoFragment
      }
    }
    createdAt
    updatedAt
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "fateGuideScoresByApplicationId": [
      {
        "id": "4",
        "_id": "4",
        "application_id": "4",
        "application": ApplicationEntityGraphQL,
        "customer_id": "abc123",
        "crb_transaction_id": 4,
        "mobile_analysis_id": "abc123",
        "document_id": 4,
        "crb_score": "xyz789",
        "crb_past_default_record": 123.45,
        "customer_age": 123,
        "big_loan_default": "abc123",
        "model_type": "abc123",
        "fate_guide_message": "abc123",
        "requires_recheck": false,
        "sale_agent_id": "abc123",
        "available_plans": ["abc123"],
        "version": 987,
        "sku": "abc123",
        "type": "abc123",
        "active": true,
        "devicePrice": 987.65,
        "durationMonths": 987,
        "age": 987.65,
        "loanHistory": [FateGuideRuntimeLoanRecordDto],
        "signals": FateGuideRuntimeSignalsDto,
        "tier": "abc123",
        "status": "abc123",
        "rejectionReason": "xyz789",
        "statementLength": 987.65,
        "minimumRequired": 123.45,
        "sdiPct": 987.65,
        "maxMonthlyInstallment": 987.65,
        "maxCashPrice": 987.65,
        "maxCashPriceHigh": 987.65,
        "maxCashPriceMosaver": 987.65,
        "productBand": "xyz789",
        "canonicalProductBand": "xyz789",
        "depositLevel": "abc123",
        "affordabilitySource": "abc123",
        "affordabilityValue": 987.65,
        "adjustedAffordability": 987.65,
        "crbInferredAffordability": 987.65,
        "recommendation": "abc123",
        "slopeBucket": "abc123",
        "slopeHaircutPct": 987.65,
        "bettingRatio": 987.65,
        "p2pShare": 987.65,
        "crbPositiveScore": 123.45,
        "cov": 987.65,
        "productBands": {},
        "deviceAssessment": {},
        "customerName": "xyz789",
        "assessedAt": "xyz789",
        "modelVersion": "abc123",
        "formulas": FateGuideRuntimeFormulasDto,
        "explanation": FateGuideRuntimeExplanationDto,
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

fateGuideScoresByFilters

Description

Get a single fate guide score by filters

Response

Returns a FateGuideScoresDto

Arguments
Name Description
filters - FateGuideScoresFilterInput!

Example

Query
query fateGuideScoresByFilters($filters: FateGuideScoresFilterInput!) {
  fateGuideScoresByFilters(filters: $filters) {
    id
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    customer_id
    crb_transaction_id
    mobile_analysis_id
    document_id
    crb_score
    crb_past_default_record
    customer_age
    big_loan_default
    model_type
    fate_guide_message
    requires_recheck
    sale_agent_id
    available_plans
    version
    sku
    type
    active
    devicePrice
    durationMonths
    age
    loanHistory {
      status
      accountStatus
      principal_amount
      originalAmount
      instalment_amount
      scheduledPaymentAmount
      term_months
      repaymentPeriod
    }
    signals {
      slopeBucket
      spinAffordability
      slopePctPerMonth
      bettingRatio
      p2pShare
      cov
      age
    }
    tier
    status
    rejectionReason
    statementLength
    minimumRequired
    sdiPct
    maxMonthlyInstallment
    maxCashPrice
    maxCashPriceHigh
    maxCashPriceMosaver
    productBand
    canonicalProductBand
    depositLevel
    affordabilitySource
    affordabilityValue
    adjustedAffordability
    crbInferredAffordability
    recommendation
    slopeBucket
    slopeHaircutPct
    bettingRatio
    p2pShare
    crbPositiveScore
    cov
    productBands
    deviceAssessment
    customerName
    assessedAt
    modelVersion
    formulas {
      grossInflows
      inorganicBanks
      inorganicMfis
      inorganicMobileLenders
      inorganicBetting
      inorganicInsurance
      inorganicTotal
      inorganicPct
      netInflows
      essentials
      loanRepayments
      frequentP2pSent
      frequentP2pTxnsPm
      nondiscretionary
      nondiscretionaryPct
      disposableIncome
      disposableIncomeMonthly
      monthlyDataPoints
      covBucket
      dirPct
      p2pReceivedTotal
      top10P2pTotal
      top10P2pShare
      p2pHaircutPct
      loanExposure
      fulizaPerMonth
      fulizaOvercountFlag
      financialHaircutPct
      bettingSent
      bettingPerMonth
      bettingFreqFlag
      bettingHaircutPct
      totalRafPct
      maxInstallmentPreRaf
      maxInstallment
      rejected
      negativeDisposableFlag
    }
    explanation {
      recommendation
      reason
      affordabilitySource
      spinAffordability
      crbInferredAffordability
      adjustedAffordability
      sdiPct
      tier
      tierThresholds
      slopeBucket
      haircutPct
      maxCashPrice
      maxCashPriceHigh
      maxCashPriceMosaver
      keyFormulas
      rafMonitoring {
        ...FateGuideExplainerRafMonitoringDtoFragment
      }
    }
    createdAt
    updatedAt
  }
}
Variables
{"filters": FateGuideScoresFilterInput}
Response
{
  "data": {
    "fateGuideScoresByFilters": {
      "id": 4,
      "_id": "4",
      "application_id": "4",
      "application": ApplicationEntityGraphQL,
      "customer_id": "abc123",
      "crb_transaction_id": "4",
      "mobile_analysis_id": "abc123",
      "document_id": 4,
      "crb_score": "abc123",
      "crb_past_default_record": 987.65,
      "customer_age": 987,
      "big_loan_default": "abc123",
      "model_type": "abc123",
      "fate_guide_message": "abc123",
      "requires_recheck": true,
      "sale_agent_id": "abc123",
      "available_plans": ["xyz789"],
      "version": 987,
      "sku": "abc123",
      "type": "abc123",
      "active": false,
      "devicePrice": 123.45,
      "durationMonths": 123,
      "age": 123.45,
      "loanHistory": [FateGuideRuntimeLoanRecordDto],
      "signals": FateGuideRuntimeSignalsDto,
      "tier": "abc123",
      "status": "abc123",
      "rejectionReason": "abc123",
      "statementLength": 987.65,
      "minimumRequired": 987.65,
      "sdiPct": 987.65,
      "maxMonthlyInstallment": 123.45,
      "maxCashPrice": 123.45,
      "maxCashPriceHigh": 123.45,
      "maxCashPriceMosaver": 123.45,
      "productBand": "abc123",
      "canonicalProductBand": "abc123",
      "depositLevel": "abc123",
      "affordabilitySource": "xyz789",
      "affordabilityValue": 987.65,
      "adjustedAffordability": 123.45,
      "crbInferredAffordability": 987.65,
      "recommendation": "abc123",
      "slopeBucket": "xyz789",
      "slopeHaircutPct": 987.65,
      "bettingRatio": 123.45,
      "p2pShare": 123.45,
      "crbPositiveScore": 987.65,
      "cov": 987.65,
      "productBands": {},
      "deviceAssessment": {},
      "customerName": "xyz789",
      "assessedAt": "abc123",
      "modelVersion": "xyz789",
      "formulas": FateGuideRuntimeFormulasDto,
      "explanation": FateGuideRuntimeExplanationDto,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

fateGuideScoresCount

Description

Get count of fate guide scores with optional filters

Response

Returns a Float!

Arguments
Name Description
filters - FateGuideScoresFilterInput

Example

Query
query fateGuideScoresCount($filters: FateGuideScoresFilterInput) {
  fateGuideScoresCount(filters: $filters)
}
Variables
{"filters": FateGuideScoresFilterInput}
Response
{"data": {"fateGuideScoresCount": 987.65}}

fateGuideScoresCursor

Description

Get cursor-paginated fate guide scores

Arguments
Name Description
pagination - CursorPaginationInputType
filters - FateGuideScoresFilterInput
regexFilters - FateGuideScoresFilterInput

Example

Query
query fateGuideScoresCursor(
  $pagination: CursorPaginationInputType,
  $filters: FateGuideScoresFilterInput,
  $regexFilters: FateGuideScoresFilterInput
) {
  fateGuideScoresCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      customer_id
      crb_transaction_id
      mobile_analysis_id
      document_id
      crb_score
      crb_past_default_record
      customer_age
      big_loan_default
      model_type
      fate_guide_message
      requires_recheck
      sale_agent_id
      available_plans
      version
      sku
      type
      active
      devicePrice
      durationMonths
      age
      loanHistory {
        ...FateGuideRuntimeLoanRecordDtoFragment
      }
      signals {
        ...FateGuideRuntimeSignalsDtoFragment
      }
      tier
      status
      rejectionReason
      statementLength
      minimumRequired
      sdiPct
      maxMonthlyInstallment
      maxCashPrice
      maxCashPriceHigh
      maxCashPriceMosaver
      productBand
      canonicalProductBand
      depositLevel
      affordabilitySource
      affordabilityValue
      adjustedAffordability
      crbInferredAffordability
      recommendation
      slopeBucket
      slopeHaircutPct
      bettingRatio
      p2pShare
      crbPositiveScore
      cov
      productBands
      deviceAssessment
      customerName
      assessedAt
      modelVersion
      formulas {
        ...FateGuideRuntimeFormulasDtoFragment
      }
      explanation {
        ...FateGuideRuntimeExplanationDtoFragment
      }
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": FateGuideScoresFilterInput,
  "regexFilters": FateGuideScoresFilterInput
}
Response
{
  "data": {
    "fateGuideScoresCursor": {
      "data": [FateGuideScoresDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

fateGuideScoresOffset

Description

Get offset-paginated fate guide scores

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - FateGuideScoresFilterInput
regexFilters - FateGuideScoresFilterInput

Example

Query
query fateGuideScoresOffset(
  $pagination: OffsetPaginationInputType,
  $filters: FateGuideScoresFilterInput,
  $regexFilters: FateGuideScoresFilterInput
) {
  fateGuideScoresOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      customer_id
      crb_transaction_id
      mobile_analysis_id
      document_id
      crb_score
      crb_past_default_record
      customer_age
      big_loan_default
      model_type
      fate_guide_message
      requires_recheck
      sale_agent_id
      available_plans
      version
      sku
      type
      active
      devicePrice
      durationMonths
      age
      loanHistory {
        ...FateGuideRuntimeLoanRecordDtoFragment
      }
      signals {
        ...FateGuideRuntimeSignalsDtoFragment
      }
      tier
      status
      rejectionReason
      statementLength
      minimumRequired
      sdiPct
      maxMonthlyInstallment
      maxCashPrice
      maxCashPriceHigh
      maxCashPriceMosaver
      productBand
      canonicalProductBand
      depositLevel
      affordabilitySource
      affordabilityValue
      adjustedAffordability
      crbInferredAffordability
      recommendation
      slopeBucket
      slopeHaircutPct
      bettingRatio
      p2pShare
      crbPositiveScore
      cov
      productBands
      deviceAssessment
      customerName
      assessedAt
      modelVersion
      formulas {
        ...FateGuideRuntimeFormulasDtoFragment
      }
      explanation {
        ...FateGuideRuntimeExplanationDtoFragment
      }
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": FateGuideScoresFilterInput,
  "regexFilters": FateGuideScoresFilterInput
}
Response
{
  "data": {
    "fateGuideScoresOffset": {
      "data": [FateGuideScoresDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

flashSale

Response

Returns a FlashSaleObjectType!

Arguments
Name Description
id - ID!

Example

Query
query flashSale($id: ID!) {
  flashSale(id: $id) {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "flashSale": {
      "flash_sale_id": 4,
      "title": "abc123",
      "slug": "abc123",
      "description": "xyz789",
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "status": "SCHEDULED",
      "max_quantity": 123,
      "sold_quantity": 123,
      "min_discount_percentage": 123.45,
      "is_featured": false,
      "banner_image": "abc123",
      "icon_url": "abc123",
      "countdown_display": true,
      "priority": 987,
      "participating_sellers": ["abc123"],
      "performance_metrics": {},
      "meta_title": "xyz789",
      "meta_description": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

flashSaleItem

Response

Returns a FlashSaleItemObjectType!

Arguments
Name Description
id - ID!

Example

Query
query flashSaleItem($id: ID!) {
  flashSaleItem(id: $id) {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "flashSaleItem": {
      "flash_sale_item_id": 4,
      "flash_sale_id": "abc123",
      "seller_catalog_id": "abc123",
      "product_id": "abc123",
      "sku_id": "xyz789",
      "original_price": 123.45,
      "flash_sale_price": 123.45,
      "discount_percentage": 123.45,
      "stock_allocated": 123,
      "stock_sold": 123,
      "stock_remaining": 987,
      "max_per_customer": 987,
      "display_priority": 123,
      "is_featured": true,
      "badge_text": "xyz789",
      "created_at": "2007-12-03T10:15:30Z"
    }
  }
}

flashSaleItems

Response

Returns [FlashSaleItemObjectType!]!

Arguments
Name Description
filter - FlashSaleItemFilterInput

Example

Query
query flashSaleItems($filter: FlashSaleItemFilterInput) {
  flashSaleItems(filter: $filter) {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Variables
{"filter": FlashSaleItemFilterInput}
Response
{
  "data": {
    "flashSaleItems": [
      {
        "flash_sale_item_id": "4",
        "flash_sale_id": "abc123",
        "seller_catalog_id": "xyz789",
        "product_id": "abc123",
        "sku_id": "xyz789",
        "original_price": 123.45,
        "flash_sale_price": 987.65,
        "discount_percentage": 987.65,
        "stock_allocated": 123,
        "stock_sold": 123,
        "stock_remaining": 987,
        "max_per_customer": 987,
        "display_priority": 987,
        "is_featured": true,
        "badge_text": "abc123",
        "created_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

flashSaleItemsByFlashSale

Response

Returns [FlashSaleItemObjectType!]!

Arguments
Name Description
flashSaleId - ID!

Example

Query
query flashSaleItemsByFlashSale($flashSaleId: ID!) {
  flashSaleItemsByFlashSale(flashSaleId: $flashSaleId) {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Variables
{"flashSaleId": "4"}
Response
{
  "data": {
    "flashSaleItemsByFlashSale": [
      {
        "flash_sale_item_id": "4",
        "flash_sale_id": "xyz789",
        "seller_catalog_id": "xyz789",
        "product_id": "xyz789",
        "sku_id": "xyz789",
        "original_price": 987.65,
        "flash_sale_price": 123.45,
        "discount_percentage": 123.45,
        "stock_allocated": 987,
        "stock_sold": 123,
        "stock_remaining": 123,
        "max_per_customer": 123,
        "display_priority": 987,
        "is_featured": false,
        "badge_text": "abc123",
        "created_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

flashSaleItemsWithCursorPagination

Response

Returns a CursorPaginatedFlashSaleItems!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - FlashSaleItemFilterInput
regexFilters - FlashSaleItemFilterInput

Example

Query
query flashSaleItemsWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: FlashSaleItemFilterInput,
  $regexFilters: FlashSaleItemFilterInput
) {
  flashSaleItemsWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      flash_sale_item_id
      flash_sale_id
      seller_catalog_id
      product_id
      sku_id
      original_price
      flash_sale_price
      discount_percentage
      stock_allocated
      stock_sold
      stock_remaining
      max_per_customer
      display_priority
      is_featured
      badge_text
      created_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": FlashSaleItemFilterInput,
  "regexFilters": FlashSaleItemFilterInput
}
Response
{
  "data": {
    "flashSaleItemsWithCursorPagination": {
      "data": [FlashSaleItemObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

flashSaleItemsWithOffsetPagination

Response

Returns an OffsetPaginatedFlashSaleItems!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - FlashSaleItemFilterInput
regexFilters - FlashSaleItemFilterInput

Example

Query
query flashSaleItemsWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: FlashSaleItemFilterInput,
  $regexFilters: FlashSaleItemFilterInput
) {
  flashSaleItemsWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      flash_sale_item_id
      flash_sale_id
      seller_catalog_id
      product_id
      sku_id
      original_price
      flash_sale_price
      discount_percentage
      stock_allocated
      stock_sold
      stock_remaining
      max_per_customer
      display_priority
      is_featured
      badge_text
      created_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": FlashSaleItemFilterInput,
  "regexFilters": FlashSaleItemFilterInput
}
Response
{
  "data": {
    "flashSaleItemsWithOffsetPagination": {
      "data": [FlashSaleItemObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

flashSales

Response

Returns [FlashSaleObjectType!]!

Arguments
Name Description
filter - FlashSaleFilterInput

Example

Query
query flashSales($filter: FlashSaleFilterInput) {
  flashSales(filter: $filter) {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"filter": FlashSaleFilterInput}
Response
{
  "data": {
    "flashSales": [
      {
        "flash_sale_id": 4,
        "title": "abc123",
        "slug": "abc123",
        "description": "abc123",
        "start_date": "2007-12-03T10:15:30Z",
        "end_date": "2007-12-03T10:15:30Z",
        "status": "SCHEDULED",
        "max_quantity": 123,
        "sold_quantity": 123,
        "min_discount_percentage": 987.65,
        "is_featured": true,
        "banner_image": "abc123",
        "icon_url": "abc123",
        "countdown_display": true,
        "priority": 987,
        "participating_sellers": ["abc123"],
        "performance_metrics": {},
        "meta_title": "xyz789",
        "meta_description": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

flashSalesWithCursorPagination

Response

Returns a CursorPaginatedFlashSales!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - FlashSaleFilterInput
regexFilters - FlashSaleFilterInput

Example

Query
query flashSalesWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: FlashSaleFilterInput,
  $regexFilters: FlashSaleFilterInput
) {
  flashSalesWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      flash_sale_id
      title
      slug
      description
      start_date
      end_date
      status
      max_quantity
      sold_quantity
      min_discount_percentage
      is_featured
      banner_image
      icon_url
      countdown_display
      priority
      participating_sellers
      performance_metrics
      meta_title
      meta_description
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": FlashSaleFilterInput,
  "regexFilters": FlashSaleFilterInput
}
Response
{
  "data": {
    "flashSalesWithCursorPagination": {
      "data": [FlashSaleObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

flashSalesWithOffsetPagination

Response

Returns an OffsetPaginatedFlashSales!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - FlashSaleFilterInput
regexFilters - FlashSaleFilterInput

Example

Query
query flashSalesWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: FlashSaleFilterInput,
  $regexFilters: FlashSaleFilterInput
) {
  flashSalesWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      flash_sale_id
      title
      slug
      description
      start_date
      end_date
      status
      max_quantity
      sold_quantity
      min_discount_percentage
      is_featured
      banner_image
      icon_url
      countdown_display
      priority
      participating_sellers
      performance_metrics
      meta_title
      meta_description
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": FlashSaleFilterInput,
  "regexFilters": FlashSaleFilterInput
}
Response
{
  "data": {
    "flashSalesWithOffsetPagination": {
      "data": [FlashSaleObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

frontDeskRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query frontDeskRepairs {
  frontDeskRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "frontDeskRepairs": [
      {
        "repair_id": 4,
        "repair_display_id": "abc123",
        "requires_technician": true,
        "inventory_id": "xyz789",
        "customer_id": "xyz789",
        "original_sale_id": "xyz789",
        "provider_seller_id": "abc123",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": false,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "abc123",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "abc123",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

getAvailableStock

Response

Returns a Float!

Arguments
Name Description
catalogId - ID!

Example

Query
query getAvailableStock($catalogId: ID!) {
  getAvailableStock(catalogId: $catalogId)
}
Variables
{"catalogId": "4"}
Response
{"data": {"getAvailableStock": 123.45}}

getGroup

Response

Returns a GroupObjectType

Arguments
Name Description
id - String!

Example

Query
query getGroup($id: String!) {
  getGroup(id: $id) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "getGroup": {
      "_id": "abc123",
      "keycloak_id": "abc123",
      "name": "abc123",
      "realm": "abc123",
      "path": "xyz789",
      "description": "abc123",
      "attributes": {},
      "parent_id": "xyz789",
      "children": ["abc123"],
      "level": 123,
      "member_keycloak_ids": ["xyz789"],
      "member_count": 987,
      "synced_at": "2007-12-03T10:15:30Z",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "parent": GroupObjectType,
      "childrenDetails": [GroupObjectType]
    }
  }
}

getGroupChildren

Response

Returns [GroupObjectType!]!

Arguments
Name Description
parentId - String!
direct - Boolean

Example

Query
query getGroupChildren(
  $parentId: String!,
  $direct: Boolean
) {
  getGroupChildren(
    parentId: $parentId,
    direct: $direct
  ) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"parentId": "abc123", "direct": false}
Response
{
  "data": {
    "getGroupChildren": [
      {
        "_id": "abc123",
        "keycloak_id": "xyz789",
        "name": "abc123",
        "realm": "abc123",
        "path": "xyz789",
        "description": "abc123",
        "attributes": {},
        "parent_id": "abc123",
        "children": ["abc123"],
        "level": 987,
        "member_keycloak_ids": ["xyz789"],
        "member_count": 123,
        "synced_at": "2007-12-03T10:15:30Z",
        "is_active": false,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "parent": GroupObjectType,
        "childrenDetails": [GroupObjectType]
      }
    ]
  }
}

getGroupDepth

Response

Returns a Float!

Arguments
Name Description
groupId - String!

Example

Query
query getGroupDepth($groupId: String!) {
  getGroupDepth(groupId: $groupId)
}
Variables
{"groupId": "abc123"}
Response
{"data": {"getGroupDepth": 123.45}}

getGroupMemberCount

Response

Returns a Float!

Arguments
Name Description
groupId - String!
includeChildren - Boolean

Example

Query
query getGroupMemberCount(
  $groupId: String!,
  $includeChildren: Boolean
) {
  getGroupMemberCount(
    groupId: $groupId,
    includeChildren: $includeChildren
  )
}
Variables
{
  "groupId": "xyz789",
  "includeChildren": false
}
Response
{"data": {"getGroupMemberCount": 987.65}}

getGroupParents

Response

Returns [GroupObjectType!]!

Arguments
Name Description
childId - String!

Example

Query
query getGroupParents($childId: String!) {
  getGroupParents(childId: $childId) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"childId": "xyz789"}
Response
{
  "data": {
    "getGroupParents": [
      {
        "_id": "abc123",
        "keycloak_id": "xyz789",
        "name": "abc123",
        "realm": "xyz789",
        "path": "xyz789",
        "description": "abc123",
        "attributes": {},
        "parent_id": "xyz789",
        "children": ["abc123"],
        "level": 123,
        "member_keycloak_ids": ["abc123"],
        "member_count": 987,
        "synced_at": "2007-12-03T10:15:30Z",
        "is_active": true,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "parent": GroupObjectType,
        "childrenDetails": [GroupObjectType]
      }
    ]
  }
}

getGroupRealms

Response

Returns [String!]!

Example

Query
query getGroupRealms {
  getGroupRealms
}
Response
{"data": {"getGroupRealms": ["abc123"]}}

getGroupTree

Response

Returns a GroupTreeResponse!

Arguments
Name Description
realm - String

Example

Query
query getGroupTree($realm: String) {
  getGroupTree(realm: $realm) {
    roots {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    totalGroups
    realm
  }
}
Variables
{"realm": "abc123"}
Response
{
  "data": {
    "getGroupTree": {
      "roots": [GroupObjectType],
      "totalGroups": 123,
      "realm": "xyz789"
    }
  }
}

getGroups

Response

Returns a GroupListResponse!

Arguments
Name Description
filter - GroupFilterInput

Example

Query
query getGroups($filter: GroupFilterInput) {
  getGroups(filter: $filter) {
    groups {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    total
    realm
  }
}
Variables
{"filter": GroupFilterInput}
Response
{
  "data": {
    "getGroups": {
      "groups": [GroupObjectType],
      "total": 123,
      "realm": "xyz789"
    }
  }
}

getManagedRoles

Response

Returns [RoleObjectType!]!

Arguments
Name Description
managerRoleName - String!

Example

Query
query getManagedRoles($managerRoleName: String!) {
  getManagedRoles(managerRoleName: $managerRoleName) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{"managerRoleName": "xyz789"}
Response
{
  "data": {
    "getManagedRoles": [
      {
        "_id": "abc123",
        "id": "xyz789",
        "name": "abc123",
        "level": 987,
        "permissions": ["xyz789"],
        "description": "xyz789",
        "canManage": ["abc123"],
        "realm": "xyz789"
      }
    ]
  }
}

getRoleById

Response

Returns a RoleObjectType

Arguments
Name Description
id - ID!

Example

Query
query getRoleById($id: ID!) {
  getRoleById(id: $id) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "getRoleById": {
      "_id": "abc123",
      "id": "xyz789",
      "name": "xyz789",
      "level": 123,
      "permissions": ["abc123"],
      "description": "abc123",
      "canManage": ["abc123"],
      "realm": "xyz789"
    }
  }
}

getRoleByName

Response

Returns a RoleObjectType

Arguments
Name Description
name - String!
realm - String

Example

Query
query getRoleByName(
  $name: String!,
  $realm: String
) {
  getRoleByName(
    name: $name,
    realm: $realm
  ) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{
  "name": "abc123",
  "realm": "abc123"
}
Response
{
  "data": {
    "getRoleByName": {
      "_id": "abc123",
      "id": "abc123",
      "name": "abc123",
      "level": 123,
      "permissions": ["abc123"],
      "description": "abc123",
      "canManage": ["xyz789"],
      "realm": "abc123"
    }
  }
}

getRoleHierarchy

Response

Returns a JSON!

Arguments
Name Description
realm - String

Example

Query
query getRoleHierarchy($realm: String) {
  getRoleHierarchy(realm: $realm)
}
Variables
{"realm": "abc123"}
Response
{"data": {"getRoleHierarchy": {}}}

getRoles

Response

Returns [RoleObjectType!]!

Arguments
Name Description
filter - RoleFilterInput

Example

Query
query getRoles($filter: RoleFilterInput) {
  getRoles(filter: $filter) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{"filter": RoleFilterInput}
Response
{
  "data": {
    "getRoles": [
      {
        "_id": "xyz789",
        "id": "xyz789",
        "name": "xyz789",
        "level": 987,
        "permissions": ["xyz789"],
        "description": "abc123",
        "canManage": ["xyz789"],
        "realm": "abc123"
      }
    ]
  }
}

getUnpaidSales

Response

Returns [SalesObjectType!]!

Arguments
Name Description
customerId - ID!

Example

Query
query getUnpaidSales($customerId: ID!) {
  getUnpaidSales(customerId: $customerId) {
    sale_id
    sale_date
    order_id
    customer_id
    sale_agent_id
    submitting_agent_id
    sfm_id
    price_plan_id
    pricePlan {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    inventory_id
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    payment_type
    payment_status
    normal_high_deposit
    final_sale_price
    upfront_payment
    gross_loan_amount
    marketplace_fee
    seller_payout
    invoice_number
    status
    return_date
    created_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    loan_contract {
      contract_id
      loan_id
      sale_id
      customer_id
      customer {
        ...RawCustomersDtoFragment
      }
      opening_date
      duration
      upfront_payment
      deposit
      repayment_type
      gross_loan_amount
      net_loan_amount
      interest_rate
      repayment_rate
      interest_calculation_method
      payment_allocation_method
      disbursement_date
      maturity_date
      first_payment_due_date
      grace_period_days
      penalty_rate_per_day
      is_restructured
      original_contract_id
      loan_product_code
      loan_status_override
      early_payoff_discounts {
        ...LoanEarlyPayoffDiscountTypeFragment
      }
      metadata
      created_at
      updated_at
      installments {
        ...LoanInstallmentDtoFragment
      }
      overdueInstallments {
        ...LoanInstallmentDtoFragment
      }
      nextDueInstallment {
        ...LoanInstallmentDtoFragment
      }
      ledgerEntries {
        ...LoanLedgerDtoFragment
      }
      delinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      paymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      latest_ledger_id
      grace_period_status
      grace_period_category
      grace_period_credit_expiry
      grace_period_last_trigger_source
      returned_date
      is_lost
      latest_ledger {
        ...LoanLedgerDtoFragment
      }
      contract {
        ...LoanContractDtoFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      commission_rule_id
      commission_override_id
      is_override
    }
    cash_price
    reporting {
      loan_id
      business_model
      is_3p_sale
      partner_name
      credit_check_done
      cash_price
      loan_price
      loan_period
    }
  }
}
Variables
{"customerId": "4"}
Response
{
  "data": {
    "getUnpaidSales": [
      {
        "sale_id": 4,
        "sale_date": "2007-12-03T10:15:30Z",
        "order_id": "4",
        "customer_id": 4,
        "sale_agent_id": "4",
        "submitting_agent_id": "4",
        "sfm_id": "4",
        "price_plan_id": 4,
        "pricePlan": PricePlanObjectType,
        "inventory_id": 4,
        "inventory": InventoryObjectType,
        "payment_type": "REPAIR",
        "payment_status": "UNPAID",
        "normal_high_deposit": "NORMAL",
        "final_sale_price": 987.65,
        "upfront_payment": 123.45,
        "gross_loan_amount": 123.45,
        "marketplace_fee": 123.45,
        "seller_payout": 987.65,
        "invoice_number": "xyz789",
        "status": "ACTIVE",
        "return_date": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "metadata": {},
        "customer": RawCustomersDto,
        "order": OrderObjectType,
        "loan_contract": LoanContractDto,
        "commission": CommissionSnapshotType,
        "cash_price": 987.65,
        "reporting": SaleReportingType
      }
    ]
  }
}

getUserGroups

Response

Returns [GroupObjectType!]!

Arguments
Name Description
userKeycloakId - String!

Example

Query
query getUserGroups($userKeycloakId: String!) {
  getUserGroups(userKeycloakId: $userKeycloakId) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"userKeycloakId": "xyz789"}
Response
{
  "data": {
    "getUserGroups": [
      {
        "_id": "xyz789",
        "keycloak_id": "abc123",
        "name": "abc123",
        "realm": "xyz789",
        "path": "abc123",
        "description": "abc123",
        "attributes": {},
        "parent_id": "abc123",
        "children": ["xyz789"],
        "level": 123,
        "member_keycloak_ids": ["abc123"],
        "member_count": 123,
        "synced_at": "2007-12-03T10:15:30Z",
        "is_active": false,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "parent": GroupObjectType,
        "childrenDetails": [GroupObjectType]
      }
    ]
  }
}

groupExists

Response

Returns a Boolean!

Arguments
Name Description
name - String!
realm - String

Example

Query
query groupExists(
  $name: String!,
  $realm: String
) {
  groupExists(
    name: $name,
    realm: $realm
  )
}
Variables
{
  "name": "xyz789",
  "realm": "xyz789"
}
Response
{"data": {"groupExists": false}}

groupsCursor

Response

Returns a CursorPaginatedGroups!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - GroupFilterInput
regexFilters - GroupFilterInput

Example

Query
query groupsCursor(
  $pagination: CursorPaginationInputType!,
  $filters: GroupFilterInput,
  $regexFilters: GroupFilterInput
) {
  groupsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": GroupFilterInput,
  "regexFilters": GroupFilterInput
}
Response
{
  "data": {
    "groupsCursor": {
      "data": [GroupObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

groupsOffset

Response

Returns an OffsetPaginatedGroups!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - GroupFilterInput
regexFilters - GroupFilterInput

Example

Query
query groupsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: GroupFilterInput,
  $regexFilters: GroupFilterInput
) {
  groupsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": GroupFilterInput,
  "regexFilters": GroupFilterInput
}
Response
{
  "data": {
    "groupsOffset": {
      "data": [GroupObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

hello

Description

Test GraphQL endpoint

Response

Returns a TestResponse!

Example

Query
query hello {
  hello {
    message
    timestamp
    version
  }
}
Response
{
  "data": {
    "hello": {
      "message": "abc123",
      "timestamp": "2007-12-03T10:15:30Z",
      "version": "xyz789"
    }
  }
}

highPriorityRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query highPriorityRepairs {
  highPriorityRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "highPriorityRepairs": [
      {
        "repair_id": "4",
        "repair_display_id": "xyz789",
        "requires_technician": true,
        "inventory_id": "abc123",
        "customer_id": "xyz789",
        "original_sale_id": "abc123",
        "provider_seller_id": "abc123",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": true,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "xyz789",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "abc123",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

identityVerificationTransaction

Description

Get a single identity verification transaction by ID

Arguments
Name Description
id - ID!

Example

Query
query identityVerificationTransaction($id: ID!) {
  identityVerificationTransaction(id: $id) {
    _id
    provider
    full_name
    gender
    date_of_birth
    place_of_birth
    kra_pin
    citizenship
    is_alive
    identification_type
    identification_number
    id_serial
    uploaded_photo
    phone
    email
    country
    record_status
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "identityVerificationTransaction": {
      "_id": "4",
      "provider": "TRANSUNION",
      "full_name": "abc123",
      "gender": "xyz789",
      "date_of_birth": "xyz789",
      "place_of_birth": "xyz789",
      "kra_pin": "abc123",
      "citizenship": "abc123",
      "is_alive": 987,
      "identification_type": "abc123",
      "identification_number": "xyz789",
      "id_serial": "abc123",
      "uploaded_photo": "xyz789",
      "phone": "xyz789",
      "email": "xyz789",
      "country": "abc123",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

identityVerificationTransactionByFilters

Description

Get a single identity verification transaction by filters

Arguments
Name Description
filters - IdentityVerificationTransactionFilterInput!

Example

Query
query identityVerificationTransactionByFilters($filters: IdentityVerificationTransactionFilterInput!) {
  identityVerificationTransactionByFilters(filters: $filters) {
    _id
    provider
    full_name
    gender
    date_of_birth
    place_of_birth
    kra_pin
    citizenship
    is_alive
    identification_type
    identification_number
    id_serial
    uploaded_photo
    phone
    email
    country
    record_status
    createdAt
  }
}
Variables
{"filters": IdentityVerificationTransactionFilterInput}
Response
{
  "data": {
    "identityVerificationTransactionByFilters": {
      "_id": "4",
      "provider": "TRANSUNION",
      "full_name": "xyz789",
      "gender": "xyz789",
      "date_of_birth": "xyz789",
      "place_of_birth": "abc123",
      "kra_pin": "abc123",
      "citizenship": "xyz789",
      "is_alive": 123,
      "identification_type": "xyz789",
      "identification_number": "abc123",
      "id_serial": "xyz789",
      "uploaded_photo": "abc123",
      "phone": "abc123",
      "email": "xyz789",
      "country": "abc123",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

identityVerificationTransactionCount

Description

Get count of identity verification transactions with optional filters

Response

Returns a Float!

Arguments
Name Description
filters - IdentityVerificationTransactionFilterInput

Example

Query
query identityVerificationTransactionCount($filters: IdentityVerificationTransactionFilterInput) {
  identityVerificationTransactionCount(filters: $filters)
}
Variables
{"filters": IdentityVerificationTransactionFilterInput}
Response
{"data": {"identityVerificationTransactionCount": 123.45}}

identityVerificationTransactionsCursor

Description

Get paginated identity verification transactions using cursor-based pagination

Example

Query
query identityVerificationTransactionsCursor(
  $pagination: CursorPaginationInputType,
  $filters: IdentityVerificationTransactionFilterInput,
  $regexFilters: IdentityVerificationTransactionFilterInput
) {
  identityVerificationTransactionsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      provider
      full_name
      gender
      date_of_birth
      place_of_birth
      kra_pin
      citizenship
      is_alive
      identification_type
      identification_number
      id_serial
      uploaded_photo
      phone
      email
      country
      record_status
      createdAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": IdentityVerificationTransactionFilterInput,
  "regexFilters": IdentityVerificationTransactionFilterInput
}
Response
{
  "data": {
    "identityVerificationTransactionsCursor": {
      "data": [IdentityVerificationTransactionDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

identityVerificationTransactionsOffset

Description

Get paginated identity verification transactions using offset-based pagination

Example

Query
query identityVerificationTransactionsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: IdentityVerificationTransactionFilterInput,
  $regexFilters: IdentityVerificationTransactionFilterInput
) {
  identityVerificationTransactionsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      provider
      full_name
      gender
      date_of_birth
      place_of_birth
      kra_pin
      citizenship
      is_alive
      identification_type
      identification_number
      id_serial
      uploaded_photo
      phone
      email
      country
      record_status
      createdAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": IdentityVerificationTransactionFilterInput,
  "regexFilters": IdentityVerificationTransactionFilterInput
}
Response
{
  "data": {
    "identityVerificationTransactionsOffset": {
      "data": [IdentityVerificationTransactionDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

inProgressRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query inProgressRepairs {
  inProgressRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "inProgressRepairs": [
      {
        "repair_id": 4,
        "repair_display_id": "xyz789",
        "requires_technician": true,
        "inventory_id": "xyz789",
        "customer_id": "abc123",
        "original_sale_id": "abc123",
        "provider_seller_id": "abc123",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": true,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "xyz789",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "xyz789",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

inactiveListings

Response

Returns [SellerCatalogObjectType!]!

Example

Query
query inactiveListings {
  inactiveListings {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Response
{
  "data": {
    "inactiveListings": [
      {
        "seller_catalog_id": 4,
        "seller_id": "abc123",
        "sku_id": "xyz789",
        "cost_price": 123.45,
        "retail_price": 123.45,
        "currency": "xyz789",
        "stock_on_hand": 123,
        "reserved_stock": 987,
        "is_active": false,
        "listed_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "available_stock": 987,
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType
      }
    ]
  }
}

inventory

Response

Returns an InventoryObjectType!

Arguments
Name Description
id - ID!

Example

Query
query inventory($id: ID!) {
  inventory(id: $id) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "inventory": {
      "inventory_id": 4,
      "product_id": "abc123",
      "sku_id": "abc123",
      "condition_id": "xyz789",
      "seller_catalog_id": "abc123",
      "seller_id": "abc123",
      "serial_number": "xyz789",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": false,
      "qc_report": QCReportType,
      "qc_report_link": "abc123",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 123.45,
      "contract_id": "abc123",
      "mdm_status": {},
      "batch_number": "xyz789",
      "location_id": "xyz789",
      "inspection_report": "abc123",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "xyz789",
      "supplier_code": "xyz789",
      "supplier_order_reference": "abc123",
      "customer_id": "xyz789",
      "sale_id": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

inventoryAllocation

Response

Returns an InventoryAllocationObjectType

Arguments
Name Description
id - ID!

Example

Query
query inventoryAllocation($id: ID!) {
  inventoryAllocation(id: $id) {
    inventory_allocation_id
    order_item_id
    inventory_id
    quantity_allocated
    allocation_status
    allocation_date
    expiry_date
    metadata
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    created_at
    updated_at
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "inventoryAllocation": {
      "inventory_allocation_id": 4,
      "order_item_id": 4,
      "inventory_id": "4",
      "quantity_allocated": 987.65,
      "allocation_status": "RESERVED",
      "allocation_date": "2007-12-03T10:15:30Z",
      "expiry_date": "2007-12-03T10:15:30Z",
      "metadata": {},
      "order_item": OrderItemObjectType,
      "inventory": InventoryObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

inventoryAllocations

Arguments
Name Description
filters - InventoryAllocationFilterInput

Example

Query
query inventoryAllocations($filters: InventoryAllocationFilterInput) {
  inventoryAllocations(filters: $filters) {
    inventory_allocation_id
    order_item_id
    inventory_id
    quantity_allocated
    allocation_status
    allocation_date
    expiry_date
    metadata
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    created_at
    updated_at
  }
}
Variables
{"filters": InventoryAllocationFilterInput}
Response
{
  "data": {
    "inventoryAllocations": [
      {
        "inventory_allocation_id": "4",
        "order_item_id": 4,
        "inventory_id": "4",
        "quantity_allocated": 123.45,
        "allocation_status": "RESERVED",
        "allocation_date": "2007-12-03T10:15:30Z",
        "expiry_date": "2007-12-03T10:15:30Z",
        "metadata": {},
        "order_item": OrderItemObjectType,
        "inventory": InventoryObjectType,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

inventoryAllocationsCursor

Arguments
Name Description
pagination - CursorPaginationInputType
filters - InventoryAllocationFilterInput
regexFilters - InventoryAllocationFilterInput

Example

Query
query inventoryAllocationsCursor(
  $pagination: CursorPaginationInputType,
  $filters: InventoryAllocationFilterInput,
  $regexFilters: InventoryAllocationFilterInput
) {
  inventoryAllocationsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": InventoryAllocationFilterInput,
  "regexFilters": InventoryAllocationFilterInput
}
Response
{
  "data": {
    "inventoryAllocationsCursor": {
      "data": [InventoryAllocationObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

inventoryAllocationsOffset

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - InventoryAllocationFilterInput
regexFilters - InventoryAllocationFilterInput

Example

Query
query inventoryAllocationsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: InventoryAllocationFilterInput,
  $regexFilters: InventoryAllocationFilterInput
) {
  inventoryAllocationsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": InventoryAllocationFilterInput,
  "regexFilters": InventoryAllocationFilterInput
}
Response
{
  "data": {
    "inventoryAllocationsOffset": {
      "data": [InventoryAllocationObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

inventoryByLocation

Response

Returns [InventoryObjectType!]!

Arguments
Name Description
locationId - ID!

Example

Query
query inventoryByLocation($locationId: ID!) {
  inventoryByLocation(locationId: $locationId) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"locationId": 4}
Response
{
  "data": {
    "inventoryByLocation": [
      {
        "inventory_id": "4",
        "product_id": "xyz789",
        "sku_id": "abc123",
        "condition_id": "abc123",
        "seller_catalog_id": "xyz789",
        "seller_id": "abc123",
        "serial_number": "xyz789",
        "identifiers": {},
        "physical_state": "IN_STOCK",
        "mdm_enrollment": "PENDING",
        "enrollment_status": "PENDING",
        "stock_status_type": "INBOUND",
        "stock_status_name": "ORDERED",
        "stock_origin": "INTERNATIONAL",
        "stock_type": "ONE_P",
        "b2b": false,
        "qc_report": QCReportType,
        "qc_report_link": "xyz789",
        "qc_status": "PENDING",
        "qc_status_type": "INBOUND",
        "unit_cost": 987.65,
        "contract_id": "abc123",
        "mdm_status": {},
        "batch_number": "abc123",
        "location_id": "abc123",
        "inspection_report": "xyz789",
        "warranty": {},
        "acquisition_date": "2007-12-03T10:15:30Z",
        "first_sale_date": "2007-12-03T10:15:30Z",
        "supplier_name": "xyz789",
        "supplier_code": "xyz789",
        "supplier_order_reference": "xyz789",
        "customer_id": "abc123",
        "sale_id": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType,
        "condition": ConditionObjectType,
        "sellerCatalog": SellerCatalogObjectType,
        "location": InventoryLocationObjectType
      }
    ]
  }
}

inventoryBySeller

Response

Returns [InventoryObjectType!]!

Arguments
Name Description
sellerId - ID!

Example

Query
query inventoryBySeller($sellerId: ID!) {
  inventoryBySeller(sellerId: $sellerId) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"sellerId": "4"}
Response
{
  "data": {
    "inventoryBySeller": [
      {
        "inventory_id": "4",
        "product_id": "xyz789",
        "sku_id": "abc123",
        "condition_id": "xyz789",
        "seller_catalog_id": "abc123",
        "seller_id": "abc123",
        "serial_number": "xyz789",
        "identifiers": {},
        "physical_state": "IN_STOCK",
        "mdm_enrollment": "PENDING",
        "enrollment_status": "PENDING",
        "stock_status_type": "INBOUND",
        "stock_status_name": "ORDERED",
        "stock_origin": "INTERNATIONAL",
        "stock_type": "ONE_P",
        "b2b": false,
        "qc_report": QCReportType,
        "qc_report_link": "xyz789",
        "qc_status": "PENDING",
        "qc_status_type": "INBOUND",
        "unit_cost": 123.45,
        "contract_id": "abc123",
        "mdm_status": {},
        "batch_number": "xyz789",
        "location_id": "abc123",
        "inspection_report": "xyz789",
        "warranty": {},
        "acquisition_date": "2007-12-03T10:15:30Z",
        "first_sale_date": "2007-12-03T10:15:30Z",
        "supplier_name": "abc123",
        "supplier_code": "abc123",
        "supplier_order_reference": "abc123",
        "customer_id": "xyz789",
        "sale_id": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType,
        "condition": ConditionObjectType,
        "sellerCatalog": SellerCatalogObjectType,
        "location": InventoryLocationObjectType
      }
    ]
  }
}

inventoryBySerialNumber

Response

Returns an InventoryObjectType

Arguments
Name Description
serialNumber - String!

Example

Query
query inventoryBySerialNumber($serialNumber: String!) {
  inventoryBySerialNumber(serialNumber: $serialNumber) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"serialNumber": "xyz789"}
Response
{
  "data": {
    "inventoryBySerialNumber": {
      "inventory_id": 4,
      "product_id": "abc123",
      "sku_id": "xyz789",
      "condition_id": "xyz789",
      "seller_catalog_id": "abc123",
      "seller_id": "abc123",
      "serial_number": "abc123",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": true,
      "qc_report": QCReportType,
      "qc_report_link": "abc123",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 123.45,
      "contract_id": "abc123",
      "mdm_status": {},
      "batch_number": "abc123",
      "location_id": "xyz789",
      "inspection_report": "abc123",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "abc123",
      "supplier_code": "xyz789",
      "supplier_order_reference": "xyz789",
      "customer_id": "abc123",
      "sale_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

inventoryCount

Response

Returns a Float!

Arguments
Name Description
filters - InventoryFilterInput

Example

Query
query inventoryCount($filters: InventoryFilterInput) {
  inventoryCount(filters: $filters)
}
Variables
{"filters": InventoryFilterInput}
Response
{"data": {"inventoryCount": 123.45}}

inventoryItems

Response

Returns [InventoryObjectType!]!

Arguments
Name Description
filter - InventoryFilterInput

Example

Query
query inventoryItems($filter: InventoryFilterInput) {
  inventoryItems(filter: $filter) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"filter": InventoryFilterInput}
Response
{
  "data": {
    "inventoryItems": [
      {
        "inventory_id": 4,
        "product_id": "xyz789",
        "sku_id": "abc123",
        "condition_id": "abc123",
        "seller_catalog_id": "xyz789",
        "seller_id": "abc123",
        "serial_number": "xyz789",
        "identifiers": {},
        "physical_state": "IN_STOCK",
        "mdm_enrollment": "PENDING",
        "enrollment_status": "PENDING",
        "stock_status_type": "INBOUND",
        "stock_status_name": "ORDERED",
        "stock_origin": "INTERNATIONAL",
        "stock_type": "ONE_P",
        "b2b": false,
        "qc_report": QCReportType,
        "qc_report_link": "xyz789",
        "qc_status": "PENDING",
        "qc_status_type": "INBOUND",
        "unit_cost": 123.45,
        "contract_id": "xyz789",
        "mdm_status": {},
        "batch_number": "abc123",
        "location_id": "xyz789",
        "inspection_report": "xyz789",
        "warranty": {},
        "acquisition_date": "2007-12-03T10:15:30Z",
        "first_sale_date": "2007-12-03T10:15:30Z",
        "supplier_name": "xyz789",
        "supplier_code": "abc123",
        "supplier_order_reference": "xyz789",
        "customer_id": "xyz789",
        "sale_id": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType,
        "condition": ConditionObjectType,
        "sellerCatalog": SellerCatalogObjectType,
        "location": InventoryLocationObjectType
      }
    ]
  }
}

inventoryLocation

Response

Returns an InventoryLocationObjectType!

Arguments
Name Description
id - ID!

Example

Query
query inventoryLocation($id: ID!) {
  inventoryLocation(id: $id) {
    inventory_location_id
    location_name
    location_type
    location_code
    address
    city
    region
    coordinates {
      lat
      lng
    }
    location_details {
      country
      county
      sub_county
      ward
      town
      landmark
      gps_coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
    }
    user_id
    manager_id
    capacity
    current_stock
    is_active
    operating_hours
    seller_id
    created_at
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "inventoryLocation": {
      "inventory_location_id": 4,
      "location_name": "xyz789",
      "location_type": "TRANSIT_INBOUND",
      "location_code": "abc123",
      "address": "xyz789",
      "city": "xyz789",
      "region": "abc123",
      "coordinates": InventoryCoordinatesObjectType,
      "location_details": InventoryLocationDetailsObjectType,
      "user_id": "abc123",
      "manager_id": "abc123",
      "capacity": 123,
      "current_stock": 987,
      "is_active": false,
      "operating_hours": {},
      "seller_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

inventoryLocations

Arguments
Name Description
filter - InventoryLocationFilterInput

Example

Query
query inventoryLocations($filter: InventoryLocationFilterInput) {
  inventoryLocations(filter: $filter) {
    inventory_location_id
    location_name
    location_type
    location_code
    address
    city
    region
    coordinates {
      lat
      lng
    }
    location_details {
      country
      county
      sub_county
      ward
      town
      landmark
      gps_coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
    }
    user_id
    manager_id
    capacity
    current_stock
    is_active
    operating_hours
    seller_id
    created_at
    updated_at
  }
}
Variables
{"filter": InventoryLocationFilterInput}
Response
{
  "data": {
    "inventoryLocations": [
      {
        "inventory_location_id": 4,
        "location_name": "xyz789",
        "location_type": "TRANSIT_INBOUND",
        "location_code": "abc123",
        "address": "xyz789",
        "city": "abc123",
        "region": "abc123",
        "coordinates": InventoryCoordinatesObjectType,
        "location_details": InventoryLocationDetailsObjectType,
        "user_id": "abc123",
        "manager_id": "xyz789",
        "capacity": 987,
        "current_stock": 987,
        "is_active": false,
        "operating_hours": {},
        "seller_id": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

inventoryLocationsByType

Arguments
Name Description
type - LocationTypeEnum!

Example

Query
query inventoryLocationsByType($type: LocationTypeEnum!) {
  inventoryLocationsByType(type: $type) {
    inventory_location_id
    location_name
    location_type
    location_code
    address
    city
    region
    coordinates {
      lat
      lng
    }
    location_details {
      country
      county
      sub_county
      ward
      town
      landmark
      gps_coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
    }
    user_id
    manager_id
    capacity
    current_stock
    is_active
    operating_hours
    seller_id
    created_at
    updated_at
  }
}
Variables
{"type": "TRANSIT_INBOUND"}
Response
{
  "data": {
    "inventoryLocationsByType": [
      {
        "inventory_location_id": 4,
        "location_name": "xyz789",
        "location_type": "TRANSIT_INBOUND",
        "location_code": "xyz789",
        "address": "abc123",
        "city": "xyz789",
        "region": "xyz789",
        "coordinates": InventoryCoordinatesObjectType,
        "location_details": InventoryLocationDetailsObjectType,
        "user_id": "abc123",
        "manager_id": "abc123",
        "capacity": 987,
        "current_stock": 987,
        "is_active": true,
        "operating_hours": {},
        "seller_id": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

inventoryLocationsWithCursorPagination

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - InventoryLocationFilterInput
regexFilters - InventoryLocationFilterInput

Example

Query
query inventoryLocationsWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: InventoryLocationFilterInput,
  $regexFilters: InventoryLocationFilterInput
) {
  inventoryLocationsWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": InventoryLocationFilterInput,
  "regexFilters": InventoryLocationFilterInput
}
Response
{
  "data": {
    "inventoryLocationsWithCursorPagination": {
      "data": [InventoryLocationObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

inventoryLocationsWithOffsetPagination

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - InventoryLocationFilterInput
regexFilters - InventoryLocationFilterInput

Example

Query
query inventoryLocationsWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: InventoryLocationFilterInput,
  $regexFilters: InventoryLocationFilterInput
) {
  inventoryLocationsWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": InventoryLocationFilterInput,
  "regexFilters": InventoryLocationFilterInput
}
Response
{
  "data": {
    "inventoryLocationsWithOffsetPagination": {
      "data": [InventoryLocationObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

inventoryStats

Response

Returns an InventoryStats!

Example

Query
query inventoryStats {
  inventoryStats {
    total
    available
    inLoan
    inRepair
    reserved
  }
}
Response
{
  "data": {
    "inventoryStats": {
      "total": 123,
      "available": 123,
      "inLoan": 123,
      "inRepair": 987,
      "reserved": 123
    }
  }
}

inventoryWithCursorPagination

Response

Returns a CursorPaginatedInventory!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - InventoryFilterInput
regexFilters - InventoryFilterInput

Example

Query
query inventoryWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: InventoryFilterInput,
  $regexFilters: InventoryFilterInput
) {
  inventoryWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": InventoryFilterInput,
  "regexFilters": InventoryFilterInput
}
Response
{
  "data": {
    "inventoryWithCursorPagination": {
      "data": [InventoryObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

inventoryWithOffsetPagination

Response

Returns an OffsetPaginatedInventory!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - InventoryFilterInput
regexFilters - InventoryFilterInput

Example

Query
query inventoryWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: InventoryFilterInput,
  $regexFilters: InventoryFilterInput
) {
  inventoryWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": InventoryFilterInput,
  "regexFilters": InventoryFilterInput
}
Response
{
  "data": {
    "inventoryWithOffsetPagination": {
      "data": [InventoryObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

inventory_module

Description

Access inventory module operations

Response

Returns an InventoryModuleNamespace!

Example

Query
query inventory_module {
  inventory_module {
    categories {
      createCategory {
        ...CategoryObjectTypeFragment
      }
      category {
        ...CategoryObjectTypeFragment
      }
      categories {
        ...CategoryObjectTypeFragment
      }
      categoriesWithOffsetPagination {
        ...OffsetPaginatedCategoriesFragment
      }
      categoriesWithCursorPagination {
        ...CursorPaginatedCategoriesFragment
      }
      updateCategory {
        ...CategoryObjectTypeFragment
      }
      deleteCategory
      categoriesCount
      categoryHierarchy {
        ...CategoryObjectTypeFragment
      }
      categoryPath {
        ...CategoryObjectTypeFragment
      }
      activeCategories {
        ...CategoryObjectTypeFragment
      }
    }
    conditions {
      createCondition {
        ...ConditionObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      conditions {
        ...ConditionObjectTypeFragment
      }
      conditionsWithOffsetPagination {
        ...OffsetPaginatedConditionsFragment
      }
      conditionsWithCursorPagination {
        ...CursorPaginatedConditionsFragment
      }
      updateCondition {
        ...ConditionObjectTypeFragment
      }
      deleteCondition
      conditionsCount
    }
    flashSales {
      createFlashSale {
        ...FlashSaleObjectTypeFragment
      }
      flashSale {
        ...FlashSaleObjectTypeFragment
      }
      flashSales {
        ...FlashSaleObjectTypeFragment
      }
      flashSalesWithOffsetPagination {
        ...OffsetPaginatedFlashSalesFragment
      }
      flashSalesWithCursorPagination {
        ...CursorPaginatedFlashSalesFragment
      }
      updateFlashSale {
        ...FlashSaleObjectTypeFragment
      }
      deleteFlashSale
      activeFlashSales {
        ...FlashSaleObjectTypeFragment
      }
      upcomingFlashSales {
        ...FlashSaleObjectTypeFragment
      }
      activateFlashSale {
        ...FlashSaleObjectTypeFragment
      }
      endFlashSale {
        ...FlashSaleObjectTypeFragment
      }
    }
    flashSaleItems {
      createFlashSaleItem {
        ...FlashSaleItemObjectTypeFragment
      }
      flashSaleItem {
        ...FlashSaleItemObjectTypeFragment
      }
      flashSaleItems {
        ...FlashSaleItemObjectTypeFragment
      }
      flashSaleItemsWithOffsetPagination {
        ...OffsetPaginatedFlashSaleItemsFragment
      }
      flashSaleItemsWithCursorPagination {
        ...CursorPaginatedFlashSaleItemsFragment
      }
      updateFlashSaleItem {
        ...FlashSaleItemObjectTypeFragment
      }
      deleteFlashSaleItem
      flashSaleItemsByFlashSale {
        ...FlashSaleItemObjectTypeFragment
      }
      activeFlashSaleItems {
        ...FlashSaleItemObjectTypeFragment
      }
      topDiscountedItems {
        ...FlashSaleItemObjectTypeFragment
      }
      updateFlashSaleItemDiscount {
        ...FlashSaleItemObjectTypeFragment
      }
    }
    inventory {
      createInventory {
        ... on InventoryObjectType {
          ...InventoryObjectTypeFragment
        }
        ... on BulkInventoryResult {
          ...BulkInventoryResultFragment
        }
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      inventoryItems {
        ...InventoryObjectTypeFragment
      }
      inventoryWithOffsetPagination {
        ...OffsetPaginatedInventoryFragment
      }
      inventoryWithCursorPagination {
        ...CursorPaginatedInventoryFragment
      }
      updateInventory {
        ...InventoryObjectTypeFragment
      }
      deleteInventory
      inventoryCount
      inventoryBySerialNumber {
        ...InventoryObjectTypeFragment
      }
      inventoryBySeller {
        ...InventoryObjectTypeFragment
      }
      inventoryByLocation {
        ...InventoryObjectTypeFragment
      }
      availableInventory {
        ...InventoryObjectTypeFragment
      }
      activeLoanDevices {
        ...InventoryObjectTypeFragment
      }
      inventoryStats {
        ...InventoryStatsFragment
      }
      updateInventoryPhysicalState {
        ...InventoryObjectTypeFragment
      }
      updateInventoryMdmEnrollment {
        ...InventoryObjectTypeFragment
      }
      updateInventoryEnrollmentStatus {
        ...InventoryObjectTypeFragment
      }
      assignInventoryToContract {
        ...InventoryObjectTypeFragment
      }
      moveInventoryToLocation {
        ...InventoryObjectTypeFragment
      }
      getConditionFromQCReport {
        ...QCReportWithConditionFragment
      }
      updateInventoryWithQCReport {
        ...InventoryObjectTypeFragment
      }
    }
    inventoryLocations {
      createInventoryLocation {
        ...InventoryLocationObjectTypeFragment
      }
      inventoryLocation {
        ...InventoryLocationObjectTypeFragment
      }
      inventoryLocations {
        ...InventoryLocationObjectTypeFragment
      }
      updateInventoryLocation {
        ...InventoryLocationObjectTypeFragment
      }
      deleteInventoryLocation
    }
    productOffers {
      createProductOffer {
        ...ProductOfferObjectTypeFragment
      }
      productOffers {
        ...ProductOfferObjectTypeFragment
      }
      updateProductOffer {
        ...ProductOfferObjectTypeFragment
      }
    }
    products {
      createProduct {
        ...ProductObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      products {
        ...ProductObjectTypeFragment
      }
      productsWithOffsetPagination {
        ...OffsetPaginatedProductsFragment
      }
      productsWithCursorPagination {
        ...CursorPaginatedProductsFragment
      }
      updateProduct {
        ...ProductObjectTypeFragment
      }
      deleteProduct
      productsCount
      activeProducts {
        ...ProductObjectTypeFragment
      }
      productsByBrand {
        ...ProductObjectTypeFragment
      }
      productsByCategory {
        ...ProductObjectTypeFragment
      }
      pendingApprovalProducts {
        ...ProductObjectTypeFragment
      }
      searchProducts {
        ...ProductObjectTypeFragment
      }
      checkProductExists
      approveProduct {
        ...ProductObjectTypeFragment
      }
      rejectProduct {
        ...ProductObjectTypeFragment
      }
    }
    repair {
      createRepair {
        ...RepairObjectTypeFragment
      }
      repairs {
        ...RepairObjectTypeFragment
      }
      updateRepair {
        ...RepairObjectTypeFragment
      }
    }
    sellerCatalog {
      createSellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      createPlatformSellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      sellerCatalogs {
        ...SellerCatalogObjectTypeFragment
      }
      updateSellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
    }
    sellers {
      createSeller {
        ...SellerObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      sellers {
        ...SellerObjectTypeFragment
      }
      updateSeller {
        ...SellerObjectTypeFragment
      }
      deleteSeller
    }
    skus {
      createSku {
        ...SkuObjectTypeFragment
      }
      createSkuChild {
        ...SkuObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      skus {
        ...SkuObjectTypeFragment
      }
      skuAncestors {
        ...SkuObjectTypeFragment
      }
      skuTree {
        ...SkuObjectTypeFragment
      }
      skuEffectivePrice
      updateSku {
        ...SkuObjectTypeFragment
      }
      deleteSku
    }
    skuAgentWhitelists {
      skuAgentWhitelist {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      skuAgentWhitelistItems {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      createSkuAgentWhitelist {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      updateSkuAgentWhitelist {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      deleteSkuAgentWhitelist
    }
  }
}
Response
{
  "data": {
    "inventory_module": {
      "categories": CategoriesNamespace,
      "conditions": ConditionsNamespace,
      "flashSales": FlashSalesNamespace,
      "flashSaleItems": FlashSaleItemsNamespace,
      "inventory": InventoryNamespace,
      "inventoryLocations": InventoryLocationsNamespace,
      "productOffers": ProductOffersNamespace,
      "products": ProductsNamespace,
      "repair": RepairNamespace,
      "sellerCatalog": SellerCatalogNamespace,
      "sellers": SellersNamespace,
      "skus": SkusNamespace,
      "skuAgentWhitelists": SkuAgentWhitelistsNamespace
    }
  }
}

latestFateGuideScoresByApplicationId

Description

Get the latest active fate guide score for an application

Response

Returns a FateGuideScoresDto

Arguments
Name Description
applicationId - ID!
type - FateGuideType

Example

Query
query latestFateGuideScoresByApplicationId(
  $applicationId: ID!,
  $type: FateGuideType
) {
  latestFateGuideScoresByApplicationId(
    applicationId: $applicationId,
    type: $type
  ) {
    id
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    customer_id
    crb_transaction_id
    mobile_analysis_id
    document_id
    crb_score
    crb_past_default_record
    customer_age
    big_loan_default
    model_type
    fate_guide_message
    requires_recheck
    sale_agent_id
    available_plans
    version
    sku
    type
    active
    devicePrice
    durationMonths
    age
    loanHistory {
      status
      accountStatus
      principal_amount
      originalAmount
      instalment_amount
      scheduledPaymentAmount
      term_months
      repaymentPeriod
    }
    signals {
      slopeBucket
      spinAffordability
      slopePctPerMonth
      bettingRatio
      p2pShare
      cov
      age
    }
    tier
    status
    rejectionReason
    statementLength
    minimumRequired
    sdiPct
    maxMonthlyInstallment
    maxCashPrice
    maxCashPriceHigh
    maxCashPriceMosaver
    productBand
    canonicalProductBand
    depositLevel
    affordabilitySource
    affordabilityValue
    adjustedAffordability
    crbInferredAffordability
    recommendation
    slopeBucket
    slopeHaircutPct
    bettingRatio
    p2pShare
    crbPositiveScore
    cov
    productBands
    deviceAssessment
    customerName
    assessedAt
    modelVersion
    formulas {
      grossInflows
      inorganicBanks
      inorganicMfis
      inorganicMobileLenders
      inorganicBetting
      inorganicInsurance
      inorganicTotal
      inorganicPct
      netInflows
      essentials
      loanRepayments
      frequentP2pSent
      frequentP2pTxnsPm
      nondiscretionary
      nondiscretionaryPct
      disposableIncome
      disposableIncomeMonthly
      monthlyDataPoints
      covBucket
      dirPct
      p2pReceivedTotal
      top10P2pTotal
      top10P2pShare
      p2pHaircutPct
      loanExposure
      fulizaPerMonth
      fulizaOvercountFlag
      financialHaircutPct
      bettingSent
      bettingPerMonth
      bettingFreqFlag
      bettingHaircutPct
      totalRafPct
      maxInstallmentPreRaf
      maxInstallment
      rejected
      negativeDisposableFlag
    }
    explanation {
      recommendation
      reason
      affordabilitySource
      spinAffordability
      crbInferredAffordability
      adjustedAffordability
      sdiPct
      tier
      tierThresholds
      slopeBucket
      haircutPct
      maxCashPrice
      maxCashPriceHigh
      maxCashPriceMosaver
      keyFormulas
      rafMonitoring {
        ...FateGuideExplainerRafMonitoringDtoFragment
      }
    }
    createdAt
    updatedAt
  }
}
Variables
{
  "applicationId": "4",
  "type": "PRESCREENING"
}
Response
{
  "data": {
    "latestFateGuideScoresByApplicationId": {
      "id": 4,
      "_id": 4,
      "application_id": 4,
      "application": ApplicationEntityGraphQL,
      "customer_id": "xyz789",
      "crb_transaction_id": 4,
      "mobile_analysis_id": "xyz789",
      "document_id": "4",
      "crb_score": "abc123",
      "crb_past_default_record": 987.65,
      "customer_age": 123,
      "big_loan_default": "abc123",
      "model_type": "abc123",
      "fate_guide_message": "abc123",
      "requires_recheck": false,
      "sale_agent_id": "abc123",
      "available_plans": ["xyz789"],
      "version": 123,
      "sku": "abc123",
      "type": "abc123",
      "active": false,
      "devicePrice": 123.45,
      "durationMonths": 123,
      "age": 987.65,
      "loanHistory": [FateGuideRuntimeLoanRecordDto],
      "signals": FateGuideRuntimeSignalsDto,
      "tier": "abc123",
      "status": "xyz789",
      "rejectionReason": "xyz789",
      "statementLength": 987.65,
      "minimumRequired": 987.65,
      "sdiPct": 987.65,
      "maxMonthlyInstallment": 987.65,
      "maxCashPrice": 987.65,
      "maxCashPriceHigh": 987.65,
      "maxCashPriceMosaver": 987.65,
      "productBand": "abc123",
      "canonicalProductBand": "abc123",
      "depositLevel": "abc123",
      "affordabilitySource": "xyz789",
      "affordabilityValue": 987.65,
      "adjustedAffordability": 123.45,
      "crbInferredAffordability": 987.65,
      "recommendation": "xyz789",
      "slopeBucket": "xyz789",
      "slopeHaircutPct": 987.65,
      "bettingRatio": 987.65,
      "p2pShare": 987.65,
      "crbPositiveScore": 123.45,
      "cov": 987.65,
      "productBands": {},
      "deviceAssessment": {},
      "customerName": "abc123",
      "assessedAt": "abc123",
      "modelVersion": "abc123",
      "formulas": FateGuideRuntimeFormulasDto,
      "explanation": FateGuideRuntimeExplanationDto,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

listingsBySeller

Response

Returns [SellerCatalogObjectType!]!

Arguments
Name Description
sellerId - ID!

Example

Query
query listingsBySeller($sellerId: ID!) {
  listingsBySeller(sellerId: $sellerId) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"sellerId": 4}
Response
{
  "data": {
    "listingsBySeller": [
      {
        "seller_catalog_id": "4",
        "seller_id": "xyz789",
        "sku_id": "xyz789",
        "cost_price": 987.65,
        "retail_price": 123.45,
        "currency": "xyz789",
        "stock_on_hand": 987,
        "reserved_stock": 987,
        "is_active": false,
        "listed_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "available_stock": 123,
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType
      }
    ]
  }
}

listingsBySku

Response

Returns [SellerCatalogObjectType!]!

Arguments
Name Description
skuId - ID!

Example

Query
query listingsBySku($skuId: ID!) {
  listingsBySku(skuId: $skuId) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"skuId": 4}
Response
{
  "data": {
    "listingsBySku": [
      {
        "seller_catalog_id": "4",
        "seller_id": "abc123",
        "sku_id": "xyz789",
        "cost_price": 987.65,
        "retail_price": 987.65,
        "currency": "xyz789",
        "stock_on_hand": 123,
        "reserved_stock": 987,
        "is_active": false,
        "listed_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "available_stock": 987,
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType
      }
    ]
  }
}

listingsWithLowStock

Response

Returns [SellerCatalogObjectType!]!

Arguments
Name Description
threshold - Float! Default = 5

Example

Query
query listingsWithLowStock($threshold: Float!) {
  listingsWithLowStock(threshold: $threshold) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"threshold": 5}
Response
{
  "data": {
    "listingsWithLowStock": [
      {
        "seller_catalog_id": "4",
        "seller_id": "abc123",
        "sku_id": "abc123",
        "cost_price": 123.45,
        "retail_price": 123.45,
        "currency": "abc123",
        "stock_on_hand": 123,
        "reserved_stock": 123,
        "is_active": true,
        "listed_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "available_stock": 123,
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType
      }
    ]
  }
}

livenessCheckTransaction

Description

Get a single liveness check transaction by ID

Response

Returns a LivenessCheckTransactionDto

Arguments
Name Description
id - ID!

Example

Query
query livenessCheckTransaction($id: ID!) {
  livenessCheckTransaction(id: $id) {
    id
    job_id
    target_id
    link
    provider
    status
    success
    error_message
    image_links {
      id_card_back
      id_card_image
      selfie_image
    }
    results {
      document_check
      liveness_check
      register_selfie
      verify_document
      selfie_to_id_card_compare
      human_review_document_check
      human_review_liveness_check
    }
    info {
      first_name
      last_name
      middle_name
      gender
      dob
      country
      id_number
      id_type
    }
    metadata
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "livenessCheckTransaction": {
      "id": "4",
      "job_id": "xyz789",
      "target_id": "xyz789",
      "link": "abc123",
      "provider": "SUMSUB",
      "status": "PENDING",
      "success": true,
      "error_message": "abc123",
      "image_links": LivenessImageLinksType,
      "results": LivenessResultsType,
      "info": LivenessInfoType,
      "metadata": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

livenessCheckTransactionByFilters

Description

Get a single liveness check transaction by filters

Response

Returns a LivenessCheckTransactionDto

Arguments
Name Description
filters - LivenessCheckTransactionFilterInput!

Example

Query
query livenessCheckTransactionByFilters($filters: LivenessCheckTransactionFilterInput!) {
  livenessCheckTransactionByFilters(filters: $filters) {
    id
    job_id
    target_id
    link
    provider
    status
    success
    error_message
    image_links {
      id_card_back
      id_card_image
      selfie_image
    }
    results {
      document_check
      liveness_check
      register_selfie
      verify_document
      selfie_to_id_card_compare
      human_review_document_check
      human_review_liveness_check
    }
    info {
      first_name
      last_name
      middle_name
      gender
      dob
      country
      id_number
      id_type
    }
    metadata
    createdAt
    updatedAt
  }
}
Variables
{"filters": LivenessCheckTransactionFilterInput}
Response
{
  "data": {
    "livenessCheckTransactionByFilters": {
      "id": "4",
      "job_id": "abc123",
      "target_id": "xyz789",
      "link": "abc123",
      "provider": "SUMSUB",
      "status": "PENDING",
      "success": false,
      "error_message": "xyz789",
      "image_links": LivenessImageLinksType,
      "results": LivenessResultsType,
      "info": LivenessInfoType,
      "metadata": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

livenessCheckTransactionCount

Description

Get count of liveness check transactions with optional filters

Response

Returns a Float!

Arguments
Name Description
filters - LivenessCheckTransactionFilterInput

Example

Query
query livenessCheckTransactionCount($filters: LivenessCheckTransactionFilterInput) {
  livenessCheckTransactionCount(filters: $filters)
}
Variables
{"filters": LivenessCheckTransactionFilterInput}
Response
{"data": {"livenessCheckTransactionCount": 123.45}}

livenessCheckTransactionsCursor

Description

Get paginated liveness check transactions using cursor-based pagination

Example

Query
query livenessCheckTransactionsCursor(
  $pagination: CursorPaginationInputType,
  $filters: LivenessCheckTransactionFilterInput,
  $regexFilters: LivenessCheckTransactionFilterInput
) {
  livenessCheckTransactionsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      job_id
      target_id
      link
      provider
      status
      success
      error_message
      image_links {
        ...LivenessImageLinksTypeFragment
      }
      results {
        ...LivenessResultsTypeFragment
      }
      info {
        ...LivenessInfoTypeFragment
      }
      metadata
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": LivenessCheckTransactionFilterInput,
  "regexFilters": LivenessCheckTransactionFilterInput
}
Response
{
  "data": {
    "livenessCheckTransactionsCursor": {
      "data": [LivenessCheckTransactionDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

livenessCheckTransactionsOffset

Description

Get paginated liveness check transactions using offset-based pagination

Example

Query
query livenessCheckTransactionsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: LivenessCheckTransactionFilterInput,
  $regexFilters: LivenessCheckTransactionFilterInput
) {
  livenessCheckTransactionsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      job_id
      target_id
      link
      provider
      status
      success
      error_message
      image_links {
        ...LivenessImageLinksTypeFragment
      }
      results {
        ...LivenessResultsTypeFragment
      }
      info {
        ...LivenessInfoTypeFragment
      }
      metadata
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": LivenessCheckTransactionFilterInput,
  "regexFilters": LivenessCheckTransactionFilterInput
}
Response
{
  "data": {
    "livenessCheckTransactionsOffset": {
      "data": [LivenessCheckTransactionDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

loan_module

Description

Access loan module operations

Response

Returns a LoanModuleNamespace!

Example

Query
query loan_module {
  loan_module {
    loanContracts {
      loanContract {
        ...LoanContractDtoFragment
      }
      loanContractBySaleId {
        ...LoanContractDtoFragment
      }
      loanContractsByCustomerId {
        ...LoanContractDtoFragment
      }
      loanContractsByStatus {
        ...LoanContractDtoFragment
      }
      loanContractsByRepaymentType {
        ...LoanContractDtoFragment
      }
      activeLoanContracts {
        ...LoanContractDtoFragment
      }
      allLoanContracts {
        ...LoanContractDtoFragment
      }
      loanContractsWithOffsetPagination {
        ...OffsetPaginatedLoanContractsFragment
      }
      loanContractsCursor {
        ...CursorPaginatedLoanContractsFragment
      }
      loanContractsCount
      createLoanContract {
        ...LoanContractDtoFragment
      }
      updateLoanContract {
        ...LoanContractDtoFragment
      }
      deleteLoanContract
      deleteManyLoanContracts
      markLoanContractAsPaidOff {
        ...LoanContractDtoFragment
      }
      markLoanContractAsWriteOff {
        ...LoanContractDtoFragment
      }
      disburseLoanContract {
        ...LoanContractDtoFragment
      }
      earlySettlementQuote {
        ...EarlySettlementQuoteTypeFragment
      }
      applyEarlySettlement {
        ...ApplyEarlySettlementResultTypeFragment
      }
      triggerContractAging {
        ...AgingResultFragment
      }
      triggerCustomerAging {
        ...AgingResultFragment
      }
    }
    loanLedger {
      loanLedgerEntry {
        ...LoanLedgerDtoFragment
      }
      allLoanLedgerEntries {
        ...LoanLedgerDtoFragment
      }
      loanLedgerWithOffsetPagination {
        ...OffsetPaginatedLoanLedgerFragment
      }
      loanLedgerCursor {
        ...CursorPaginatedLoanLedgerFragment
      }
      loanLedgerCount
      createLoanLedgerEntry {
        ...LoanLedgerDtoFragment
      }
      updateLoanLedgerEntry {
        ...LoanLedgerDtoFragment
      }
      deleteLoanLedgerEntry
      paymentStatement {
        ...OffsetPaginatedPaymentStatementFragment
      }
    }
    paymentAllocations {
      paymentAllocation {
        ...PaymentAllocationDtoFragment
      }
      allPaymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      paymentAllocationsWithOffsetPagination {
        ...OffsetPaginatedPaymentAllocationsFragment
      }
      paymentAllocationsCount
      createPaymentAllocation {
        ...PaymentAllocationDtoFragment
      }
      updatePaymentAllocation {
        ...PaymentAllocationDtoFragment
      }
      deletePaymentAllocation
      moveLoanPayments {
        ...MoveLoanPaymentsResultTypeFragment
      }
    }
    loanInstallments {
      loanInstallment {
        ...LoanInstallmentDtoFragment
      }
      allLoanInstallments {
        ...LoanInstallmentDtoFragment
      }
      loanInstallmentsWithOffsetPagination {
        ...OffsetPaginatedLoanInstallmentsFragment
      }
      loanInstallmentsCursor {
        ...CursorPaginatedLoanInstallmentsFragment
      }
      loanInstallmentsCount
      createLoanInstallment {
        ...LoanInstallmentDtoFragment
      }
      updateLoanInstallment {
        ...LoanInstallmentDtoFragment
      }
      deleteLoanInstallment
    }
    loanDelinquency {
      loanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      allLoanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      loanDelinquencyTrackingWithOffsetPagination {
        ...OffsetPaginatedLoanDelinquencyTrackingFragment
      }
      loanDelinquencyTrackingCount
      createLoanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      updateLoanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      deleteLoanDelinquencyTracking
    }
    loanOverrides {
      loanOverride {
        ...LoanOverrideDtoFragment
      }
      allLoanOverrides {
        ...LoanOverrideDtoFragment
      }
      loanOverridesWithOffsetPagination {
        ...OffsetPaginatedLoanOverridesFragment
      }
      loanOverridesCount
      createLoanOverride {
        ...LoanOverrideDtoFragment
      }
      updateLoanOverride {
        ...LoanOverrideDtoFragment
      }
      deleteLoanOverride
    }
    accountStatus {
      calculateAccountStatus {
        ...StatusCalculationResultFragment
      }
    }
    loanDashboard {
      summary {
        ...LoanDashboardSummaryFragment
      }
    }
  }
}
Response
{
  "data": {
    "loan_module": {
      "loanContracts": LoanContractsNamespace,
      "loanLedger": LoanLedgerNamespace,
      "paymentAllocations": PaymentAllocationsNamespace,
      "loanInstallments": LoanInstallmentsNamespace,
      "loanDelinquency": LoanDelinquencyNamespace,
      "loanOverrides": LoanOverridesNamespace,
      "accountStatus": AccountStatusNamespace,
      "loanDashboard": LoanDashboardNamespace
    }
  }
}

locations

Description

Get the location hierarchy and allowed delivery zones for a country

Response

Returns a LocationsConfigType!

Arguments
Name Description
country - String! ISO 3166-1 alpha-2 country code (e.g. KE). Default = "KE"

Example

Query
query locations($country: String!) {
  locations(country: $country) {
    location
    allowedLocations
  }
}
Variables
{"country": "KE"}
Response
{"data": {"locations": {"location": {}, "allowedLocations": {}}}}

mediaAsset

Description

Get a media asset by ID

Response

Returns a MediaAssetDto

Arguments
Name Description
id - String!

Example

Query
query mediaAsset($id: String!) {
  mediaAsset(id: $id) {
    _id
    domain
    type
    target
    target_id
    password
    url
    name
    content_type
    storage_provider
    raw
    createdAt
    updatedAt
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "mediaAsset": {
      "_id": 4,
      "domain": "AUDIT",
      "type": "SELFIE",
      "target": "xyz789",
      "target_id": "xyz789",
      "password": "abc123",
      "url": "xyz789",
      "name": "xyz789",
      "content_type": "xyz789",
      "storage_provider": "S3",
      "raw": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

mediaAssets

Description

Get media assets by domain, target, and target ID

Response

Returns [MediaAssetDto!]!

Arguments
Name Description
domain - MediaAssetsDomain!
target - String!
targetId - String!

Example

Query
query mediaAssets(
  $domain: MediaAssetsDomain!,
  $target: String!,
  $targetId: String!
) {
  mediaAssets(
    domain: $domain,
    target: $target,
    targetId: $targetId
  ) {
    _id
    domain
    type
    target
    target_id
    password
    url
    name
    content_type
    storage_provider
    raw
    createdAt
    updatedAt
  }
}
Variables
{
  "domain": "AUDIT",
  "target": "xyz789",
  "targetId": "abc123"
}
Response
{
  "data": {
    "mediaAssets": [
      {
        "_id": "4",
        "domain": "AUDIT",
        "type": "SELFIE",
        "target": "abc123",
        "target_id": "abc123",
        "password": "abc123",
        "url": "abc123",
        "name": "abc123",
        "content_type": "abc123",
        "storage_provider": "S3",
        "raw": {},
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

mediaAssetsCursor

Description

Get media assets with cursor pagination

Response

Returns a CursorPaginatedMediaAssets!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - MediaAssetFilterInput
regexFilters - MediaAssetFilterInput

Example

Query
query mediaAssetsCursor(
  $pagination: CursorPaginationInputType!,
  $filters: MediaAssetFilterInput,
  $regexFilters: MediaAssetFilterInput
) {
  mediaAssetsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      domain
      type
      target
      target_id
      password
      url
      name
      content_type
      storage_provider
      raw
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": MediaAssetFilterInput,
  "regexFilters": MediaAssetFilterInput
}
Response
{
  "data": {
    "mediaAssetsCursor": {
      "data": [MediaAssetDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

mediaAssetsOffset

Description

Get media assets with offset pagination

Response

Returns an OffsetPaginatedMediaAssets!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - MediaAssetFilterInput
regexFilters - MediaAssetFilterInput

Example

Query
query mediaAssetsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: MediaAssetFilterInput,
  $regexFilters: MediaAssetFilterInput
) {
  mediaAssetsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      domain
      type
      target
      target_id
      password
      url
      name
      content_type
      storage_provider
      raw
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": MediaAssetFilterInput,
  "regexFilters": MediaAssetFilterInput
}
Response
{
  "data": {
    "mediaAssetsOffset": {
      "data": [MediaAssetDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

moneyStatementAnalysesCursor

Description

Get paginated money statement analyses using cursor-based pagination

Example

Query
query moneyStatementAnalysesCursor(
  $pagination: CursorPaginationInputType,
  $filters: MoneyStatementAnalysisFilterInput,
  $regexFilters: MoneyStatementAnalysisFilterInput
) {
  moneyStatementAnalysesCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      target_id
      target
      provider_reference
      document_id
      status
      type
      provider
      name
      phone_number
      secondary_phone_number
      email
      duration
      statement_period
      agent_deposit
      airtime_highest
      internet_bundle_highest
      persons_received_from_total
      banks_received
      mfis_received
      mobile_lenders_received
      healthcare_received
      saccos_received
      insurance_received
      betting_received
      others_received
      airtime_total
      internet_bundle_total
      total_paid_in
      total_paid_in_average
      total_others
      affordability
      average_income
      twelve_months_loan_price
      gap_analysis {
        ...GapAnalysisResultGraphQLFragment
      }
      statement_source
      income
      airtime_category
      income_paid_in
      income_cover
      jsonData
      raw
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": MoneyStatementAnalysisFilterInput,
  "regexFilters": MoneyStatementAnalysisFilterInput
}
Response
{
  "data": {
    "moneyStatementAnalysesCursor": {
      "data": [MoneyStatementAnalysisDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

moneyStatementAnalysesOffset

Description

Get paginated money statement analyses using offset-based pagination

Example

Query
query moneyStatementAnalysesOffset(
  $pagination: OffsetPaginationInputType,
  $filters: MoneyStatementAnalysisFilterInput,
  $regexFilters: MoneyStatementAnalysisFilterInput
) {
  moneyStatementAnalysesOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      target_id
      target
      provider_reference
      document_id
      status
      type
      provider
      name
      phone_number
      secondary_phone_number
      email
      duration
      statement_period
      agent_deposit
      airtime_highest
      internet_bundle_highest
      persons_received_from_total
      banks_received
      mfis_received
      mobile_lenders_received
      healthcare_received
      saccos_received
      insurance_received
      betting_received
      others_received
      airtime_total
      internet_bundle_total
      total_paid_in
      total_paid_in_average
      total_others
      affordability
      average_income
      twelve_months_loan_price
      gap_analysis {
        ...GapAnalysisResultGraphQLFragment
      }
      statement_source
      income
      airtime_category
      income_paid_in
      income_cover
      jsonData
      raw
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": MoneyStatementAnalysisFilterInput,
  "regexFilters": MoneyStatementAnalysisFilterInput
}
Response
{
  "data": {
    "moneyStatementAnalysesOffset": {
      "data": [MoneyStatementAnalysisDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

moneyStatementAnalysis

Description

Get a single money statement analysis by ID

Response

Returns a MoneyStatementAnalysisDto

Arguments
Name Description
id - ID!

Example

Query
query moneyStatementAnalysis($id: ID!) {
  moneyStatementAnalysis(id: $id) {
    id
    target_id
    target
    provider_reference
    document_id
    status
    type
    provider
    name
    phone_number
    secondary_phone_number
    email
    duration
    statement_period
    agent_deposit
    airtime_highest
    internet_bundle_highest
    persons_received_from_total
    banks_received
    mfis_received
    mobile_lenders_received
    healthcare_received
    saccos_received
    insurance_received
    betting_received
    others_received
    airtime_total
    internet_bundle_total
    total_paid_in
    total_paid_in_average
    total_others
    affordability
    average_income
    twelve_months_loan_price
    gap_analysis {
      pass
      status
      slope
      average_disposable
      month_5_disposable
      month_6_disposable
      standard_deviation
      coefficient_of_variation
      criteria {
        ...GapAnalysisCriteriaGraphQLFragment
      }
      monthly_data {
        ...GapAnalysisMonthlyDataGraphQLFragment
      }
    }
    statement_source
    income
    airtime_category
    income_paid_in
    income_cover
    jsonData
    raw
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "moneyStatementAnalysis": {
      "id": "4",
      "target_id": "abc123",
      "target": "LEAD",
      "provider_reference": "xyz789",
      "document_id": "xyz789",
      "status": "UNKNOWN",
      "type": "MPESA",
      "provider": "SPINMOBILE",
      "name": "xyz789",
      "phone_number": "xyz789",
      "secondary_phone_number": "abc123",
      "email": "xyz789",
      "duration": 123,
      "statement_period": "xyz789",
      "agent_deposit": 123.45,
      "airtime_highest": 987.65,
      "internet_bundle_highest": 987.65,
      "persons_received_from_total": 123.45,
      "banks_received": 987.65,
      "mfis_received": 123.45,
      "mobile_lenders_received": 987.65,
      "healthcare_received": 987.65,
      "saccos_received": 987.65,
      "insurance_received": 123.45,
      "betting_received": 987.65,
      "others_received": 123.45,
      "airtime_total": 123.45,
      "internet_bundle_total": 123.45,
      "total_paid_in": 987.65,
      "total_paid_in_average": 987.65,
      "total_others": 987.65,
      "affordability": 123.45,
      "average_income": 123.45,
      "twelve_months_loan_price": 987.65,
      "gap_analysis": GapAnalysisResultGraphQL,
      "statement_source": "WEBHOOK",
      "income": 123.45,
      "airtime_category": "xyz789",
      "income_paid_in": 987.65,
      "income_cover": "xyz789",
      "jsonData": {},
      "raw": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

moneyStatementAnalysisByFilters

Description

Get a single money statement analysis by filters

Response

Returns a MoneyStatementAnalysisDto

Arguments
Name Description
filters - MoneyStatementAnalysisFilterInput!

Example

Query
query moneyStatementAnalysisByFilters($filters: MoneyStatementAnalysisFilterInput!) {
  moneyStatementAnalysisByFilters(filters: $filters) {
    id
    target_id
    target
    provider_reference
    document_id
    status
    type
    provider
    name
    phone_number
    secondary_phone_number
    email
    duration
    statement_period
    agent_deposit
    airtime_highest
    internet_bundle_highest
    persons_received_from_total
    banks_received
    mfis_received
    mobile_lenders_received
    healthcare_received
    saccos_received
    insurance_received
    betting_received
    others_received
    airtime_total
    internet_bundle_total
    total_paid_in
    total_paid_in_average
    total_others
    affordability
    average_income
    twelve_months_loan_price
    gap_analysis {
      pass
      status
      slope
      average_disposable
      month_5_disposable
      month_6_disposable
      standard_deviation
      coefficient_of_variation
      criteria {
        ...GapAnalysisCriteriaGraphQLFragment
      }
      monthly_data {
        ...GapAnalysisMonthlyDataGraphQLFragment
      }
    }
    statement_source
    income
    airtime_category
    income_paid_in
    income_cover
    jsonData
    raw
    createdAt
    updatedAt
  }
}
Variables
{"filters": MoneyStatementAnalysisFilterInput}
Response
{
  "data": {
    "moneyStatementAnalysisByFilters": {
      "id": "4",
      "target_id": "abc123",
      "target": "LEAD",
      "provider_reference": "xyz789",
      "document_id": "xyz789",
      "status": "UNKNOWN",
      "type": "MPESA",
      "provider": "SPINMOBILE",
      "name": "abc123",
      "phone_number": "abc123",
      "secondary_phone_number": "abc123",
      "email": "abc123",
      "duration": 123,
      "statement_period": "abc123",
      "agent_deposit": 123.45,
      "airtime_highest": 123.45,
      "internet_bundle_highest": 123.45,
      "persons_received_from_total": 987.65,
      "banks_received": 987.65,
      "mfis_received": 987.65,
      "mobile_lenders_received": 987.65,
      "healthcare_received": 123.45,
      "saccos_received": 987.65,
      "insurance_received": 987.65,
      "betting_received": 123.45,
      "others_received": 987.65,
      "airtime_total": 123.45,
      "internet_bundle_total": 987.65,
      "total_paid_in": 123.45,
      "total_paid_in_average": 123.45,
      "total_others": 123.45,
      "affordability": 987.65,
      "average_income": 123.45,
      "twelve_months_loan_price": 987.65,
      "gap_analysis": GapAnalysisResultGraphQL,
      "statement_source": "WEBHOOK",
      "income": 987.65,
      "airtime_category": "xyz789",
      "income_paid_in": 987.65,
      "income_cover": "xyz789",
      "jsonData": {},
      "raw": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

moneyStatementAnalysisCount

Description

Get count of money statement analyses with optional filters

Response

Returns a Float!

Arguments
Name Description
filters - MoneyStatementAnalysisFilterInput

Example

Query
query moneyStatementAnalysisCount($filters: MoneyStatementAnalysisFilterInput) {
  moneyStatementAnalysisCount(filters: $filters)
}
Variables
{"filters": MoneyStatementAnalysisFilterInput}
Response
{"data": {"moneyStatementAnalysisCount": 987.65}}

onboardingAvailableDevicesByApplicationId

Description

Get available devices based on the latest active fate guide for an application

Arguments
Name Description
input - OnboardingAvailableDevicesInput!

Example

Query
query onboardingAvailableDevicesByApplicationId($input: OnboardingAvailableDevicesInput!) {
  onboardingAvailableDevicesByApplicationId(input: $input) {
    message
    data {
      fateGuide {
        ...FateGuideScoresTypeFragment
      }
      products {
        ...SellerCatalogObjectTypeFragment
      }
      preferredProduct {
        ...SellerCatalogObjectTypeFragment
      }
      productFilter {
        ...OnboardingProductFilterTypeFragment
      }
      pagination {
        ...OnboardingPaginationMetadataTypeFragment
      }
      availablePlans {
        ...PricingCalculationTypeFragment
      }
      pricePlans {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"input": OnboardingAvailableDevicesInput}
Response
{
  "data": {
    "onboardingAvailableDevicesByApplicationId": {
      "message": "xyz789",
      "data": AvailableDevicesResultGraphQL
    }
  }
}

onboardingAvailableDevicesByFateGuideId

Description

Get available devices using an existing fate guide result

Arguments
Name Description
input - OnboardingAvailableDevicesInput!

Example

Query
query onboardingAvailableDevicesByFateGuideId($input: OnboardingAvailableDevicesInput!) {
  onboardingAvailableDevicesByFateGuideId(input: $input) {
    message
    data {
      fateGuide {
        ...FateGuideScoresTypeFragment
      }
      products {
        ...SellerCatalogObjectTypeFragment
      }
      preferredProduct {
        ...SellerCatalogObjectTypeFragment
      }
      productFilter {
        ...OnboardingProductFilterTypeFragment
      }
      pagination {
        ...OnboardingPaginationMetadataTypeFragment
      }
      availablePlans {
        ...PricingCalculationTypeFragment
      }
      pricePlans {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"input": OnboardingAvailableDevicesInput}
Response
{
  "data": {
    "onboardingAvailableDevicesByFateGuideId": {
      "message": "abc123",
      "data": AvailableDevicesResultGraphQL
    }
  }
}

order

Response

Returns an OrderObjectType

Arguments
Name Description
id - ID!

Example

Query
query order($id: ID!) {
  order(id: $id) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "order": {
      "order_id": "4",
      "customer_id": "4",
      "order_status": "PENDING",
      "payment_status": "UNPAID",
      "shipping_address": ShippingAddress,
      "currency": "abc123",
      "sub_total": 123.45,
      "total_discount": 987.65,
      "delivery_fee": 123.45,
      "service_fee": 123.45,
      "tax_amount": 987.65,
      "total_amount": 123.45,
      "application_id": "xyz789",
      "sale_agent_id": "xyz789",
      "submitting_agent_id": "xyz789",
      "manual_override": false,
      "order_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "application": ApplicationEntityGraphQL,
      "orderItems": [OrderItemObjectType],
      "deliveries": [DeliveryObjectType],
      "sales": [SalesObjectType],
      "deliveryCalls": [DeliveryCallObjectType]
    }
  }
}

orderByFilters

Response

Returns an OrderObjectType

Arguments
Name Description
filters - OrderFilterInput!

Example

Query
query orderByFilters($filters: OrderFilterInput!) {
  orderByFilters(filters: $filters) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": OrderFilterInput}
Response
{
  "data": {
    "orderByFilters": {
      "order_id": "4",
      "customer_id": 4,
      "order_status": "PENDING",
      "payment_status": "UNPAID",
      "shipping_address": ShippingAddress,
      "currency": "xyz789",
      "sub_total": 987.65,
      "total_discount": 987.65,
      "delivery_fee": 987.65,
      "service_fee": 123.45,
      "tax_amount": 987.65,
      "total_amount": 987.65,
      "application_id": "xyz789",
      "sale_agent_id": "xyz789",
      "submitting_agent_id": "abc123",
      "manual_override": true,
      "order_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "application": ApplicationEntityGraphQL,
      "orderItems": [OrderItemObjectType],
      "deliveries": [DeliveryObjectType],
      "sales": [SalesObjectType],
      "deliveryCalls": [DeliveryCallObjectType]
    }
  }
}

orderItem

Response

Returns an OrderItemObjectType

Arguments
Name Description
id - ID!

Example

Query
query orderItem($id: ID!) {
  orderItem(id: $id) {
    order_item_id
    order_id
    seller_id
    item_type
    catalog_id
    quantity
    unit_price
    discount_amount
    adjustments
    subtotal
    purchase_type
    status
    metadata
    created_at
    updated_at
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    delivery_items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    inventory_allocations {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
    inventory_allocation {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "orderItem": {
      "order_item_id": "4",
      "order_id": "4",
      "seller_id": "4",
      "item_type": "PRODUCT",
      "catalog_id": "4",
      "quantity": 123.45,
      "unit_price": 123.45,
      "discount_amount": 987.65,
      "adjustments": {},
      "subtotal": 123.45,
      "purchase_type": "CASH",
      "status": "abc123",
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sellerCatalog": SellerCatalogObjectType,
      "order": OrderObjectType,
      "delivery_items": [DeliveryItemObjectType],
      "inventory_allocations": [
        InventoryAllocationObjectType
      ],
      "inventory_allocation": InventoryAllocationObjectType
    }
  }
}

orderItems

Response

Returns [OrderItemObjectType!]

Arguments
Name Description
filters - OrderItemFilterInput

Example

Query
query orderItems($filters: OrderItemFilterInput) {
  orderItems(filters: $filters) {
    order_item_id
    order_id
    seller_id
    item_type
    catalog_id
    quantity
    unit_price
    discount_amount
    adjustments
    subtotal
    purchase_type
    status
    metadata
    created_at
    updated_at
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    delivery_items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    inventory_allocations {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
    inventory_allocation {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
  }
}
Variables
{"filters": OrderItemFilterInput}
Response
{
  "data": {
    "orderItems": [
      {
        "order_item_id": 4,
        "order_id": 4,
        "seller_id": "4",
        "item_type": "PRODUCT",
        "catalog_id": "4",
        "quantity": 123.45,
        "unit_price": 123.45,
        "discount_amount": 123.45,
        "adjustments": {},
        "subtotal": 987.65,
        "purchase_type": "CASH",
        "status": "xyz789",
        "metadata": {},
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "sellerCatalog": SellerCatalogObjectType,
        "order": OrderObjectType,
        "delivery_items": [DeliveryItemObjectType],
        "inventory_allocations": [
          InventoryAllocationObjectType
        ],
        "inventory_allocation": InventoryAllocationObjectType
      }
    ]
  }
}

orderItemsCursor

Response

Returns a CursorsPaginatedOrderItems!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - OrderItemFilterInput
regexFilters - OrderItemFilterInput

Example

Query
query orderItemsCursor(
  $pagination: CursorPaginationInputType,
  $filters: OrderItemFilterInput,
  $regexFilters: OrderItemFilterInput
) {
  orderItemsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": OrderItemFilterInput,
  "regexFilters": OrderItemFilterInput
}
Response
{
  "data": {
    "orderItemsCursor": {
      "data": [OrderItemObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

orderItemsOffset

Response

Returns an OffsetPaginatedOrderItems!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - OrderItemFilterInput
regexFilters - OrderItemFilterInput

Example

Query
query orderItemsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: OrderItemFilterInput,
  $regexFilters: OrderItemFilterInput
) {
  orderItemsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": OrderItemFilterInput,
  "regexFilters": OrderItemFilterInput
}
Response
{
  "data": {
    "orderItemsOffset": {
      "data": [OrderItemObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

orders

Response

Returns [OrderObjectType!]

Arguments
Name Description
filters - OrderFilterInput

Example

Query
query orders($filters: OrderFilterInput) {
  orders(filters: $filters) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": OrderFilterInput}
Response
{
  "data": {
    "orders": [
      {
        "order_id": "4",
        "customer_id": 4,
        "order_status": "PENDING",
        "payment_status": "UNPAID",
        "shipping_address": ShippingAddress,
        "currency": "abc123",
        "sub_total": 987.65,
        "total_discount": 123.45,
        "delivery_fee": 987.65,
        "service_fee": 123.45,
        "tax_amount": 123.45,
        "total_amount": 987.65,
        "application_id": "abc123",
        "sale_agent_id": "xyz789",
        "submitting_agent_id": "abc123",
        "manual_override": false,
        "order_date": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "metadata": {},
        "customer": RawCustomersDto,
        "application": ApplicationEntityGraphQL,
        "orderItems": [OrderItemObjectType],
        "deliveries": [DeliveryObjectType],
        "sales": [SalesObjectType],
        "deliveryCalls": [DeliveryCallObjectType]
      }
    ]
  }
}

ordersCursor

Response

Returns a CursorsPaginatedOrders

Arguments
Name Description
pagination - CursorPaginationInputType
filters - OrderFilterInput
regexFilters - OrderFilterInput

Example

Query
query ordersCursor(
  $pagination: CursorPaginationInputType,
  $filters: OrderFilterInput,
  $regexFilters: OrderFilterInput
) {
  ordersCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": OrderFilterInput,
  "regexFilters": OrderFilterInput
}
Response
{
  "data": {
    "ordersCursor": {
      "data": [OrderObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

ordersNeedingCollection

Response

Returns [OrderObjectType!]!

Arguments
Name Description
applicationId - ID!

Example

Query
query ordersNeedingCollection($applicationId: ID!) {
  ordersNeedingCollection(applicationId: $applicationId) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "ordersNeedingCollection": [
      {
        "order_id": "4",
        "customer_id": 4,
        "order_status": "PENDING",
        "payment_status": "UNPAID",
        "shipping_address": ShippingAddress,
        "currency": "abc123",
        "sub_total": 987.65,
        "total_discount": 123.45,
        "delivery_fee": 123.45,
        "service_fee": 987.65,
        "tax_amount": 123.45,
        "total_amount": 987.65,
        "application_id": "abc123",
        "sale_agent_id": "xyz789",
        "submitting_agent_id": "xyz789",
        "manual_override": false,
        "order_date": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "metadata": {},
        "customer": RawCustomersDto,
        "application": ApplicationEntityGraphQL,
        "orderItems": [OrderItemObjectType],
        "deliveries": [DeliveryObjectType],
        "sales": [SalesObjectType],
        "deliveryCalls": [DeliveryCallObjectType]
      }
    ]
  }
}

ordersOffset

Response

Returns an OffsetPaginatedOrders!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - OrderFilterInput
regexFilters - OrderFilterInput

Example

Query
query ordersOffset(
  $pagination: OffsetPaginationInputType,
  $filters: OrderFilterInput,
  $regexFilters: OrderFilterInput
) {
  ordersOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": OrderFilterInput,
  "regexFilters": OrderFilterInput
}
Response
{
  "data": {
    "ordersOffset": {
      "data": [OrderObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

overdueRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query overdueRepairs {
  overdueRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "overdueRepairs": [
      {
        "repair_id": 4,
        "repair_display_id": "xyz789",
        "requires_technician": true,
        "inventory_id": "xyz789",
        "customer_id": "xyz789",
        "original_sale_id": "xyz789",
        "provider_seller_id": "abc123",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": false,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "xyz789",
        "customer_complaint": "abc123",
        "hq_diagnostic_notes": "xyz789",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

partner_module

Description

Access partner module operations

Response

Returns a PartnerModuleNamespace!

Example

Query
query partner_module {
  partner_module {
    partnerProfile {
      createPartnerProfile {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerProfile {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerStatus {
        ...PartnerProfileObjectTypeFragment
      }
      deletePartnerProfile
      partnerProfile {
        ...PartnerProfileObjectTypeFragment
      }
      partnerProfileByFilters {
        ...PartnerProfileObjectTypeFragment
      }
      partnerProfiles {
        ...PartnerProfileObjectTypeFragment
      }
      directReports {
        ...PartnerProfileObjectTypeFragment
      }
      allDownlines {
        ...PartnerProfileObjectTypeFragment
      }
      ancestors {
        ...PartnerProfileObjectTypeFragment
      }
      parentPartner {
        ...PartnerProfileObjectTypeFragment
      }
      partnerExists
      partnersProfileOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      partnersProfileCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    cohort {
      cohort {
        ...CohortObjectTypeFragment
      }
      cohortByCohortId {
        ...CohortObjectTypeFragment
      }
      cohortbyFilters {
        ...CohortObjectTypeFragment
      }
      checkCohortCapacity
      checkCohortAvailableCapacity
      cohortsOffset {
        ...OffsetPaginatedCohortsFragment
      }
      cohortsCursor {
        ...CursorPaginatedCohortsFragment
      }
      createCohort {
        ...CohortObjectTypeFragment
      }
      updateCohort {
        ...CohortObjectTypeFragment
      }
      updateCohortStatus {
        ...CohortObjectTypeFragment
      }
      addAgentToCohort {
        ...CohortObjectTypeFragment
      }
      removeAgentFromCohort {
        ...CohortObjectTypeFragment
      }
      assignTrainerToCohort {
        ...CohortObjectTypeFragment
      }
      removeTrainerFromCohort {
        ...CohortObjectTypeFragment
      }
      startCohort {
        ...CohortObjectTypeFragment
      }
      completeCohort {
        ...CohortObjectTypeFragment
      }
      cancelCohort {
        ...CohortObjectTypeFragment
      }
      graduateAgentFromCohort
      deleteCohort
    }
    agentProfile {
      agentProfile {
        ...AgentProfileObjectTypeFragment
      }
      agentProfileByUserId {
        ...AgentProfileObjectTypeFragment
      }
      agentProfileByFilters {
        ...AgentProfileObjectTypeFragment
      }
      agentProfiles {
        ...AgentProfileObjectTypeFragment
      }
      agentExists
      agentProfilesOffset {
        ...OffsetPaginatedAgentProfilesFragment
      }
      agentProfilesCursor {
        ...CursorPaginatedAgentProfilesFragment
      }
      updateAgentProfile {
        ...AgentProfileObjectTypeFragment
      }
      updateAgentStatus {
        ...AgentProfileObjectTypeFragment
      }
      deleteAgent
    }
    internalStaff {
      internalStaffProfile {
        ...InternalStaffProfileObjectTypeFragment
      }
      internalStaffProfileByFilters {
        ...InternalStaffProfileObjectTypeFragment
      }
      internalStaffProfileAll {
        ...InternalStaffProfileObjectTypeFragment
      }
      internalStaffOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
      internalStaffCursor {
        ...CursorPaginatedInternalStaffProfilesFragment
      }
      staffExists
      createInternalStaffProfile {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateInternalStaffProfile {
        ...InternalStaffProfileObjectTypeFragment
      }
      assignStaffToShop {
        ...InternalStaffProfileObjectTypeFragment
      }
      assignStaffToRegion {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateStaffAvailability {
        ...InternalStaffProfileObjectTypeFragment
      }
      removeStaffFromPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      removeStaffFromShop {
        ...InternalStaffProfileObjectTypeFragment
      }
    }
    partnerKyc {
      submitIndividualKYC {
        ...PartnerProfileObjectTypeFragment
      }
      submitOrganizationKYC {
        ...PartnerProfileObjectTypeFragment
      }
      submitStaffKYC {
        ...InternalStaffProfileObjectTypeFragment
      }
      reviewKYC {
        ...AgentProfileObjectTypeFragment
      }
      requestPartnerKYCResubmission {
        ...AgentProfileObjectTypeFragment
      }
      requestStaffKYCResubmission {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithPendingKYC {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithRejectedKYC {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithIncompleteKYC {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithApprovedKYC {
        ...AgentProfileObjectTypeFragment
      }
      getStaffKYC {
        ...InternalStaffProfileObjectTypeFragment
      }
    }
    onlineAgent {
      createOnlineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      createSuperAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateOnlineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateSuperAgent {
        ...PartnerProfileObjectTypeFragment
      }
      upgradeOnlineAgentToSuperAgent {
        ...PartnerProfileObjectTypeFragment
      }
      onlineAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      superAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    leadGeneration {
      createLeadGeneration {
        ...PartnerProfileObjectTypeFragment
      }
      updateLeadGeneration {
        ...PartnerProfileObjectTypeFragment
      }
      leadGenerationOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    offlineAgent {
      createOfflineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateOfflineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      offlineAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    externalShop {
      createExternalShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      updateShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updateShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
    }
    dealer {
      createDealerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createDealerAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateDealerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updateDealerAgent {
        ...PartnerProfileObjectTypeFragment
      }
      dealersOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      dealersCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    telesalesAgent {
      createTelesalesAgent {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateTelesalesAgent {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgent {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgentByFilters {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgents {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgentsOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
      telesalesAgentsCursor {
        ...CursorPaginatedInternalStaffProfilesFragment
      }
    }
    telesalesParentAgent {
      telesalesParentAgents {
        ...PartnerProfileObjectTypeFragment
      }
      telesalesParentAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      telesalesParentAgentsCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
      telesalesAgentsByParent {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgentsByParentOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
      telesalesAgentsByParentCursor {
        ...CursorPaginatedInternalStaffProfilesFragment
      }
      createTelesalesParentAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateTelesalesParentAgent {
        ...PartnerProfileObjectTypeFragment
      }
      deleteTelesalesParentAgent
    }
    moShop {
      createShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createShopAttendant {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updateShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      shopsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      shopsCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    partnerOwner {
      createPartnerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createPartnerShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      createSellerForPartner {
        ...PartnerProfileObjectTypeFragment
      }
      partnerOwnersOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    trainer {
      createTrainer {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateTrainer {
        ...InternalStaffProfileObjectTypeFragment
      }
      trainersOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
    }
    sfm {
      createSFM {
        ...InternalStaffProfileObjectTypeFragment
      }
      createShopManager {
        ...InternalStaffProfileObjectTypeFragment
      }
      createPartnerPromoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateSFM {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateShopManager {
        ...InternalStaffProfileObjectTypeFragment
      }
      updatePartnerPromoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      removePromoterPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      transferPromoterPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      transferSfmPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      sfmStaffOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
    }
    retailer {
      createRetailerOrganization {
        ...PartnerProfileObjectTypeFragment
      }
      updateRetailerOrganization {
        ...PartnerProfileObjectTypeFragment
      }
      createRetailerOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      updateRetailerOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      removeRetailerOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      createRetailOutletStaff {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateRetailOutletStaff {
        ...InternalStaffProfileObjectTypeFragment
      }
      assignStaffToOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      transferStaffBetweenOutlets {
        ...PartnerProfileObjectTypeFragment
      }
      findRetailerOrganizationById {
        ...PartnerProfileObjectTypeFragment
      }
      findOutletsByRetailerId {
        ...RetailerOutletObjectTypeFragment
      }
      findOutletById {
        ...RetailerOutletObjectTypeFragment
      }
      retailerOrganizationsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      retailerOrganizationsCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    agentPermissions {
      agentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      allAgentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      permissionCatalog {
        ...PermissionCatalogTypeFragment
      }
      setAgentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      resetAgentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      deleteChildPermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "partner_module": {
      "partnerProfile": PartnerProfileNamespace,
      "cohort": CohortNamespace,
      "agentProfile": AgentProfileNamespace,
      "internalStaff": InternalStaffNamespace,
      "partnerKyc": PartnerKycNamespace,
      "onlineAgent": OnlineAgentNamespace,
      "leadGeneration": LeadGenerationNamespace,
      "offlineAgent": OfflineAgentNamespace,
      "externalShop": ExternalShopNamespace,
      "dealer": DealerNamespace,
      "telesalesAgent": TelesalesAgentNamespace,
      "telesalesParentAgent": TelesalesParentAgentNamespace,
      "moShop": MoShopNamespace,
      "partnerOwner": PartnerOwnerNamespace,
      "trainer": TrainerNamespace,
      "sfm": SfmNamespace,
      "retailer": RetailerNamespace,
      "agentPermissions": AgentPermissionsNamespace
    }
  }
}

payment_module

Description

Access payment module operations

Response

Returns a PaymentModuleNamespace!

Example

Query
query payment_module {
  payment_module {
    paymentOrchestrator {
      collectMobileMoneyPayment {
        ...PaymentProviderResultTypeFragment
      }
      collectCardPayment {
        ...PaymentProviderResultTypeFragment
      }
      collectBankPayment {
        ...PaymentProviderResultTypeFragment
      }
      collectCryptoPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendMobileMoneyPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendCardPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendBankPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendCryptoPayment {
        ...PaymentProviderResultTypeFragment
      }
    }
    payments {
      createPayment {
        ...PaymentsEntityTypeFragment
      }
      createRawPayment {
        ...PaymentsEntityTypeFragment
      }
      getPaymentById {
        ...PaymentsEntityTypeFragment
      }
      payments {
        ...PaymentsEntityTypeFragment
      }
      paymentByFilters {
        ...PaymentsEntityTypeFragment
      }
      paymentsWithCursorPagination {
        ...CursorPaginatedPaymentsFragment
      }
      completePayment {
        ...PaymentsEntityTypeFragment
      }
      failPayment {
        ...PaymentsEntityTypeFragment
      }
      reversePayment {
        ...PaymentsEntityTypeFragment
      }
      updatePayment {
        ...PaymentsEntityTypeFragment
      }
      updateManyPayments
      manuallyReconcilePayment {
        ...PaymentsEntityTypeFragment
      }
      revokePaymentByAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      undoPaymentRevocation {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      allocatePaymentToRepairSale {
        ...RepairAllocationResultTypeFragment
      }
      correctCashSaleOverAllocations {
        ...CorrectCashSaleOverAllocationsResultTypeFragment
      }
      reallocateRepairSalesToOutstanding {
        ...ReallocateRepairSalesResultTypeFragment
      }
      deletePayment
      deleteManyPayments
      paymentCount
      uploadMpesaBulkDump
    }
    paymentAdjustments {
      createPaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustmentByFilters {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustments {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustmentsOffset {
        ...OffsetPaginatedPaymentAdjustmentsFragment
      }
      paymentAdjustmentsCursor {
        ...CursorPaginatedPaymentAdjustmentsFragment
      }
      updatePaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      deletePaymentAdjustment
      effectPaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      revokePaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      getTotalAdjustmentsByCustomer
      paymentAdjustmentCount
      uploadAdjustmentsBulkDump
    }
  }
}
Response
{
  "data": {
    "payment_module": {
      "paymentOrchestrator": PaymentOrchestratorNamespace,
      "payments": PaymentsNamespace,
      "paymentAdjustments": PaymentAdjustmentsNamespace
    }
  }
}

pendingApprovalProducts

Response

Returns [ProductObjectType!]!

Example

Query
query pendingApprovalProducts {
  pendingApprovalProducts {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Response
{
  "data": {
    "pendingApprovalProducts": [
      {
        "product_id": "4",
        "name": "xyz789",
        "slug": "xyz789",
        "brand": "abc123",
        "model": "xyz789",
        "category_id": "abc123",
        "category": CategoryObjectType,
        "description": "xyz789",
        "long_description": "xyz789",
        "base_specifications": {},
        "primary_image_url": "abc123",
        "images": ["abc123"],
        "video_url": "abc123",
        "meta_title": "xyz789",
        "meta_description": "abc123",
        "keywords": ["xyz789"],
        "is_active": true,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "abc123",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

pendingRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query pendingRepairs {
  pendingRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "pendingRepairs": [
      {
        "repair_id": "4",
        "repair_display_id": "abc123",
        "requires_technician": true,
        "inventory_id": "abc123",
        "customer_id": "xyz789",
        "original_sale_id": "xyz789",
        "provider_seller_id": "abc123",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": true,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "abc123",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "abc123",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 987.65,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

phoneVerificationTransaction

Description

Get a single phone verification transaction by ID

Response

Returns a PhoneVerificationTransactionDto

Arguments
Name Description
id - ID!

Example

Query
query phoneVerificationTransaction($id: ID!) {
  phoneVerificationTransaction(id: $id) {
    _id
    status
    country_iso
    provider
    phone_number
    target_id
    customer_name
    transaction_id
    failure_reason
    registered
    failed_at
    completed_at
    manual
    check
    record_status
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "phoneVerificationTransaction": {
      "_id": "4",
      "status": true,
      "country_iso": "abc123",
      "provider": "MPESA",
      "phone_number": "xyz789",
      "target_id": "abc123",
      "customer_name": "abc123",
      "transaction_id": "abc123",
      "failure_reason": "xyz789",
      "registered": true,
      "failed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "manual": true,
      "check": "UNKNOWN",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

phoneVerificationTransactionByFilters

Description

Get a single phone verification transaction by filters

Response

Returns a PhoneVerificationTransactionDto

Arguments
Name Description
filters - PhoneVerificationTransactionFilterInput!

Example

Query
query phoneVerificationTransactionByFilters($filters: PhoneVerificationTransactionFilterInput!) {
  phoneVerificationTransactionByFilters(filters: $filters) {
    _id
    status
    country_iso
    provider
    phone_number
    target_id
    customer_name
    transaction_id
    failure_reason
    registered
    failed_at
    completed_at
    manual
    check
    record_status
    createdAt
  }
}
Variables
{"filters": PhoneVerificationTransactionFilterInput}
Response
{
  "data": {
    "phoneVerificationTransactionByFilters": {
      "_id": "4",
      "status": true,
      "country_iso": "xyz789",
      "provider": "MPESA",
      "phone_number": "abc123",
      "target_id": "xyz789",
      "customer_name": "xyz789",
      "transaction_id": "abc123",
      "failure_reason": "abc123",
      "registered": true,
      "failed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "manual": true,
      "check": "UNKNOWN",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

phoneVerificationTransactionCount

Description

Get count of phone verification transactions with optional filters

Response

Returns a Float!

Arguments
Name Description
filters - PhoneVerificationTransactionFilterInput

Example

Query
query phoneVerificationTransactionCount($filters: PhoneVerificationTransactionFilterInput) {
  phoneVerificationTransactionCount(filters: $filters)
}
Variables
{"filters": PhoneVerificationTransactionFilterInput}
Response
{"data": {"phoneVerificationTransactionCount": 123.45}}

phoneVerificationTransactionsCursor

Description

Get paginated phone verification transactions using cursor-based pagination

Example

Query
query phoneVerificationTransactionsCursor(
  $pagination: CursorPaginationInputType,
  $filters: PhoneVerificationTransactionFilterInput,
  $regexFilters: PhoneVerificationTransactionFilterInput
) {
  phoneVerificationTransactionsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      status
      country_iso
      provider
      phone_number
      target_id
      customer_name
      transaction_id
      failure_reason
      registered
      failed_at
      completed_at
      manual
      check
      record_status
      createdAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": PhoneVerificationTransactionFilterInput,
  "regexFilters": PhoneVerificationTransactionFilterInput
}
Response
{
  "data": {
    "phoneVerificationTransactionsCursor": {
      "data": [PhoneVerificationTransactionDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

phoneVerificationTransactionsOffset

Description

Get paginated phone verification transactions using offset-based pagination

Example

Query
query phoneVerificationTransactionsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: PhoneVerificationTransactionFilterInput,
  $regexFilters: PhoneVerificationTransactionFilterInput
) {
  phoneVerificationTransactionsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      status
      country_iso
      provider
      phone_number
      target_id
      customer_name
      transaction_id
      failure_reason
      registered
      failed_at
      completed_at
      manual
      check
      record_status
      createdAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": PhoneVerificationTransactionFilterInput,
  "regexFilters": PhoneVerificationTransactionFilterInput
}
Response
{
  "data": {
    "phoneVerificationTransactionsOffset": {
      "data": [PhoneVerificationTransactionDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

pricePlan

Response

Returns a PricePlanObjectType!

Arguments
Name Description
id - String!

Example

Query
query pricePlan($id: String!) {
  pricePlan(id: $id) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "pricePlan": {
      "id": "4",
      "tier_id": "xyz789",
      "parent_plan_id": "xyz789",
      "code": "abc123",
      "name": "xyz789",
      "min_device_value": 987.65,
      "max_device_value": 123.45,
      "deposit_percent": 987.65,
      "deposit_percent_high": 987.65,
      "subsequent_loan_discount_percent": 987.65,
      "loan_multiplier": 987.65,
      "loan_multiplier_high": 123.45,
      "mocare_percent": 123.45,
      "duration_months": 987,
      "duration_months_high": 123,
      "payment_frequency": "DAILY",
      "effective_from": "2007-12-03T10:15:30Z",
      "effective_to": "2007-12-03T10:15:30Z",
      "early_payoff_discounts": [
        EarlyPayoffDiscountObjectType
      ],
      "status": "ACTIVE",
      "is_private": false,
      "version": 123,
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "tier": SellerTierObjectType,
      "versions": [PricePlanObjectType]
    }
  }
}

pricePlanByFilter

Response

Returns a PricePlanObjectType

Arguments
Name Description
filters - PricePlanFilterInput

Example

Query
query pricePlanByFilter($filters: PricePlanFilterInput) {
  pricePlanByFilter(filters: $filters) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": PricePlanFilterInput}
Response
{
  "data": {
    "pricePlanByFilter": {
      "id": "4",
      "tier_id": "xyz789",
      "parent_plan_id": "abc123",
      "code": "abc123",
      "name": "xyz789",
      "min_device_value": 123.45,
      "max_device_value": 987.65,
      "deposit_percent": 123.45,
      "deposit_percent_high": 987.65,
      "subsequent_loan_discount_percent": 987.65,
      "loan_multiplier": 987.65,
      "loan_multiplier_high": 987.65,
      "mocare_percent": 987.65,
      "duration_months": 987,
      "duration_months_high": 123,
      "payment_frequency": "DAILY",
      "effective_from": "2007-12-03T10:15:30Z",
      "effective_to": "2007-12-03T10:15:30Z",
      "early_payoff_discounts": [
        EarlyPayoffDiscountObjectType
      ],
      "status": "ACTIVE",
      "is_private": true,
      "version": 987,
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "tier": SellerTierObjectType,
      "versions": [PricePlanObjectType]
    }
  }
}

pricePlanVersions

Response

Returns [PricePlanObjectType!]!

Arguments
Name Description
pricePlanId - String!

Example

Query
query pricePlanVersions($pricePlanId: String!) {
  pricePlanVersions(pricePlanId: $pricePlanId) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"pricePlanId": "abc123"}
Response
{
  "data": {
    "pricePlanVersions": [
      {
        "id": "4",
        "tier_id": "xyz789",
        "parent_plan_id": "xyz789",
        "code": "xyz789",
        "name": "abc123",
        "min_device_value": 987.65,
        "max_device_value": 123.45,
        "deposit_percent": 987.65,
        "deposit_percent_high": 123.45,
        "subsequent_loan_discount_percent": 987.65,
        "loan_multiplier": 987.65,
        "loan_multiplier_high": 987.65,
        "mocare_percent": 987.65,
        "duration_months": 987,
        "duration_months_high": 987,
        "payment_frequency": "DAILY",
        "effective_from": "2007-12-03T10:15:30Z",
        "effective_to": "2007-12-03T10:15:30Z",
        "early_payoff_discounts": [
          EarlyPayoffDiscountObjectType
        ],
        "status": "ACTIVE",
        "is_private": true,
        "version": 987,
        "metadata": {},
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "tier": SellerTierObjectType,
        "versions": [PricePlanObjectType]
      }
    ]
  }
}

pricePlans

Response

Returns [PricePlanObjectType!]!

Arguments
Name Description
filters - PricePlanFilterInput

Example

Query
query pricePlans($filters: PricePlanFilterInput) {
  pricePlans(filters: $filters) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": PricePlanFilterInput}
Response
{
  "data": {
    "pricePlans": [
      {
        "id": "4",
        "tier_id": "xyz789",
        "parent_plan_id": "xyz789",
        "code": "xyz789",
        "name": "xyz789",
        "min_device_value": 123.45,
        "max_device_value": 987.65,
        "deposit_percent": 987.65,
        "deposit_percent_high": 123.45,
        "subsequent_loan_discount_percent": 987.65,
        "loan_multiplier": 987.65,
        "loan_multiplier_high": 987.65,
        "mocare_percent": 123.45,
        "duration_months": 123,
        "duration_months_high": 123,
        "payment_frequency": "DAILY",
        "effective_from": "2007-12-03T10:15:30Z",
        "effective_to": "2007-12-03T10:15:30Z",
        "early_payoff_discounts": [
          EarlyPayoffDiscountObjectType
        ],
        "status": "ACTIVE",
        "is_private": false,
        "version": 123,
        "metadata": {},
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "tier": SellerTierObjectType,
        "versions": [PricePlanObjectType]
      }
    ]
  }
}

pricePlansCount

Response

Returns a Float!

Arguments
Name Description
filters - PricePlanFilterInput

Example

Query
query pricePlansCount($filters: PricePlanFilterInput) {
  pricePlansCount(filters: $filters)
}
Variables
{"filters": PricePlanFilterInput}
Response
{"data": {"pricePlansCount": 123.45}}

pricePlansCursorPaginated

Response

Returns a CursorPaginatedPricePlans!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - PricePlanFilterInput
regexFilters - PricePlanFilterInput

Example

Query
query pricePlansCursorPaginated(
  $pagination: CursorPaginationInputType,
  $filters: PricePlanFilterInput,
  $regexFilters: PricePlanFilterInput
) {
  pricePlansCursorPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": PricePlanFilterInput,
  "regexFilters": PricePlanFilterInput
}
Response
{
  "data": {
    "pricePlansCursorPaginated": {
      "data": [PricePlanObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

pricePlansOffsetPaginated

Response

Returns an OffsetPaginatedPricePlans!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - PricePlanFilterInput
regexFilters - PricePlanFilterInput

Example

Query
query pricePlansOffsetPaginated(
  $pagination: OffsetPaginationInputType,
  $filters: PricePlanFilterInput,
  $regexFilters: PricePlanFilterInput
) {
  pricePlansOffsetPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": PricePlanFilterInput,
  "regexFilters": PricePlanFilterInput
}
Response
{
  "data": {
    "pricePlansOffsetPaginated": {
      "data": [PricePlanObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

product

Response

Returns a ProductObjectType!

Arguments
Name Description
id - ID!

Example

Query
query product($id: ID!) {
  product(id: $id) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "product": {
      "product_id": 4,
      "name": "abc123",
      "slug": "xyz789",
      "brand": "abc123",
      "model": "xyz789",
      "category_id": "xyz789",
      "category": CategoryObjectType,
      "description": "xyz789",
      "long_description": "xyz789",
      "base_specifications": {},
      "primary_image_url": "xyz789",
      "images": ["abc123"],
      "video_url": "xyz789",
      "meta_title": "xyz789",
      "meta_description": "xyz789",
      "keywords": ["abc123"],
      "is_active": false,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "abc123",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

productOffer

Response

Returns a ProductOfferObjectType!

Arguments
Name Description
id - ID!

Example

Query
query productOffer($id: ID!) {
  productOffer(id: $id) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "productOffer": {
      "product_offer_id": "4",
      "sku_id": "4",
      "description": "xyz789",
      "status": "DRAFT",
      "type": "PERCENTAGE",
      "discount_value": 987.65,
      "minimum_purchase_amount": 987.65,
      "maximum_discount_amount": 987.65,
      "usage_limit": 123,
      "usage_count": 987,
      "usage_limit_per_customer": 123,
      "promo_code": "xyz789",
      "category_filters": ["xyz789"],
      "brand_filters": ["abc123"],
      "applicable_channels": ["abc123"],
      "active": false,
      "starts_at": "2007-12-03T10:15:30Z",
      "ends_at": "2007-12-03T10:15:30Z",
      "seller_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

productOffers

Response

Returns [ProductOfferObjectType!]!

Arguments
Name Description
filter - ProductOfferFilterInput

Example

Query
query productOffers($filter: ProductOfferFilterInput) {
  productOffers(filter: $filter) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{"filter": ProductOfferFilterInput}
Response
{
  "data": {
    "productOffers": [
      {
        "product_offer_id": 4,
        "sku_id": "4",
        "description": "abc123",
        "status": "DRAFT",
        "type": "PERCENTAGE",
        "discount_value": 123.45,
        "minimum_purchase_amount": 987.65,
        "maximum_discount_amount": 987.65,
        "usage_limit": 123,
        "usage_count": 123,
        "usage_limit_per_customer": 123,
        "promo_code": "abc123",
        "category_filters": ["abc123"],
        "brand_filters": ["abc123"],
        "applicable_channels": ["abc123"],
        "active": true,
        "starts_at": "2007-12-03T10:15:30Z",
        "ends_at": "2007-12-03T10:15:30Z",
        "seller_id": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

productOffersBySeller

Response

Returns [ProductOfferObjectType!]!

Arguments
Name Description
sellerId - ID!

Example

Query
query productOffersBySeller($sellerId: ID!) {
  productOffersBySeller(sellerId: $sellerId) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{"sellerId": 4}
Response
{
  "data": {
    "productOffersBySeller": [
      {
        "product_offer_id": "4",
        "sku_id": "4",
        "description": "xyz789",
        "status": "DRAFT",
        "type": "PERCENTAGE",
        "discount_value": 987.65,
        "minimum_purchase_amount": 123.45,
        "maximum_discount_amount": 987.65,
        "usage_limit": 123,
        "usage_count": 987,
        "usage_limit_per_customer": 987,
        "promo_code": "xyz789",
        "category_filters": ["abc123"],
        "brand_filters": ["abc123"],
        "applicable_channels": ["xyz789"],
        "active": false,
        "starts_at": "2007-12-03T10:15:30Z",
        "ends_at": "2007-12-03T10:15:30Z",
        "seller_id": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

productOffersWithCursorPagination

Response

Returns a CursorPaginatedProductOffers!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - ProductOfferFilterInput
regexFilters - ProductOfferFilterInput

Example

Query
query productOffersWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: ProductOfferFilterInput,
  $regexFilters: ProductOfferFilterInput
) {
  productOffersWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      product_offer_id
      sku_id
      description
      status
      type
      discount_value
      minimum_purchase_amount
      maximum_discount_amount
      usage_limit
      usage_count
      usage_limit_per_customer
      promo_code
      category_filters
      brand_filters
      applicable_channels
      active
      starts_at
      ends_at
      seller_id
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ProductOfferFilterInput,
  "regexFilters": ProductOfferFilterInput
}
Response
{
  "data": {
    "productOffersWithCursorPagination": {
      "data": [ProductOfferObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

productOffersWithOffsetPagination

Response

Returns an OffsetPaginatedProductOffers!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - ProductOfferFilterInput
regexFilters - ProductOfferFilterInput

Example

Query
query productOffersWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: ProductOfferFilterInput,
  $regexFilters: ProductOfferFilterInput
) {
  productOffersWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      product_offer_id
      sku_id
      description
      status
      type
      discount_value
      minimum_purchase_amount
      maximum_discount_amount
      usage_limit
      usage_count
      usage_limit_per_customer
      promo_code
      category_filters
      brand_filters
      applicable_channels
      active
      starts_at
      ends_at
      seller_id
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ProductOfferFilterInput,
  "regexFilters": ProductOfferFilterInput
}
Response
{
  "data": {
    "productOffersWithOffsetPagination": {
      "data": [ProductOfferObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

products

Response

Returns [ProductObjectType!]!

Arguments
Name Description
filter - ProductFilterInput

Example

Query
query products($filter: ProductFilterInput) {
  products(filter: $filter) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"filter": ProductFilterInput}
Response
{
  "data": {
    "products": [
      {
        "product_id": "4",
        "name": "abc123",
        "slug": "xyz789",
        "brand": "abc123",
        "model": "abc123",
        "category_id": "abc123",
        "category": CategoryObjectType,
        "description": "xyz789",
        "long_description": "xyz789",
        "base_specifications": {},
        "primary_image_url": "abc123",
        "images": ["xyz789"],
        "video_url": "xyz789",
        "meta_title": "xyz789",
        "meta_description": "abc123",
        "keywords": ["abc123"],
        "is_active": true,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "xyz789",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

productsByBrand

Response

Returns [ProductObjectType!]!

Arguments
Name Description
brand - String!

Example

Query
query productsByBrand($brand: String!) {
  productsByBrand(brand: $brand) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"brand": "xyz789"}
Response
{
  "data": {
    "productsByBrand": [
      {
        "product_id": "4",
        "name": "abc123",
        "slug": "xyz789",
        "brand": "abc123",
        "model": "abc123",
        "category_id": "abc123",
        "category": CategoryObjectType,
        "description": "abc123",
        "long_description": "xyz789",
        "base_specifications": {},
        "primary_image_url": "abc123",
        "images": ["abc123"],
        "video_url": "abc123",
        "meta_title": "xyz789",
        "meta_description": "abc123",
        "keywords": ["xyz789"],
        "is_active": true,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "xyz789",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

productsByCategory

Response

Returns [ProductObjectType!]!

Arguments
Name Description
categoryId - ID!

Example

Query
query productsByCategory($categoryId: ID!) {
  productsByCategory(categoryId: $categoryId) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"categoryId": "4"}
Response
{
  "data": {
    "productsByCategory": [
      {
        "product_id": "4",
        "name": "xyz789",
        "slug": "xyz789",
        "brand": "abc123",
        "model": "abc123",
        "category_id": "abc123",
        "category": CategoryObjectType,
        "description": "xyz789",
        "long_description": "abc123",
        "base_specifications": {},
        "primary_image_url": "xyz789",
        "images": ["abc123"],
        "video_url": "abc123",
        "meta_title": "xyz789",
        "meta_description": "xyz789",
        "keywords": ["abc123"],
        "is_active": false,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "xyz789",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

productsCount

Response

Returns a Float!

Arguments
Name Description
filters - ProductFilterInput

Example

Query
query productsCount($filters: ProductFilterInput) {
  productsCount(filters: $filters)
}
Variables
{"filters": ProductFilterInput}
Response
{"data": {"productsCount": 123.45}}

productsWithCursorPagination

Response

Returns a CursorPaginatedProducts!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - ProductFilterInput
regexFilters - ProductFilterInput

Example

Query
query productsWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: ProductFilterInput,
  $regexFilters: ProductFilterInput
) {
  productsWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ProductFilterInput,
  "regexFilters": ProductFilterInput
}
Response
{
  "data": {
    "productsWithCursorPagination": {
      "data": [ProductObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

productsWithOffsetPagination

Response

Returns an OffsetPaginatedProducts!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - ProductFilterInput
regexFilters - ProductFilterInput

Example

Query
query productsWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: ProductFilterInput,
  $regexFilters: ProductFilterInput
) {
  productsWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ProductFilterInput,
  "regexFilters": ProductFilterInput
}
Response
{
  "data": {
    "productsWithOffsetPagination": {
      "data": [ProductObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

refund

Description

Get a single refund by ID

Response

Returns a RefundGraphQL

Arguments
Name Description
id - ID!

Example

Query
query refund($id: ID!) {
  refund(id: $id) {
    refund_id
    customer_id
    sale_id
    returns_request_id
    order_id
    loan_contract_id
    source_payment_id
    adjustment_id
    refund_workflow_type
    refund_amount
    status
    refund_method
    transaction_reference
    submitted_by
    submitted_by_name
    actor_id
    approved_by
    approved_by_name
    customer_name
    customer_phone
    customer_official_id
    approved_at
    processed_at
    completed_at
    notes
    rejection_reason
    returns_request_type
    created_at
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "refund": {
      "refund_id": "4",
      "customer_id": "xyz789",
      "sale_id": "xyz789",
      "returns_request_id": "xyz789",
      "order_id": "xyz789",
      "loan_contract_id": "abc123",
      "source_payment_id": "xyz789",
      "adjustment_id": "xyz789",
      "refund_workflow_type": "RETURN",
      "refund_amount": 123.45,
      "status": "PENDING",
      "refund_method": "MPESA",
      "transaction_reference": "abc123",
      "submitted_by": "abc123",
      "submitted_by_name": "xyz789",
      "actor_id": "xyz789",
      "approved_by": "abc123",
      "approved_by_name": "xyz789",
      "customer_name": "xyz789",
      "customer_phone": "xyz789",
      "customer_official_id": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "processed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "notes": "xyz789",
      "rejection_reason": "abc123",
      "returns_request_type": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

refundsCursor

Description

Get paginated refunds (cursor)

Response

Returns a CursorPaginatedRefunds!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - RefundFilterInput

Example

Query
query refundsCursor(
  $pagination: CursorPaginationInputType!,
  $filters: RefundFilterInput
) {
  refundsCursor(
    pagination: $pagination,
    filters: $filters
  ) {
    data {
      refund_id
      customer_id
      sale_id
      returns_request_id
      order_id
      loan_contract_id
      source_payment_id
      adjustment_id
      refund_workflow_type
      refund_amount
      status
      refund_method
      transaction_reference
      submitted_by
      submitted_by_name
      actor_id
      approved_by
      approved_by_name
      customer_name
      customer_phone
      customer_official_id
      approved_at
      processed_at
      completed_at
      notes
      rejection_reason
      returns_request_type
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": RefundFilterInput
}
Response
{
  "data": {
    "refundsCursor": {
      "data": [RefundGraphQL],
      "pagination": CursorPaginationMetadata
    }
  }
}

repair

Response

Returns a RepairObjectType!

Arguments
Name Description
id - ID!

Example

Query
query repair($id: ID!) {
  repair(id: $id) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "repair": {
      "repair_id": "4",
      "repair_display_id": "xyz789",
      "requires_technician": true,
      "inventory_id": "abc123",
      "customer_id": "xyz789",
      "original_sale_id": "abc123",
      "provider_seller_id": "xyz789",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": true,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "abc123",
      "customer_complaint": "xyz789",
      "hq_diagnostic_notes": "xyz789",
      "billing_type": "WARRANTY",
      "quoted_price": 123.45,
      "spares_cost": 123.45,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

repairs

Response

Returns [RepairObjectType!]!

Arguments
Name Description
filter - RepairFilterInput

Example

Query
query repairs($filter: RepairFilterInput) {
  repairs(filter: $filter) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"filter": RepairFilterInput}
Response
{
  "data": {
    "repairs": [
      {
        "repair_id": 4,
        "repair_display_id": "xyz789",
        "requires_technician": true,
        "inventory_id": "abc123",
        "customer_id": "xyz789",
        "original_sale_id": "abc123",
        "provider_seller_id": "abc123",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": false,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "abc123",
        "customer_complaint": "abc123",
        "hq_diagnostic_notes": "abc123",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

repairsByCustomer

Response

Returns [RepairObjectType!]!

Arguments
Name Description
customerId - ID!

Example

Query
query repairsByCustomer($customerId: ID!) {
  repairsByCustomer(customerId: $customerId) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"customerId": "4"}
Response
{
  "data": {
    "repairsByCustomer": [
      {
        "repair_id": 4,
        "repair_display_id": "abc123",
        "requires_technician": true,
        "inventory_id": "abc123",
        "customer_id": "abc123",
        "original_sale_id": "xyz789",
        "provider_seller_id": "xyz789",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": true,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "abc123",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "xyz789",
        "billing_type": "WARRANTY",
        "quoted_price": 123.45,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

repairsBySeller

Response

Returns [RepairObjectType!]!

Arguments
Name Description
sellerId - ID!

Example

Query
query repairsBySeller($sellerId: ID!) {
  repairsBySeller(sellerId: $sellerId) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"sellerId": 4}
Response
{
  "data": {
    "repairsBySeller": [
      {
        "repair_id": "4",
        "repair_display_id": "abc123",
        "requires_technician": true,
        "inventory_id": "abc123",
        "customer_id": "xyz789",
        "original_sale_id": "abc123",
        "provider_seller_id": "abc123",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": false,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "abc123",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "abc123",
        "billing_type": "WARRANTY",
        "quoted_price": 123.45,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

repairsWithCursorPagination

Response

Returns a CursorPaginatedRepairs!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - RepairFilterInput
regexFilters - RepairFilterInput

Example

Query
query repairsWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: RepairFilterInput,
  $regexFilters: RepairFilterInput
) {
  repairsWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      repair_id
      repair_display_id
      requires_technician
      inventory_id
      customer_id
      original_sale_id
      provider_seller_id
      location_status
      status
      priority
      is_left_at_shop
      intake_details
      outtake_details
      security
      issue_tag
      customer_complaint
      hq_diagnostic_notes
      billing_type
      quoted_price
      spares_cost
      estimated_completion_at
      actual_completion_at
      created_at
      updated_at
      inventory {
        ...InventoryObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": RepairFilterInput,
  "regexFilters": RepairFilterInput
}
Response
{
  "data": {
    "repairsWithCursorPagination": {
      "data": [RepairObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

repairsWithOffsetPagination

Response

Returns an OffsetPaginatedRepairs!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - RepairFilterInput
regexFilters - RepairFilterInput

Example

Query
query repairsWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: RepairFilterInput,
  $regexFilters: RepairFilterInput
) {
  repairsWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      repair_id
      repair_display_id
      requires_technician
      inventory_id
      customer_id
      original_sale_id
      provider_seller_id
      location_status
      status
      priority
      is_left_at_shop
      intake_details
      outtake_details
      security
      issue_tag
      customer_complaint
      hq_diagnostic_notes
      billing_type
      quoted_price
      spares_cost
      estimated_completion_at
      actual_completion_at
      created_at
      updated_at
      inventory {
        ...InventoryObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": RepairFilterInput,
  "regexFilters": RepairFilterInput
}
Response
{
  "data": {
    "repairsWithOffsetPagination": {
      "data": [RepairObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

resolveCommission

Response

Returns a CommissionCalculationType!

Arguments
Name Description
agentProfileId - String!
cashPrice - Float!
skuId - String
effectiveDate - DateTime

Example

Query
query resolveCommission(
  $agentProfileId: String!,
  $cashPrice: Float!,
  $skuId: String,
  $effectiveDate: DateTime
) {
  resolveCommission(
    agentProfileId: $agentProfileId,
    cashPrice: $cashPrice,
    skuId: $skuId,
    effectiveDate: $effectiveDate
  ) {
    product_commission
    loan_commission
    cash_commission
    channel_type
    commission_type
    is_override
    commission_override_id
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{
  "agentProfileId": "xyz789",
  "cashPrice": 123.45,
  "skuId": "xyz789",
  "effectiveDate": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "resolveCommission": {
      "product_commission": 987.65,
      "loan_commission": 987.65,
      "cash_commission": 123.45,
      "channel_type": "ONLINE_AGENT",
      "commission_type": "FLAT",
      "is_override": false,
      "commission_override_id": "xyz789",
      "commission_rule": CommissionObjectType
    }
  }
}

resubmission

Description

Get a single resubmission record by ID

Response

Returns an ApplicationResubmissionGraphQL

Arguments
Name Description
id - ID!

Example

Query
query resubmission($id: ID!) {
  resubmission(id: $id) {
    _id
    prospect_id
    lead_id
    application_id
    changes {
      active_selfie
      active_front_id
      active_back_id
      active_mpesa_statement
      active_bank_statement
      kra_pin
      bank_or_statement_or_kra_or_pin
      first_name
      other_name
      id_type
      id_number
      mpesa_number
      preferred_delivery_date
      product_change
      loan_repayment_period
    }
    journey
    status
    submitted_by
    validations_to_run
    valid_data {
      customerId
      customerMpesa
      nok
      kra
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    validations {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    full_name
    createdAt
    updatedAt
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "resubmission": {
      "_id": "4",
      "prospect_id": 4,
      "lead_id": 4,
      "application_id": 4,
      "changes": ResubmissionChangesGraphQL,
      "journey": "CREDIT",
      "status": "PENDING",
      "submitted_by": "abc123",
      "validations_to_run": ["abc123"],
      "valid_data": ResubmissionValidDataGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "validations": ApplicationActiveValidationReferencesGraphQL,
      "full_name": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

resubmissionByFilters

Description

Get a single resubmission record matching filters

Response

Returns an ApplicationResubmissionGraphQL

Arguments
Name Description
filters - ResubmissionFilterInput!

Example

Query
query resubmissionByFilters($filters: ResubmissionFilterInput!) {
  resubmissionByFilters(filters: $filters) {
    _id
    prospect_id
    lead_id
    application_id
    changes {
      active_selfie
      active_front_id
      active_back_id
      active_mpesa_statement
      active_bank_statement
      kra_pin
      bank_or_statement_or_kra_or_pin
      first_name
      other_name
      id_type
      id_number
      mpesa_number
      preferred_delivery_date
      product_change
      loan_repayment_period
    }
    journey
    status
    submitted_by
    validations_to_run
    valid_data {
      customerId
      customerMpesa
      nok
      kra
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    validations {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    full_name
    createdAt
    updatedAt
  }
}
Variables
{"filters": ResubmissionFilterInput}
Response
{
  "data": {
    "resubmissionByFilters": {
      "_id": "4",
      "prospect_id": "4",
      "lead_id": "4",
      "application_id": 4,
      "changes": ResubmissionChangesGraphQL,
      "journey": "CREDIT",
      "status": "PENDING",
      "submitted_by": "abc123",
      "validations_to_run": ["abc123"],
      "valid_data": ResubmissionValidDataGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "validations": ApplicationActiveValidationReferencesGraphQL,
      "full_name": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

resubmissionsCount

Description

Get count of resubmission records matching filters

Response

Returns a Float!

Arguments
Name Description
filters - ResubmissionFilterInput

Example

Query
query resubmissionsCount($filters: ResubmissionFilterInput) {
  resubmissionsCount(filters: $filters)
}
Variables
{"filters": ResubmissionFilterInput}
Response
{"data": {"resubmissionsCount": 987.65}}

resubmissionsCursor

Description

Get cursor-paginated resubmission records

Response

Returns a CursorPaginatedResubmissions!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - ResubmissionFilterInput

Example

Query
query resubmissionsCursor(
  $pagination: CursorPaginationInputType,
  $filters: ResubmissionFilterInput
) {
  resubmissionsCursor(
    pagination: $pagination,
    filters: $filters
  ) {
    data {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ResubmissionFilterInput
}
Response
{
  "data": {
    "resubmissionsCursor": {
      "data": [ApplicationResubmissionGraphQL],
      "pagination": CursorPaginationMetadata
    }
  }
}

resubmissionsOffset

Description

Get offset-paginated resubmission records

Response

Returns an OffsetPaginatedResubmissions!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - ResubmissionFilterInput

Example

Query
query resubmissionsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: ResubmissionFilterInput
) {
  resubmissionsOffset(
    pagination: $pagination,
    filters: $filters
  ) {
    data {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ResubmissionFilterInput
}
Response
{
  "data": {
    "resubmissionsOffset": {
      "data": [ApplicationResubmissionGraphQL],
      "metadata": OffsetPaginationMetadata
    }
  }
}

returnsDevicePickerContext

Description

Fate-guide aligned catalog devices for a sale with per-row seller quotes for a price plan, plus current-plan snapshot (single round-trip for returns device selection).

Response

Returns a ReturnsDevicePickerPayload!

Arguments
Name Description
input - ReturnsDevicePickerInput!

Example

Query
query returnsDevicePickerContext($input: ReturnsDevicePickerInput!) {
  returnsDevicePickerContext(input: $input) {
    application_id
    customer_id
    price_restrictions {
      priceRestrictions {
        ...PriceRestrictionTypeFragment
      }
    }
    current_plan {
      plan_id
      plan_name
      cash_price
      deposit_amount
      weekly_instalment_amount
      deposit_amount_high
      weekly_instalment_amount_high
      deposit_tier
      duration_months
    }
    devices {
      seller_catalog_id
      sku_id
      seller_id
      device_display_name
      retail_price
      available_stock
      platform_owner
      deposit_amount
      weekly_instalment_amount
      deposit_amount_high
      weekly_instalment_amount_high
      total_loan_amount
      weekly_installment_count
      duration_months
      top_up_or_refund_delta
      top_up_or_refund_delta_high
      difference_outcome
      difference_outcome_high
      difference_display_amount
      difference_display_amount_high
      difference_unavailable_reason
      quote_error
    }
    fate_guide_available_price_plans {
      plan_id
      plan_name
      duration_months
    }
    pagination {
      totalItems
      perPage
      page
      lastPage
    }
    fate_guide_id
    fate_guide_ceilings {
      max_cash_price
      max_cash_price_high
      max_cash_price_mosaver
      catalog_max_cash_price
      deposit_level
    }
    effective_price_plan_id
    unavailable_reason
    quotes_use_present_day_pricing
    legacy_price_plan_reference
  }
}
Variables
{"input": ReturnsDevicePickerInput}
Response
{
  "data": {
    "returnsDevicePickerContext": {
      "application_id": 4,
      "customer_id": "4",
      "price_restrictions": OnboardingProductFilterType,
      "current_plan": ReturnsDevicePickerCurrentPlanType,
      "devices": [ReturnsDevicePickerDeviceRowType],
      "fate_guide_available_price_plans": [
        ReturnsDevicePickerFatePlanOptionType
      ],
      "pagination": OnboardingPaginationMetadataType,
      "fate_guide_id": 4,
      "fate_guide_ceilings": ReturnsDevicePickerFateGuideCeilingsType,
      "effective_price_plan_id": "4",
      "unavailable_reason": "xyz789",
      "quotes_use_present_day_pricing": true,
      "legacy_price_plan_reference": "abc123"
    }
  }
}

returnsIntakeFinancialPreview

Description

Latest loan ledger snapshot for returns intake (arrears / balance) by sale

Arguments
Name Description
saleId - ID!

Example

Query
query returnsIntakeFinancialPreview($saleId: ID!) {
  returnsIntakeFinancialPreview(saleId: $saleId) {
    sale_id
    has_loan_ledger
    arrears_amount
    balance_due
    amount_paid
    loan_age_days
    days_since_last_payment
    last_payment_date
    last_payment_amount
    days_past_due
    requires_arrears_escalation
    ledger_id
    contract_id
    credit_expiry_date
    opening_date
    upfront_payment
  }
}
Variables
{"saleId": "4"}
Response
{
  "data": {
    "returnsIntakeFinancialPreview": {
      "sale_id": 4,
      "has_loan_ledger": false,
      "arrears_amount": 123.45,
      "balance_due": 987.65,
      "amount_paid": 987.65,
      "loan_age_days": 123,
      "days_since_last_payment": 987,
      "last_payment_date": "2007-12-03T10:15:30Z",
      "last_payment_amount": 987.65,
      "days_past_due": 987.65,
      "requires_arrears_escalation": false,
      "ledger_id": "4",
      "contract_id": "4",
      "credit_expiry_date": "2007-12-03T10:15:30Z",
      "opening_date": "2007-12-03T10:15:30Z",
      "upfront_payment": 123.45
    }
  }
}

returnsOpsQueue

Description

Pending returns ops queue (paginated; default limit 100, max 100)

Response

Returns a ReturnsOpsQueueResult!

Arguments
Name Description
opsAssignedTo - ID
limit - Int Max items to return (default 100, max 100)

Example

Query
query returnsOpsQueue(
  $opsAssignedTo: ID,
  $limit: Int
) {
  returnsOpsQueue(
    opsAssignedTo: $opsAssignedTo,
    limit: $limit
  ) {
    items {
      _id
      request_type
      status
      customer_id
      sale_id
      ticket_id
      current_device_id
      target_device_model
      return_reason
      customer_notes
      cxc_notes
      submitted_by
      customer {
        ...ResolvedCustomerTypeFragment
      }
      current_device {
        ...ResolvedDeviceTypeFragment
      }
      submitted_by_user {
        ...ResolvedUserTypeFragment
      }
      operations_user {
        ...ResolvedUserTypeFragment
      }
      decisioner_user {
        ...ResolvedUserTypeFragment
      }
      submitted_at
      return_policy
      current_device_balance
      amount_paid_to_date
      current_device_deposit
      new_device_deposit
      new_device_price
      device_allocation_details {
        ...DeviceAllocationDetailsTypeFragment
      }
      operations_details {
        ...OperationsDetailsTypeFragment
      }
      decisioner_details {
        ...DecisionerDetailsTypeFragment
      }
      consent_records {
        ...ConsentRecordTypeFragment
      }
      refund_applicable
      repossession_details {
        ...RepossessionDetailsTypeFragment
      }
      status_history {
        ...StatusHistoryEntryTypeFragment
      }
      notes_history {
        ...ReturnsNoteEntryTypeFragment
      }
      price_plan
      lane_owner
      superseded_by_request_id
      supersedes_request_id
      workflow_switch_reason
      workflow_switch {
        ...WorkflowSwitchTypeFragment
      }
      reverse_progress
      no_stock_at_request
      old_product_snapshot {
        ...ProductSnapshotTypeFragment
      }
      new_product_snapshot {
        ...ProductSnapshotTypeFragment
      }
      createdAt
      updatedAt
      intake_return_type_label
      fulfillment_mode
      mpesa_reference
      upgrade_policy_mode
      customer_age_weeks_at_decision
      new_credit_sale_id
      new_credit_sale_activated_at
      topup_confirmed_at
      swap_repair_mpesa_clearance
      inventory_sync
      pending_manual_detach
      pending_detach_inventory_id
      manual_detach_detached_at
      manual_detach_inventory_id
      linked_application_id
    }
    total
    hasMore
    limit
  }
}
Variables
{"opsAssignedTo": "4", "limit": 987}
Response
{
  "data": {
    "returnsOpsQueue": {
      "items": [ReturnsGraphQL],
      "total": 123,
      "hasMore": true,
      "limit": 987
    }
  }
}

returnsOpsTableRowsCursor

Description

Returns requests as ops table rows (batched customer, sale, delivery, loan context) with the same pagination as returnsRequestsCursor

Arguments
Name Description
pagination - CursorPaginationInputType
filters - ReturnsFilterInput
regexFilters - ReturnsFilterInput

Example

Query
query returnsOpsTableRowsCursor(
  $pagination: CursorPaginationInputType,
  $filters: ReturnsFilterInput,
  $regexFilters: ReturnsFilterInput
) {
  returnsOpsTableRowsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      returns_request_id
      customer_id
      sale_id
      request_type
      status
      ticket_id
      return_reason
      return_policy
      submitted_at
      createdAt
      updatedAt
      customer
      products
      sale
      delivery
      notes
      superseded_by_request_id
      supersedes_request_id
      workflow_switch {
        ...ReturnsOpsWorkflowSwitchFragment
      }
      customerDetails {
        ...ReturnsOpsCustomerDetailsFragment
      }
      oldProduct {
        ...ReturnsOpsOldProductFragment
      }
      newProduct {
        ...ReturnsOpsNewProductFragment
      }
      returnInfo {
        ...ReturnsOpsReturnInfoFragment
      }
      creditInformation {
        ...ReturnsOpsCreditInformationFragment
      }
      saleDetails {
        ...ReturnsOpsSaleDetailsFragment
      }
      timeline {
        ...ReturnsOpsTimelineFragment
      }
      notesDetail {
        ...ReturnsOpsNotesFragment
      }
      assignee {
        ...ReturnsOpsAssigneeFragment
      }
      actionedBy {
        ...ReturnsOpsActionedByFragment
      }
      financeEmailSentTo
      swap_repair_mpesa_clearance
      intent_consent_collected
      topup_confirmed_at
      pending_manual_detach
      pending_detach_inventory_id
      manual_detach_detached_at
      manual_detach_inventory_id
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ReturnsFilterInput,
  "regexFilters": ReturnsFilterInput
}
Response
{
  "data": {
    "returnsOpsTableRowsCursor": {
      "data": [ReturnsOpsTableRow],
      "pagination": CursorPaginationMetadata
    }
  }
}

returnsRequest

Description

Get a single returns request by ID

Response

Returns a ReturnsGraphQL

Arguments
Name Description
id - ID!

Example

Query
query returnsRequest($id: ID!) {
  returnsRequest(id: $id) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "returnsRequest": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "ticket_id": "abc123",
      "current_device_id": "abc123",
      "target_device_model": "abc123",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "abc123",
      "cxc_notes": "abc123",
      "submitted_by": "abc123",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 987.65,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 987.65,
      "new_device_deposit": 987.65,
      "new_device_price": 123.45,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": false,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "xyz789",
      "superseded_by_request_id": "abc123",
      "supersedes_request_id": "xyz789",
      "workflow_switch_reason": "xyz789",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": false,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "xyz789",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "xyz789",
      "customer_age_weeks_at_decision": 987,
      "new_credit_sale_id": "4",
      "new_credit_sale_activated_at": "xyz789",
      "topup_confirmed_at": "xyz789",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": true,
      "pending_detach_inventory_id": 4,
      "manual_detach_detached_at": "abc123",
      "manual_detach_inventory_id": 4,
      "linked_application_id": "4"
    }
  }
}

returnsRequestsCount

Description

Get count of returns requests matching filters

Response

Returns a Float!

Arguments
Name Description
filters - ReturnsFilterInput

Example

Query
query returnsRequestsCount($filters: ReturnsFilterInput) {
  returnsRequestsCount(filters: $filters)
}
Variables
{"filters": ReturnsFilterInput}
Response
{"data": {"returnsRequestsCount": 123.45}}

returnsRequestsCursor

Description

Get paginated returns requests using cursor-based pagination

Response

Returns a CursorPaginatedReturns!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - ReturnsFilterInput
regexFilters - ReturnsFilterInput

Example

Query
query returnsRequestsCursor(
  $pagination: CursorPaginationInputType,
  $filters: ReturnsFilterInput,
  $regexFilters: ReturnsFilterInput
) {
  returnsRequestsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      request_type
      status
      customer_id
      sale_id
      ticket_id
      current_device_id
      target_device_model
      return_reason
      customer_notes
      cxc_notes
      submitted_by
      customer {
        ...ResolvedCustomerTypeFragment
      }
      current_device {
        ...ResolvedDeviceTypeFragment
      }
      submitted_by_user {
        ...ResolvedUserTypeFragment
      }
      operations_user {
        ...ResolvedUserTypeFragment
      }
      decisioner_user {
        ...ResolvedUserTypeFragment
      }
      submitted_at
      return_policy
      current_device_balance
      amount_paid_to_date
      current_device_deposit
      new_device_deposit
      new_device_price
      device_allocation_details {
        ...DeviceAllocationDetailsTypeFragment
      }
      operations_details {
        ...OperationsDetailsTypeFragment
      }
      decisioner_details {
        ...DecisionerDetailsTypeFragment
      }
      consent_records {
        ...ConsentRecordTypeFragment
      }
      refund_applicable
      repossession_details {
        ...RepossessionDetailsTypeFragment
      }
      status_history {
        ...StatusHistoryEntryTypeFragment
      }
      notes_history {
        ...ReturnsNoteEntryTypeFragment
      }
      price_plan
      lane_owner
      superseded_by_request_id
      supersedes_request_id
      workflow_switch_reason
      workflow_switch {
        ...WorkflowSwitchTypeFragment
      }
      reverse_progress
      no_stock_at_request
      old_product_snapshot {
        ...ProductSnapshotTypeFragment
      }
      new_product_snapshot {
        ...ProductSnapshotTypeFragment
      }
      createdAt
      updatedAt
      intake_return_type_label
      fulfillment_mode
      mpesa_reference
      upgrade_policy_mode
      customer_age_weeks_at_decision
      new_credit_sale_id
      new_credit_sale_activated_at
      topup_confirmed_at
      swap_repair_mpesa_clearance
      inventory_sync
      pending_manual_detach
      pending_detach_inventory_id
      manual_detach_detached_at
      manual_detach_inventory_id
      linked_application_id
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ReturnsFilterInput,
  "regexFilters": ReturnsFilterInput
}
Response
{
  "data": {
    "returnsRequestsCursor": {
      "data": [ReturnsGraphQL],
      "pagination": CursorPaginationMetadata
    }
  }
}

returnsRequestsOffset

Description

Get paginated returns requests using offset-based pagination

Response

Returns an OffsetPaginatedReturns!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - ReturnsFilterInput
regexFilters - ReturnsFilterInput

Example

Query
query returnsRequestsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: ReturnsFilterInput,
  $regexFilters: ReturnsFilterInput
) {
  returnsRequestsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      request_type
      status
      customer_id
      sale_id
      ticket_id
      current_device_id
      target_device_model
      return_reason
      customer_notes
      cxc_notes
      submitted_by
      customer {
        ...ResolvedCustomerTypeFragment
      }
      current_device {
        ...ResolvedDeviceTypeFragment
      }
      submitted_by_user {
        ...ResolvedUserTypeFragment
      }
      operations_user {
        ...ResolvedUserTypeFragment
      }
      decisioner_user {
        ...ResolvedUserTypeFragment
      }
      submitted_at
      return_policy
      current_device_balance
      amount_paid_to_date
      current_device_deposit
      new_device_deposit
      new_device_price
      device_allocation_details {
        ...DeviceAllocationDetailsTypeFragment
      }
      operations_details {
        ...OperationsDetailsTypeFragment
      }
      decisioner_details {
        ...DecisionerDetailsTypeFragment
      }
      consent_records {
        ...ConsentRecordTypeFragment
      }
      refund_applicable
      repossession_details {
        ...RepossessionDetailsTypeFragment
      }
      status_history {
        ...StatusHistoryEntryTypeFragment
      }
      notes_history {
        ...ReturnsNoteEntryTypeFragment
      }
      price_plan
      lane_owner
      superseded_by_request_id
      supersedes_request_id
      workflow_switch_reason
      workflow_switch {
        ...WorkflowSwitchTypeFragment
      }
      reverse_progress
      no_stock_at_request
      old_product_snapshot {
        ...ProductSnapshotTypeFragment
      }
      new_product_snapshot {
        ...ProductSnapshotTypeFragment
      }
      createdAt
      updatedAt
      intake_return_type_label
      fulfillment_mode
      mpesa_reference
      upgrade_policy_mode
      customer_age_weeks_at_decision
      new_credit_sale_id
      new_credit_sale_activated_at
      topup_confirmed_at
      swap_repair_mpesa_clearance
      inventory_sync
      pending_manual_detach
      pending_detach_inventory_id
      manual_detach_detached_at
      manual_detach_inventory_id
      linked_application_id
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ReturnsFilterInput,
  "regexFilters": ReturnsFilterInput
}
Response
{
  "data": {
    "returnsRequestsOffset": {
      "data": [ReturnsGraphQL],
      "metadata": OffsetPaginationMetadata
    }
  }
}

rolesCursor

Response

Returns a CursorPaginatedRoles!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - RoleFilterInput
regexFilters - RoleFilterInput

Example

Query
query rolesCursor(
  $pagination: CursorPaginationInputType!,
  $filters: RoleFilterInput,
  $regexFilters: RoleFilterInput
) {
  rolesCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      id
      name
      level
      permissions
      description
      canManage
      realm
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": RoleFilterInput,
  "regexFilters": RoleFilterInput
}
Response
{
  "data": {
    "rolesCursor": {
      "data": [RoleObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

rolesOffset

Response

Returns an OffsetPaginatedRoles!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - RoleFilterInput
regexFilters - RoleFilterInput

Example

Query
query rolesOffset(
  $pagination: OffsetPaginationInputType,
  $filters: RoleFilterInput,
  $regexFilters: RoleFilterInput
) {
  rolesOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      id
      name
      level
      permissions
      description
      canManage
      realm
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": RoleFilterInput,
  "regexFilters": RoleFilterInput
}
Response
{
  "data": {
    "rolesOffset": {
      "data": [RoleObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

sale

Response

Returns a SalesObjectType

Arguments
Name Description
id - ID!

Example

Query
query sale($id: ID!) {
  sale(id: $id) {
    sale_id
    sale_date
    order_id
    customer_id
    sale_agent_id
    submitting_agent_id
    sfm_id
    price_plan_id
    pricePlan {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    inventory_id
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    payment_type
    payment_status
    normal_high_deposit
    final_sale_price
    upfront_payment
    gross_loan_amount
    marketplace_fee
    seller_payout
    invoice_number
    status
    return_date
    created_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    loan_contract {
      contract_id
      loan_id
      sale_id
      customer_id
      customer {
        ...RawCustomersDtoFragment
      }
      opening_date
      duration
      upfront_payment
      deposit
      repayment_type
      gross_loan_amount
      net_loan_amount
      interest_rate
      repayment_rate
      interest_calculation_method
      payment_allocation_method
      disbursement_date
      maturity_date
      first_payment_due_date
      grace_period_days
      penalty_rate_per_day
      is_restructured
      original_contract_id
      loan_product_code
      loan_status_override
      early_payoff_discounts {
        ...LoanEarlyPayoffDiscountTypeFragment
      }
      metadata
      created_at
      updated_at
      installments {
        ...LoanInstallmentDtoFragment
      }
      overdueInstallments {
        ...LoanInstallmentDtoFragment
      }
      nextDueInstallment {
        ...LoanInstallmentDtoFragment
      }
      ledgerEntries {
        ...LoanLedgerDtoFragment
      }
      delinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      paymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      latest_ledger_id
      grace_period_status
      grace_period_category
      grace_period_credit_expiry
      grace_period_last_trigger_source
      returned_date
      is_lost
      latest_ledger {
        ...LoanLedgerDtoFragment
      }
      contract {
        ...LoanContractDtoFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      commission_rule_id
      commission_override_id
      is_override
    }
    cash_price
    reporting {
      loan_id
      business_model
      is_3p_sale
      partner_name
      credit_check_done
      cash_price
      loan_price
      loan_period
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "sale": {
      "sale_id": 4,
      "sale_date": "2007-12-03T10:15:30Z",
      "order_id": "4",
      "customer_id": "4",
      "sale_agent_id": "4",
      "submitting_agent_id": "4",
      "sfm_id": "4",
      "price_plan_id": 4,
      "pricePlan": PricePlanObjectType,
      "inventory_id": "4",
      "inventory": InventoryObjectType,
      "payment_type": "REPAIR",
      "payment_status": "UNPAID",
      "normal_high_deposit": "NORMAL",
      "final_sale_price": 987.65,
      "upfront_payment": 987.65,
      "gross_loan_amount": 987.65,
      "marketplace_fee": 987.65,
      "seller_payout": 123.45,
      "invoice_number": "xyz789",
      "status": "ACTIVE",
      "return_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "order": OrderObjectType,
      "loan_contract": LoanContractDto,
      "commission": CommissionSnapshotType,
      "cash_price": 123.45,
      "reporting": SaleReportingType
    }
  }
}

sales

Response

Returns [SalesObjectType!]

Arguments
Name Description
filters - SalesFilterInput

Example

Query
query sales($filters: SalesFilterInput) {
  sales(filters: $filters) {
    sale_id
    sale_date
    order_id
    customer_id
    sale_agent_id
    submitting_agent_id
    sfm_id
    price_plan_id
    pricePlan {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    inventory_id
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    payment_type
    payment_status
    normal_high_deposit
    final_sale_price
    upfront_payment
    gross_loan_amount
    marketplace_fee
    seller_payout
    invoice_number
    status
    return_date
    created_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    loan_contract {
      contract_id
      loan_id
      sale_id
      customer_id
      customer {
        ...RawCustomersDtoFragment
      }
      opening_date
      duration
      upfront_payment
      deposit
      repayment_type
      gross_loan_amount
      net_loan_amount
      interest_rate
      repayment_rate
      interest_calculation_method
      payment_allocation_method
      disbursement_date
      maturity_date
      first_payment_due_date
      grace_period_days
      penalty_rate_per_day
      is_restructured
      original_contract_id
      loan_product_code
      loan_status_override
      early_payoff_discounts {
        ...LoanEarlyPayoffDiscountTypeFragment
      }
      metadata
      created_at
      updated_at
      installments {
        ...LoanInstallmentDtoFragment
      }
      overdueInstallments {
        ...LoanInstallmentDtoFragment
      }
      nextDueInstallment {
        ...LoanInstallmentDtoFragment
      }
      ledgerEntries {
        ...LoanLedgerDtoFragment
      }
      delinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      paymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      latest_ledger_id
      grace_period_status
      grace_period_category
      grace_period_credit_expiry
      grace_period_last_trigger_source
      returned_date
      is_lost
      latest_ledger {
        ...LoanLedgerDtoFragment
      }
      contract {
        ...LoanContractDtoFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      commission_rule_id
      commission_override_id
      is_override
    }
    cash_price
    reporting {
      loan_id
      business_model
      is_3p_sale
      partner_name
      credit_check_done
      cash_price
      loan_price
      loan_period
    }
  }
}
Variables
{"filters": SalesFilterInput}
Response
{
  "data": {
    "sales": [
      {
        "sale_id": 4,
        "sale_date": "2007-12-03T10:15:30Z",
        "order_id": 4,
        "customer_id": 4,
        "sale_agent_id": "4",
        "submitting_agent_id": 4,
        "sfm_id": 4,
        "price_plan_id": 4,
        "pricePlan": PricePlanObjectType,
        "inventory_id": 4,
        "inventory": InventoryObjectType,
        "payment_type": "REPAIR",
        "payment_status": "UNPAID",
        "normal_high_deposit": "NORMAL",
        "final_sale_price": 987.65,
        "upfront_payment": 987.65,
        "gross_loan_amount": 123.45,
        "marketplace_fee": 123.45,
        "seller_payout": 123.45,
        "invoice_number": "abc123",
        "status": "ACTIVE",
        "return_date": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "metadata": {},
        "customer": RawCustomersDto,
        "order": OrderObjectType,
        "loan_contract": LoanContractDto,
        "commission": CommissionSnapshotType,
        "cash_price": 987.65,
        "reporting": SaleReportingType
      }
    ]
  }
}

salesCursor

Response

Returns a CursorPaginatedSales!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - SalesFilterInput
regexFilters - SalesFilterInput

Example

Query
query salesCursor(
  $pagination: CursorPaginationInputType,
  $filters: SalesFilterInput,
  $regexFilters: SalesFilterInput
) {
  salesCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": SalesFilterInput,
  "regexFilters": SalesFilterInput
}
Response
{
  "data": {
    "salesCursor": {
      "data": [SalesObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

salesOffset

Response

Returns an OffsetPaginatedSales!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - SalesFilterInput
regexFilters - SalesFilterInput

Example

Query
query salesOffset(
  $pagination: OffsetPaginationInputType,
  $filters: SalesFilterInput,
  $regexFilters: SalesFilterInput
) {
  salesOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": SalesFilterInput,
  "regexFilters": SalesFilterInput
}
Response
{
  "data": {
    "salesOffset": {
      "data": [SalesObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

searchProducts

Response

Returns [ProductObjectType!]!

Arguments
Name Description
query - String!

Example

Query
query searchProducts($query: String!) {
  searchProducts(query: $query) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"query": "xyz789"}
Response
{
  "data": {
    "searchProducts": [
      {
        "product_id": "4",
        "name": "abc123",
        "slug": "xyz789",
        "brand": "xyz789",
        "model": "abc123",
        "category_id": "abc123",
        "category": CategoryObjectType,
        "description": "xyz789",
        "long_description": "abc123",
        "base_specifications": {},
        "primary_image_url": "abc123",
        "images": ["xyz789"],
        "video_url": "abc123",
        "meta_title": "xyz789",
        "meta_description": "abc123",
        "keywords": ["xyz789"],
        "is_active": true,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "abc123",
        "approved_by": "abc123",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

searchSellers

Response

Returns [SellerObjectType!]!

Arguments
Name Description
query - String!

Example

Query
query searchSellers($query: String!) {
  searchSellers(query: $query) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"query": "abc123"}
Response
{
  "data": {
    "searchSellers": [
      {
        "seller_id": "4",
        "commission_type_id": "abc123",
        "tier_id": "xyz789",
        "seller_type": "INTERNAL",
        "payment_details": {},
        "capabilities": {},
        "performance_metrics": {},
        "overall_rating": 987.65,
        "total_reviews": 123,
        "total_sales": 123,
        "total_orders_365_days": 123,
        "badges": ["xyz789"],
        "suspension_reason": "abc123",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "joined_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "partner_profile_id": "xyz789",
        "platform_owner": true,
        "partner_profile": PartnerProfileObjectType
      }
    ]
  }
}

seller

Response

Returns a SellerObjectType!

Arguments
Name Description
id - ID!

Example

Query
query seller($id: ID!) {
  seller(id: $id) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "seller": {
      "seller_id": "4",
      "commission_type_id": "abc123",
      "tier_id": "abc123",
      "seller_type": "INTERNAL",
      "payment_details": {},
      "capabilities": {},
      "performance_metrics": {},
      "overall_rating": 987.65,
      "total_reviews": 987,
      "total_sales": 987,
      "total_orders_365_days": 987,
      "badges": ["xyz789"],
      "suspension_reason": "xyz789",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "joined_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "partner_profile_id": "xyz789",
      "platform_owner": false,
      "partner_profile": PartnerProfileObjectType
    }
  }
}

sellerByUserId

Response

Returns a SellerObjectType

Arguments
Name Description
userId - ID!

Example

Query
query sellerByUserId($userId: ID!) {
  sellerByUserId(userId: $userId) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"userId": 4}
Response
{
  "data": {
    "sellerByUserId": {
      "seller_id": "4",
      "commission_type_id": "abc123",
      "tier_id": "xyz789",
      "seller_type": "INTERNAL",
      "payment_details": {},
      "capabilities": {},
      "performance_metrics": {},
      "overall_rating": 987.65,
      "total_reviews": 123,
      "total_sales": 123,
      "total_orders_365_days": 987,
      "badges": ["xyz789"],
      "suspension_reason": "abc123",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "joined_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "partner_profile_id": "abc123",
      "platform_owner": false,
      "partner_profile": PartnerProfileObjectType
    }
  }
}

sellerCatalog

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
id - ID!

Example

Query
query sellerCatalog($id: ID!) {
  sellerCatalog(id: $id) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "sellerCatalog": {
      "seller_catalog_id": 4,
      "seller_id": "xyz789",
      "sku_id": "xyz789",
      "cost_price": 987.65,
      "retail_price": 123.45,
      "currency": "xyz789",
      "stock_on_hand": 987,
      "reserved_stock": 123,
      "is_active": true,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 987,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

sellerCatalogs

Response

Returns [SellerCatalogObjectType!]!

Arguments
Name Description
filter - SellerCatalogFilterInput

Example

Query
query sellerCatalogs($filter: SellerCatalogFilterInput) {
  sellerCatalogs(filter: $filter) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"filter": SellerCatalogFilterInput}
Response
{
  "data": {
    "sellerCatalogs": [
      {
        "seller_catalog_id": 4,
        "seller_id": "xyz789",
        "sku_id": "xyz789",
        "cost_price": 987.65,
        "retail_price": 123.45,
        "currency": "xyz789",
        "stock_on_hand": 987,
        "reserved_stock": 987,
        "is_active": true,
        "listed_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "available_stock": 123,
        "seller": SellerObjectType,
        "sku": SkuObjectType,
        "product": ProductObjectType
      }
    ]
  }
}

sellerCatalogsWithCursorPagination

Response

Returns a CursorPaginatedSellerCatalog!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - SellerCatalogFilterInput
regexFilters - SellerCatalogFilterInput

Example

Query
query sellerCatalogsWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: SellerCatalogFilterInput,
  $regexFilters: SellerCatalogFilterInput
) {
  sellerCatalogsWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": SellerCatalogFilterInput,
  "regexFilters": SellerCatalogFilterInput
}
Response
{
  "data": {
    "sellerCatalogsWithCursorPagination": {
      "data": [SellerCatalogObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

sellerCatalogsWithOffsetPagination

Response

Returns an OffsetPaginatedSellerCatalog!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - SellerCatalogFilterInput
regexFilters - SellerCatalogFilterInput

Example

Query
query sellerCatalogsWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: SellerCatalogFilterInput,
  $regexFilters: SellerCatalogFilterInput
) {
  sellerCatalogsWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": SellerCatalogFilterInput,
  "regexFilters": SellerCatalogFilterInput
}
Response
{
  "data": {
    "sellerCatalogsWithOffsetPagination": {
      "data": [SellerCatalogObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

sellerQuote

Response

Returns a SellerQuoteType!

Arguments
Name Description
input - SellerQuoteInput!

Example

Query
query sellerQuote($input: SellerQuoteInput!) {
  sellerQuote(input: $input) {
    cash_price
    available_plans {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      is_override
      commission_override_id
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
    seller_id
    calculated_at
  }
}
Variables
{"input": SellerQuoteInput}
Response
{
  "data": {
    "sellerQuote": {
      "cash_price": 987.65,
      "available_plans": [PricingCalculationType],
      "commission": CommissionCalculationType,
      "seller_id": "abc123",
      "calculated_at": "2007-12-03T10:15:30Z"
    }
  }
}

sellerTier

Response

Returns a SellerTierObjectType!

Arguments
Name Description
id - String!

Example

Query
query sellerTier($id: String!) {
  sellerTier(id: $id) {
    id
    name
    description
    priority
    is_active
    created_at
    updated_at
    price_plans {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "xyz789"}
Response
{
  "data": {
    "sellerTier": {
      "id": 4,
      "name": "abc123",
      "description": "xyz789",
      "priority": 987,
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "price_plans": [PricePlanObjectType]
    }
  }
}

sellerTierByFilter

Response

Returns a SellerTierObjectType

Arguments
Name Description
filters - SellerTierFilterInput

Example

Query
query sellerTierByFilter($filters: SellerTierFilterInput) {
  sellerTierByFilter(filters: $filters) {
    id
    name
    description
    priority
    is_active
    created_at
    updated_at
    price_plans {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": SellerTierFilterInput}
Response
{
  "data": {
    "sellerTierByFilter": {
      "id": 4,
      "name": "abc123",
      "description": "xyz789",
      "priority": 123,
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "price_plans": [PricePlanObjectType]
    }
  }
}

sellerTiers

Response

Returns [SellerTierObjectType!]!

Arguments
Name Description
filters - SellerTierFilterInput

Example

Query
query sellerTiers($filters: SellerTierFilterInput) {
  sellerTiers(filters: $filters) {
    id
    name
    description
    priority
    is_active
    created_at
    updated_at
    price_plans {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"filters": SellerTierFilterInput}
Response
{
  "data": {
    "sellerTiers": [
      {
        "id": "4",
        "name": "xyz789",
        "description": "abc123",
        "priority": 987,
        "is_active": true,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "price_plans": [PricePlanObjectType]
      }
    ]
  }
}

sellerTiersCount

Response

Returns a Float!

Arguments
Name Description
filters - SellerTierFilterInput

Example

Query
query sellerTiersCount($filters: SellerTierFilterInput) {
  sellerTiersCount(filters: $filters)
}
Variables
{"filters": SellerTierFilterInput}
Response
{"data": {"sellerTiersCount": 987.65}}

sellerTiersCursorPaginated

Response

Returns a CursorPaginatedSellerTiers!

Arguments
Name Description
pagination - CursorPaginationInputType
filters - SellerTierFilterInput
regexFilters - SellerTierFilterInput

Example

Query
query sellerTiersCursorPaginated(
  $pagination: CursorPaginationInputType,
  $filters: SellerTierFilterInput,
  $regexFilters: SellerTierFilterInput
) {
  sellerTiersCursorPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": SellerTierFilterInput,
  "regexFilters": SellerTierFilterInput
}
Response
{
  "data": {
    "sellerTiersCursorPaginated": {
      "data": [SellerTierObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

sellerTiersOffsetPaginated

Response

Returns an OffsetPaginatedSellerTiers!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - SellerTierFilterInput
regexFilters - SellerTierFilterInput

Example

Query
query sellerTiersOffsetPaginated(
  $pagination: OffsetPaginationInputType,
  $filters: SellerTierFilterInput,
  $regexFilters: SellerTierFilterInput
) {
  sellerTiersOffsetPaginated(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": SellerTierFilterInput,
  "regexFilters": SellerTierFilterInput
}
Response
{
  "data": {
    "sellerTiersOffsetPaginated": {
      "data": [SellerTierObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

sellers

Response

Returns [SellerObjectType!]!

Arguments
Name Description
filter - SellerFilterInput

Example

Query
query sellers($filter: SellerFilterInput) {
  sellers(filter: $filter) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"filter": SellerFilterInput}
Response
{
  "data": {
    "sellers": [
      {
        "seller_id": "4",
        "commission_type_id": "abc123",
        "tier_id": "abc123",
        "seller_type": "INTERNAL",
        "payment_details": {},
        "capabilities": {},
        "performance_metrics": {},
        "overall_rating": 123.45,
        "total_reviews": 987,
        "total_sales": 987,
        "total_orders_365_days": 987,
        "badges": ["abc123"],
        "suspension_reason": "xyz789",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "joined_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "partner_profile_id": "abc123",
        "platform_owner": false,
        "partner_profile": PartnerProfileObjectType
      }
    ]
  }
}

sellersWithCursorPagination

Response

Returns a CursorPaginatedSellers!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - SellerFilterInput
regexFilters - SellerFilterInput

Example

Query
query sellersWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: SellerFilterInput,
  $regexFilters: SellerFilterInput
) {
  sellersWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": SellerFilterInput,
  "regexFilters": SellerFilterInput
}
Response
{
  "data": {
    "sellersWithCursorPagination": {
      "data": [SellerObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

sellersWithOffsetPagination

Response

Returns an OffsetPaginatedSellers!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - SellerFilterInput
regexFilters - SellerFilterInput

Example

Query
query sellersWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: SellerFilterInput,
  $regexFilters: SellerFilterInput
) {
  sellersWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": SellerFilterInput,
  "regexFilters": SellerFilterInput
}
Response
{
  "data": {
    "sellersWithOffsetPagination": {
      "data": [SellerObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

sku

Response

Returns a SkuObjectType!

Arguments
Name Description
id - ID!

Example

Query
query sku($id: ID!) {
  sku(id: $id) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "sku": {
      "sku_id": "4",
      "product_id": "xyz789",
      "condition_id": "abc123",
      "parent_sku_id": "abc123",
      "level": 987,
      "level_attribute_key": "abc123",
      "level_attribute_value": "xyz789",
      "sku_code": "xyz789",
      "name": "xyz789",
      "attributes": {},
      "variant_specifications": {},
      "msrp_price": 123.45,
      "min_seller_price": 987.65,
      "max_seller_price": 123.45,
      "suggested_retail_price": 123.45,
      "effective_price": 123.45,
      "images": ["abc123"],
      "weight_grams": 123,
      "dimensions_mm": "abc123",
      "is_active": false,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "abc123",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "product": ProductObjectType,
      "condition": ConditionObjectType
    }
  }
}

skuAncestors

Response

Returns [SkuObjectType!]!

Arguments
Name Description
id - ID!

Example

Query
query skuAncestors($id: ID!) {
  skuAncestors(id: $id) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "skuAncestors": [
      {
        "sku_id": 4,
        "product_id": "abc123",
        "condition_id": "xyz789",
        "parent_sku_id": "abc123",
        "level": 987,
        "level_attribute_key": "abc123",
        "level_attribute_value": "abc123",
        "sku_code": "abc123",
        "name": "abc123",
        "attributes": {},
        "variant_specifications": {},
        "msrp_price": 123.45,
        "min_seller_price": 123.45,
        "max_seller_price": 123.45,
        "suggested_retail_price": 987.65,
        "effective_price": 987.65,
        "images": ["abc123"],
        "weight_grams": 987,
        "dimensions_mm": "xyz789",
        "is_active": false,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "abc123",
        "approved_by": "abc123",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "product": ProductObjectType,
        "condition": ConditionObjectType
      }
    ]
  }
}

skuByCode

Response

Returns a SkuObjectType

Arguments
Name Description
skuCode - String!

Example

Query
query skuByCode($skuCode: String!) {
  skuByCode(skuCode: $skuCode) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"skuCode": "abc123"}
Response
{
  "data": {
    "skuByCode": {
      "sku_id": 4,
      "product_id": "abc123",
      "condition_id": "abc123",
      "parent_sku_id": "xyz789",
      "level": 123,
      "level_attribute_key": "abc123",
      "level_attribute_value": "abc123",
      "sku_code": "abc123",
      "name": "xyz789",
      "attributes": {},
      "variant_specifications": {},
      "msrp_price": 123.45,
      "min_seller_price": 123.45,
      "max_seller_price": 987.65,
      "suggested_retail_price": 987.65,
      "effective_price": 123.45,
      "images": ["xyz789"],
      "weight_grams": 123,
      "dimensions_mm": "abc123",
      "is_active": true,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "xyz789",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "product": ProductObjectType,
      "condition": ConditionObjectType
    }
  }
}

skuEffectivePrice

Response

Returns a Float!

Arguments
Name Description
id - ID!

Example

Query
query skuEffectivePrice($id: ID!) {
  skuEffectivePrice(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"skuEffectivePrice": 987.65}}

skuTree

Response

Returns [SkuObjectType!]!

Arguments
Name Description
id - ID!

Example

Query
query skuTree($id: ID!) {
  skuTree(id: $id) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "skuTree": [
      {
        "sku_id": "4",
        "product_id": "xyz789",
        "condition_id": "xyz789",
        "parent_sku_id": "abc123",
        "level": 987,
        "level_attribute_key": "abc123",
        "level_attribute_value": "abc123",
        "sku_code": "xyz789",
        "name": "xyz789",
        "attributes": {},
        "variant_specifications": {},
        "msrp_price": 987.65,
        "min_seller_price": 987.65,
        "max_seller_price": 123.45,
        "suggested_retail_price": 123.45,
        "effective_price": 123.45,
        "images": ["xyz789"],
        "weight_grams": 987,
        "dimensions_mm": "abc123",
        "is_active": false,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "xyz789",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "product": ProductObjectType,
        "condition": ConditionObjectType
      }
    ]
  }
}

skus

Response

Returns [SkuObjectType!]!

Arguments
Name Description
filter - SkuFilterInput

Example

Query
query skus($filter: SkuFilterInput) {
  skus(filter: $filter) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"filter": SkuFilterInput}
Response
{
  "data": {
    "skus": [
      {
        "sku_id": 4,
        "product_id": "xyz789",
        "condition_id": "abc123",
        "parent_sku_id": "xyz789",
        "level": 123,
        "level_attribute_key": "abc123",
        "level_attribute_value": "abc123",
        "sku_code": "xyz789",
        "name": "abc123",
        "attributes": {},
        "variant_specifications": {},
        "msrp_price": 987.65,
        "min_seller_price": 987.65,
        "max_seller_price": 123.45,
        "suggested_retail_price": 987.65,
        "effective_price": 987.65,
        "images": ["xyz789"],
        "weight_grams": 987,
        "dimensions_mm": "abc123",
        "is_active": true,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "xyz789",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "product": ProductObjectType,
        "condition": ConditionObjectType
      }
    ]
  }
}

skusByProduct

Response

Returns [SkuObjectType!]!

Arguments
Name Description
productId - ID!

Example

Query
query skusByProduct($productId: ID!) {
  skusByProduct(productId: $productId) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"productId": 4}
Response
{
  "data": {
    "skusByProduct": [
      {
        "sku_id": 4,
        "product_id": "xyz789",
        "condition_id": "xyz789",
        "parent_sku_id": "xyz789",
        "level": 123,
        "level_attribute_key": "abc123",
        "level_attribute_value": "abc123",
        "sku_code": "xyz789",
        "name": "xyz789",
        "attributes": {},
        "variant_specifications": {},
        "msrp_price": 123.45,
        "min_seller_price": 987.65,
        "max_seller_price": 123.45,
        "suggested_retail_price": 123.45,
        "effective_price": 123.45,
        "images": ["abc123"],
        "weight_grams": 987,
        "dimensions_mm": "xyz789",
        "is_active": true,
        "approval_status": "APPROVED",
        "submitted_by_seller_id": "abc123",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "rejection_reason": "abc123",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "product": ProductObjectType,
        "condition": ConditionObjectType
      }
    ]
  }
}

skusCount

Response

Returns a Float!

Arguments
Name Description
filters - SkuFilterInput

Example

Query
query skusCount($filters: SkuFilterInput) {
  skusCount(filters: $filters)
}
Variables
{"filters": SkuFilterInput}
Response
{"data": {"skusCount": 123.45}}

skusWithCursorPagination

Response

Returns a CursorPaginatedSkus!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - SkuFilterInput
regexFilters - SkuFilterInput

Example

Query
query skusWithCursorPagination(
  $pagination: CursorPaginationInputType!,
  $filters: SkuFilterInput,
  $regexFilters: SkuFilterInput
) {
  skusWithCursorPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": SkuFilterInput,
  "regexFilters": SkuFilterInput
}
Response
{
  "data": {
    "skusWithCursorPagination": {
      "data": [SkuObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

skusWithOffsetPagination

Response

Returns an OffsetPaginatedSkus!

Arguments
Name Description
pagination - OffsetPaginationInputType!
filters - SkuFilterInput
regexFilters - SkuFilterInput

Example

Query
query skusWithOffsetPagination(
  $pagination: OffsetPaginationInputType!,
  $filters: SkuFilterInput,
  $regexFilters: SkuFilterInput
) {
  skusWithOffsetPagination(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": SkuFilterInput,
  "regexFilters": SkuFilterInput
}
Response
{
  "data": {
    "skusWithOffsetPagination": {
      "data": [SkuObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

taxVerificationTransaction

Description

Get a single tax verification transaction by ID

Response

Returns a TaxVerificationTransactionDto

Arguments
Name Description
id - ID!

Example

Query
query taxVerificationTransaction($id: ID!) {
  taxVerificationTransaction(id: $id) {
    id
    provider
    full_name
    identification_type
    pin_number
    expiration_date
    issuance_date
    phone
    gender
    date_of_birth
    place_of_birth
    kra_pin
    citizenship
    is_pin_active
    email
    country
    record_status
    createdAt
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "taxVerificationTransaction": {
      "id": 4,
      "provider": "BOT",
      "full_name": "xyz789",
      "identification_type": "abc123",
      "pin_number": "abc123",
      "expiration_date": "abc123",
      "issuance_date": "xyz789",
      "phone": "xyz789",
      "gender": "xyz789",
      "date_of_birth": "abc123",
      "place_of_birth": "xyz789",
      "kra_pin": "abc123",
      "citizenship": "abc123",
      "is_pin_active": 123,
      "email": "xyz789",
      "country": "abc123",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

taxVerificationTransactionByFilters

Description

Get a single tax verification transaction by filters

Response

Returns a TaxVerificationTransactionDto

Arguments
Name Description
filters - TaxVerificationTransactionFilterInput!

Example

Query
query taxVerificationTransactionByFilters($filters: TaxVerificationTransactionFilterInput!) {
  taxVerificationTransactionByFilters(filters: $filters) {
    id
    provider
    full_name
    identification_type
    pin_number
    expiration_date
    issuance_date
    phone
    gender
    date_of_birth
    place_of_birth
    kra_pin
    citizenship
    is_pin_active
    email
    country
    record_status
    createdAt
  }
}
Variables
{"filters": TaxVerificationTransactionFilterInput}
Response
{
  "data": {
    "taxVerificationTransactionByFilters": {
      "id": 4,
      "provider": "BOT",
      "full_name": "abc123",
      "identification_type": "xyz789",
      "pin_number": "xyz789",
      "expiration_date": "xyz789",
      "issuance_date": "xyz789",
      "phone": "xyz789",
      "gender": "xyz789",
      "date_of_birth": "abc123",
      "place_of_birth": "abc123",
      "kra_pin": "abc123",
      "citizenship": "abc123",
      "is_pin_active": 987,
      "email": "abc123",
      "country": "abc123",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

taxVerificationTransactionCount

Description

Get count of tax verification transactions with optional filters

Response

Returns a Float!

Arguments
Name Description
filters - TaxVerificationTransactionFilterInput

Example

Query
query taxVerificationTransactionCount($filters: TaxVerificationTransactionFilterInput) {
  taxVerificationTransactionCount(filters: $filters)
}
Variables
{"filters": TaxVerificationTransactionFilterInput}
Response
{"data": {"taxVerificationTransactionCount": 987.65}}

taxVerificationTransactionsCursor

Description

Get paginated tax verification transactions using cursor-based pagination

Example

Query
query taxVerificationTransactionsCursor(
  $pagination: CursorPaginationInputType,
  $filters: TaxVerificationTransactionFilterInput,
  $regexFilters: TaxVerificationTransactionFilterInput
) {
  taxVerificationTransactionsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      provider
      full_name
      identification_type
      pin_number
      expiration_date
      issuance_date
      phone
      gender
      date_of_birth
      place_of_birth
      kra_pin
      citizenship
      is_pin_active
      email
      country
      record_status
      createdAt
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": TaxVerificationTransactionFilterInput,
  "regexFilters": TaxVerificationTransactionFilterInput
}
Response
{
  "data": {
    "taxVerificationTransactionsCursor": {
      "data": [TaxVerificationTransactionDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

taxVerificationTransactionsOffset

Description

Get paginated tax verification transactions using offset-based pagination

Example

Query
query taxVerificationTransactionsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: TaxVerificationTransactionFilterInput,
  $regexFilters: TaxVerificationTransactionFilterInput
) {
  taxVerificationTransactionsOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      id
      provider
      full_name
      identification_type
      pin_number
      expiration_date
      issuance_date
      phone
      gender
      date_of_birth
      place_of_birth
      kra_pin
      citizenship
      is_pin_active
      email
      country
      record_status
      createdAt
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": TaxVerificationTransactionFilterInput,
  "regexFilters": TaxVerificationTransactionFilterInput
}
Response
{
  "data": {
    "taxVerificationTransactionsOffset": {
      "data": [TaxVerificationTransactionDto],
      "metadata": OffsetPaginationMetadata
    }
  }
}

technicianRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query technicianRepairs {
  technicianRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "technicianRepairs": [
      {
        "repair_id": 4,
        "repair_display_id": "abc123",
        "requires_technician": false,
        "inventory_id": "xyz789",
        "customer_id": "abc123",
        "original_sale_id": "abc123",
        "provider_seller_id": "xyz789",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": false,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "abc123",
        "customer_complaint": "xyz789",
        "hq_diagnostic_notes": "xyz789",
        "billing_type": "WARRANTY",
        "quoted_price": 123.45,
        "spares_cost": 987.65,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

territory_module

Description

Access territory module operations

Response

Returns a TerritoryModuleNamespace!

Example

Query
query territory_module {
  territory_module {
    geography {
      countries {
        ...CountryObjectTypeFragment
      }
      country {
        ...CountryObjectTypeFragment
      }
      countryByFilter {
        ...CountryObjectTypeFragment
      }
      regions {
        ...RegionObjectTypeFragment
      }
      regionByIsocode {
        ...RegionObjectTypeFragment
      }
      region {
        ...RegionObjectTypeFragment
      }
      districts {
        ...DistrictObjectTypeFragment
      }
      district {
        ...DistrictObjectTypeFragment
      }
      wards {
        ...WardObjectTypeFragment
      }
      zones {
        ...ZoneObjectTypeFragment
      }
      zone {
        ...ZoneObjectTypeFragment
      }
      zonesByCoordinates {
        ...ZoneObjectTypeFragment
      }
      ward {
        ...WardObjectTypeFragment
      }
      hierarchyPath {
        ...HierarchyPathFragment
      }
      tree {
        ...TerritoryTreeNodeFragment
      }
      countriesCursor {
        ...CursorPaginatedCountriesFragment
      }
      regionsCursor {
        ...CursorPaginatedRegionsFragment
      }
      districtsCursor {
        ...CursorPaginatedDistrictsFragment
      }
      wardsCursor {
        ...CursorPaginatedWardsFragment
      }
      updateRegion {
        ...RegionObjectTypeFragment
      }
      updateZone {
        ...ZoneObjectTypeFragment
      }
      createZone {
        ...ZoneObjectTypeFragment
      }
      toggleRegionInZone {
        ...RegionObjectTypeFragment
      }
    }
    territory {
      list {
        ...TerritoryObjectTypeFragment
      }
      get {
        ...TerritoryObjectTypeFragment
      }
      byRegion {
        ...TerritoryObjectTypeFragment
      }
      byLevel {
        ...TerritoryObjectTypeFragment
      }
      create {
        ...TerritoryObjectTypeFragment
      }
      update {
        ...TerritoryObjectTypeFragment
      }
      deactivate {
        ...TerritoryObjectTypeFragment
      }
      addWards {
        ...TerritoryObjectTypeFragment
      }
      removeWards {
        ...TerritoryObjectTypeFragment
      }
      addZones {
        ...TerritoryObjectTypeFragment
      }
      removeZones {
        ...TerritoryObjectTypeFragment
      }
    }
    territoryAssignment {
      entityTerritories {
        ...TerritoryAssignmentObjectTypeFragment
      }
      territoryEntities {
        ...TerritoryAssignmentObjectTypeFragment
      }
      history {
        ...TerritoryAssignmentObjectTypeFragment
      }
      list {
        ...TerritoryAssignmentObjectTypeFragment
      }
      assign {
        ...TerritoryAssignmentObjectTypeFragment
      }
      unassign {
        ...TerritoryAssignmentObjectTypeFragment
      }
      transfer {
        ...TerritoryTransferResultTypeFragment
      }
    }
    territoryCoverage {
      forTerritory {
        ...TerritoryCoverageObjectTypeFragment
      }
      flagged {
        ...TerritoryCoverageObjectTypeFragment
      }
      gaps {
        ...TerritoryCoverageObjectTypeFragment
      }
      overlaps {
        ...TerritoryCoverageObjectTypeFragment
      }
      resolve {
        ...TerritoryCoverageObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "territory_module": {
      "geography": GeographyNamespace,
      "territory": TerritoryNamespace,
      "territoryAssignment": TerritoryAssignmentNamespace,
      "territoryCoverage": TerritoryCoverageNamespace
    }
  }
}

topDiscountedItems

Response

Returns [FlashSaleItemObjectType!]!

Arguments
Name Description
limit - Float! Default = 10

Example

Query
query topDiscountedItems($limit: Float!) {
  topDiscountedItems(limit: $limit) {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Variables
{"limit": 10}
Response
{
  "data": {
    "topDiscountedItems": [
      {
        "flash_sale_item_id": "4",
        "flash_sale_id": "abc123",
        "seller_catalog_id": "abc123",
        "product_id": "xyz789",
        "sku_id": "xyz789",
        "original_price": 123.45,
        "flash_sale_price": 123.45,
        "discount_percentage": 123.45,
        "stock_allocated": 123,
        "stock_sold": 987,
        "stock_remaining": 123,
        "max_per_customer": 987,
        "display_priority": 987,
        "is_featured": true,
        "badge_text": "abc123",
        "created_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

topRatedSellers

Response

Returns [SellerObjectType!]!

Arguments
Name Description
limit - Float! Default = 10

Example

Query
query topRatedSellers($limit: Float!) {
  topRatedSellers(limit: $limit) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"limit": 10}
Response
{
  "data": {
    "topRatedSellers": [
      {
        "seller_id": "4",
        "commission_type_id": "xyz789",
        "tier_id": "abc123",
        "seller_type": "INTERNAL",
        "payment_details": {},
        "capabilities": {},
        "performance_metrics": {},
        "overall_rating": 123.45,
        "total_reviews": 123,
        "total_sales": 987,
        "total_orders_365_days": 987,
        "badges": ["abc123"],
        "suspension_reason": "xyz789",
        "approved_by": "xyz789",
        "approved_at": "2007-12-03T10:15:30Z",
        "joined_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "partner_profile_id": "abc123",
        "platform_owner": true,
        "partner_profile": PartnerProfileObjectType
      }
    ]
  }
}

upcomingFlashSales

Response

Returns [FlashSaleObjectType!]!

Example

Query
query upcomingFlashSales {
  upcomingFlashSales {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Response
{
  "data": {
    "upcomingFlashSales": [
      {
        "flash_sale_id": 4,
        "title": "abc123",
        "slug": "xyz789",
        "description": "abc123",
        "start_date": "2007-12-03T10:15:30Z",
        "end_date": "2007-12-03T10:15:30Z",
        "status": "SCHEDULED",
        "max_quantity": 123,
        "sold_quantity": 123,
        "min_discount_percentage": 987.65,
        "is_featured": true,
        "banner_image": "xyz789",
        "icon_url": "abc123",
        "countdown_display": false,
        "priority": 123,
        "participating_sellers": ["abc123"],
        "performance_metrics": {},
        "meta_title": "xyz789",
        "meta_description": "xyz789",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

urgentRepairs

Response

Returns [RepairObjectType!]!

Example

Query
query urgentRepairs {
  urgentRepairs {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "urgentRepairs": [
      {
        "repair_id": "4",
        "repair_display_id": "abc123",
        "requires_technician": false,
        "inventory_id": "abc123",
        "customer_id": "abc123",
        "original_sale_id": "xyz789",
        "provider_seller_id": "xyz789",
        "location_status": "FRONT_DESK",
        "status": "PENDING",
        "priority": "LOW",
        "is_left_at_shop": false,
        "intake_details": {},
        "outtake_details": {},
        "security": {},
        "issue_tag": "xyz789",
        "customer_complaint": "abc123",
        "hq_diagnostic_notes": "abc123",
        "billing_type": "WARRANTY",
        "quoted_price": 987.65,
        "spares_cost": 123.45,
        "estimated_completion_at": "2007-12-03T10:15:30Z",
        "actual_completion_at": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "inventory": InventoryObjectType,
        "seller": SellerObjectType
      }
    ]
  }
}

user

Response

Returns a UserObjectType

Arguments
Name Description
id - ID!

Example

Query
query user($id: ID!) {
  user(id: $id) {
    _id
    id
    keycloak_id
    username
    email
    first_name
    surname
    last_name
    phone_number
    role
    enabled
    user_type
    is_internal
    first_login
    last_login
    availability_status
    synced_at
    group_memberships
    permissions
    created_at
    updated_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "user": {
      "_id": "4",
      "id": "xyz789",
      "keycloak_id": "xyz789",
      "username": "xyz789",
      "email": "abc123",
      "first_name": "abc123",
      "surname": "xyz789",
      "last_name": "abc123",
      "phone_number": "xyz789",
      "role": "xyz789",
      "enabled": false,
      "user_type": "SYSTEM_ADMIN",
      "is_internal": false,
      "first_login": "2007-12-03T10:15:30Z",
      "last_login": "2007-12-03T10:15:30Z",
      "availability_status": "AVAILABLE",
      "synced_at": "2007-12-03T10:15:30Z",
      "group_memberships": ["xyz789"],
      "permissions": ["xyz789"],
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

userByFilters

Response

Returns a UserObjectType

Arguments
Name Description
filters - UserFilterInput!

Example

Query
query userByFilters($filters: UserFilterInput!) {
  userByFilters(filters: $filters) {
    _id
    id
    keycloak_id
    username
    email
    first_name
    surname
    last_name
    phone_number
    role
    enabled
    user_type
    is_internal
    first_login
    last_login
    availability_status
    synced_at
    group_memberships
    permissions
    created_at
    updated_at
  }
}
Variables
{"filters": UserFilterInput}
Response
{
  "data": {
    "userByFilters": {
      "_id": 4,
      "id": "abc123",
      "keycloak_id": "xyz789",
      "username": "abc123",
      "email": "xyz789",
      "first_name": "abc123",
      "surname": "abc123",
      "last_name": "abc123",
      "phone_number": "xyz789",
      "role": "xyz789",
      "enabled": false,
      "user_type": "SYSTEM_ADMIN",
      "is_internal": false,
      "first_login": "2007-12-03T10:15:30Z",
      "last_login": "2007-12-03T10:15:30Z",
      "availability_status": "AVAILABLE",
      "synced_at": "2007-12-03T10:15:30Z",
      "group_memberships": ["xyz789"],
      "permissions": ["abc123"],
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

userSyncKeycloack

Response

Returns a SuccessResponse!

Example

Query
query userSyncKeycloack {
  userSyncKeycloack {
    success
    message
  }
}
Response
{
  "data": {
    "userSyncKeycloack": {
      "success": false,
      "message": "abc123"
    }
  }
}

userSyncStatus

Response

Returns a JSON!

Arguments
Name Description
keycloakUserId - String!

Example

Query
query userSyncStatus($keycloakUserId: String!) {
  userSyncStatus(keycloakUserId: $keycloakUserId)
}
Variables
{"keycloakUserId": "abc123"}
Response
{"data": {"userSyncStatus": {}}}

usersCursor

Response

Returns a CursorPaginatedUsers!

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - UserFilterInput
regexFilters - UserFilterInput

Example

Query
query usersCursor(
  $pagination: CursorPaginationInputType!,
  $filters: UserFilterInput,
  $regexFilters: UserFilterInput
) {
  usersCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": UserFilterInput,
  "regexFilters": UserFilterInput
}
Response
{
  "data": {
    "usersCursor": {
      "data": [UserObjectType],
      "pagination": CursorPaginationMetadata
    }
  }
}

usersOffset

Response

Returns an OffsetPaginatedUsers!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - UserFilterInput
regexFilters - UserFilterInput

Example

Query
query usersOffset(
  $pagination: OffsetPaginationInputType,
  $filters: UserFilterInput,
  $regexFilters: UserFilterInput
) {
  usersOffset(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": UserFilterInput,
  "regexFilters": UserFilterInput
}
Response
{
  "data": {
    "usersOffset": {
      "data": [UserObjectType],
      "metadata": OffsetPaginationMetadata
    }
  }
}

validateReferralCode

Response

Returns a ReferralCodeValidationResult!

Arguments
Name Description
referral_code - String!

Example

Query
query validateReferralCode($referral_code: String!) {
  validateReferralCode(referral_code: $referral_code) {
    is_valid
    customer_id
    referral_code
    error_code
  }
}
Variables
{"referral_code": "abc123"}
Response
{
  "data": {
    "validateReferralCode": {
      "is_valid": true,
      "customer_id": "abc123",
      "referral_code": "abc123",
      "error_code": "xyz789"
    }
  }
}

validationRecord

Description

Get a single validation record by ID

Response

Returns a ValidationRecordGraphQLEntity

Arguments
Name Description
id - ID!

Example

Query
query validationRecord($id: ID!) {
  validationRecord(id: $id) {
    _id
    target
    target_id
    type
    status
    action
    result
    attempts_count
    max_attempts
    data {
      provider
      error_message
      verified_message
      result_id
      tenant_id
      tenant_name
      tag
      bucket
      exception_granted
      exception_details
      duplicate_details {
        ...DuplicateDetailGraphQLFragment
      }
      otp_details {
        ...OtpDetailGraphQLFragment
      }
    }
    createdAt
    updatedAt
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "validationRecord": {
      "_id": "4",
      "target": "LEAD",
      "target_id": "4",
      "type": "CUSTOMER_IPRS",
      "status": "RUNNING",
      "action": "CASH_JOURNEY",
      "result": true,
      "attempts_count": 123.45,
      "max_attempts": 123.45,
      "data": ValidationDataGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "application": ApplicationEntityGraphQL
    }
  }
}

validationRecordsByTargetId

Description

Get all validation records for a target entity (e.g. application)

Arguments
Name Description
targetId - ID!

Example

Query
query validationRecordsByTargetId($targetId: ID!) {
  validationRecordsByTargetId(targetId: $targetId) {
    _id
    target
    target_id
    type
    status
    action
    result
    attempts_count
    max_attempts
    data {
      provider
      error_message
      verified_message
      result_id
      tenant_id
      tenant_name
      tag
      bucket
      exception_granted
      exception_details
      duplicate_details {
        ...DuplicateDetailGraphQLFragment
      }
      otp_details {
        ...OtpDetailGraphQLFragment
      }
    }
    createdAt
    updatedAt
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"targetId": "4"}
Response
{
  "data": {
    "validationRecordsByTargetId": [
      {
        "_id": 4,
        "target": "LEAD",
        "target_id": "4",
        "type": "CUSTOMER_IPRS",
        "status": "RUNNING",
        "action": "CASH_JOURNEY",
        "result": true,
        "attempts_count": 123.45,
        "max_attempts": 123.45,
        "data": ValidationDataGraphQL,
        "createdAt": "2007-12-03T10:15:30Z",
        "updatedAt": "2007-12-03T10:15:30Z",
        "application": ApplicationEntityGraphQL
      }
    ]
  }
}

validationRecordsCount

Description

Get count of validation records matching filters

Response

Returns a Float!

Arguments
Name Description
filters - ValidationRecordFilterInput

Example

Query
query validationRecordsCount($filters: ValidationRecordFilterInput) {
  validationRecordsCount(filters: $filters)
}
Variables
{"filters": ValidationRecordFilterInput}
Response
{"data": {"validationRecordsCount": 123.45}}

validationRecordsCursor

Description

Get paginated validation records using cursor-based pagination

Arguments
Name Description
pagination - CursorPaginationInputType
filters - ValidationRecordFilterInput

Example

Query
query validationRecordsCursor(
  $pagination: CursorPaginationInputType,
  $filters: ValidationRecordFilterInput
) {
  validationRecordsCursor(
    pagination: $pagination,
    filters: $filters
  ) {
    data {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": ValidationRecordFilterInput
}
Response
{
  "data": {
    "validationRecordsCursor": {
      "data": [ValidationRecordGraphQLEntity],
      "pagination": CursorPaginationMetadata
    }
  }
}

validationRecordsOffset

Description

Get paginated validation records using offset-based pagination

Response

Returns an OffsetPaginatedValidationRecords!

Arguments
Name Description
pagination - OffsetPaginationInputType
filters - ValidationRecordFilterInput

Example

Query
query validationRecordsOffset(
  $pagination: OffsetPaginationInputType,
  $filters: ValidationRecordFilterInput
) {
  validationRecordsOffset(
    pagination: $pagination,
    filters: $filters
  ) {
    data {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    metadata {
      totalItems
      perPage
      page
      lastPage
    }
  }
}
Variables
{
  "pagination": OffsetPaginationInputType,
  "filters": ValidationRecordFilterInput
}
Response
{
  "data": {
    "validationRecordsOffset": {
      "data": [ValidationRecordGraphQLEntity],
      "metadata": OffsetPaginationMetadata
    }
  }
}

verifyReturnsMpesaPaymentReference

Description

Verify an M-Pesa / provider reference is MATCHED, belongs to the customer, and is allocated to the sale

Arguments
Name Description
saleId - ID!
customerId - ID!
mpesaReference - String!
expectedAmount - Float

Example

Query
query verifyReturnsMpesaPaymentReference(
  $saleId: ID!,
  $customerId: ID!,
  $mpesaReference: String!,
  $expectedAmount: Float
) {
  verifyReturnsMpesaPaymentReference(
    saleId: $saleId,
    customerId: $customerId,
    mpesaReference: $mpesaReference,
    expectedAmount: $expectedAmount
  ) {
    verified
    payment_id
    payment_amount
    payment_reconciliation_status
    payment_provider_reference
  }
}
Variables
{
  "saleId": "4",
  "customerId": 4,
  "mpesaReference": "abc123",
  "expectedAmount": 123.45
}
Response
{
  "data": {
    "verifyReturnsMpesaPaymentReference": {
      "verified": true,
      "payment_id": "4",
      "payment_amount": 123.45,
      "payment_reconciliation_status": "xyz789",
      "payment_provider_reference": "xyz789"
    }
  }
}

walletTransaction

Response

Returns a RawWalletTransactionsDto!

Arguments
Name Description
id - ID!

Example

Query
query walletTransaction($id: ID!) {
  walletTransaction(id: $id) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "walletTransaction": {
      "wallet_transaction_id": "4",
      "wallet_id": "4",
      "customer_id": "4",
      "sale_id": 4,
      "wallet_transaction_ref_id": 4,
      "wallet_transaction_type": "PAYMENT",
      "wallet_transaction_sub_type": "MPESA",
      "wallet_transaction_amount": 987.65,
      "wallet_transaction_balance_before": 987.65,
      "wallet_transaction_balance_after": 987.65,
      "wallet_transaction_days_value": 123.45,
      "wallet_transaction_points_value": 987.65,
      "wallet_transaction_status": "PENDING",
      "reference": "abc123",
      "wallet_transaction_description": "xyz789",
      "wallet_transaction_metadata": {},
      "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
    }
  }
}

walletTransactionByFilters

Response

Returns a RawWalletTransactionsDto

Arguments
Name Description
filters - WalletTransactionsFilterInput!

Example

Query
query walletTransactionByFilters($filters: WalletTransactionsFilterInput!) {
  walletTransactionByFilters(filters: $filters) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{"filters": WalletTransactionsFilterInput}
Response
{
  "data": {
    "walletTransactionByFilters": {
      "wallet_transaction_id": 4,
      "wallet_id": "4",
      "customer_id": "4",
      "sale_id": 4,
      "wallet_transaction_ref_id": 4,
      "wallet_transaction_type": "PAYMENT",
      "wallet_transaction_sub_type": "MPESA",
      "wallet_transaction_amount": 987.65,
      "wallet_transaction_balance_before": 123.45,
      "wallet_transaction_balance_after": 987.65,
      "wallet_transaction_days_value": 123.45,
      "wallet_transaction_points_value": 123.45,
      "wallet_transaction_status": "PENDING",
      "reference": "abc123",
      "wallet_transaction_description": "abc123",
      "wallet_transaction_metadata": {},
      "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
    }
  }
}

walletTransactions

Response

Returns [RawWalletTransactionsDto!]!

Arguments
Name Description
filters - WalletTransactionsFilterInput

Example

Query
query walletTransactions($filters: WalletTransactionsFilterInput) {
  walletTransactions(filters: $filters) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{"filters": WalletTransactionsFilterInput}
Response
{
  "data": {
    "walletTransactions": [
      {
        "wallet_transaction_id": 4,
        "wallet_id": "4",
        "customer_id": "4",
        "sale_id": "4",
        "wallet_transaction_ref_id": "4",
        "wallet_transaction_type": "PAYMENT",
        "wallet_transaction_sub_type": "MPESA",
        "wallet_transaction_amount": 987.65,
        "wallet_transaction_balance_before": 987.65,
        "wallet_transaction_balance_after": 123.45,
        "wallet_transaction_days_value": 123.45,
        "wallet_transaction_points_value": 987.65,
        "wallet_transaction_status": "PENDING",
        "reference": "abc123",
        "wallet_transaction_description": "abc123",
        "wallet_transaction_metadata": {},
        "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
        "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
        "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
      }
    ]
  }
}

walletTransactionsCount

Response

Returns a Float!

Arguments
Name Description
filters - WalletTransactionsFilterInput

Example

Query
query walletTransactionsCount($filters: WalletTransactionsFilterInput) {
  walletTransactionsCount(filters: $filters)
}
Variables
{"filters": WalletTransactionsFilterInput}
Response
{"data": {"walletTransactionsCount": 987.65}}

walletTransactionsCursor

Description

Get paginated wallet transaction (cursor)

Arguments
Name Description
pagination - CursorPaginationInputType!
filters - WalletTransactionsFilterInput
regexFilters - WalletTransactionsFilterInput

Example

Query
query walletTransactionsCursor(
  $pagination: CursorPaginationInputType!,
  $filters: WalletTransactionsFilterInput,
  $regexFilters: WalletTransactionsFilterInput
) {
  walletTransactionsCursor(
    pagination: $pagination,
    filters: $filters,
    regexFilters: $regexFilters
  ) {
    data {
      wallet_transaction_id
      wallet_id
      customer_id
      sale_id
      wallet_transaction_ref_id
      wallet_transaction_type
      wallet_transaction_sub_type
      wallet_transaction_amount
      wallet_transaction_balance_before
      wallet_transaction_balance_after
      wallet_transaction_days_value
      wallet_transaction_points_value
      wallet_transaction_status
      reference
      wallet_transaction_description
      wallet_transaction_metadata
      wallet_transaction_created_at
      wallet_transaction_updated_at
      wallet_transaction_completed_at
    }
    pagination {
      nextCursor
      prevCursor
      hasNext
      hasPrev
      count
    }
  }
}
Variables
{
  "pagination": CursorPaginationInputType,
  "filters": WalletTransactionsFilterInput,
  "regexFilters": WalletTransactionsFilterInput
}
Response
{
  "data": {
    "walletTransactionsCursor": {
      "data": [RawWalletTransactionsDto],
      "pagination": CursorPaginationMetadata
    }
  }
}

Mutations

activateFlashSale

Response

Returns a FlashSaleObjectType!

Arguments
Name Description
id - ID!
activatedBy - ID!

Example

Query
mutation activateFlashSale(
  $id: ID!,
  $activatedBy: ID!
) {
  activateFlashSale(
    id: $id,
    activatedBy: $activatedBy
  ) {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"id": "4", "activatedBy": 4}
Response
{
  "data": {
    "activateFlashSale": {
      "flash_sale_id": "4",
      "title": "abc123",
      "slug": "abc123",
      "description": "abc123",
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "status": "SCHEDULED",
      "max_quantity": 987,
      "sold_quantity": 123,
      "min_discount_percentage": 123.45,
      "is_featured": true,
      "banner_image": "xyz789",
      "icon_url": "xyz789",
      "countdown_display": false,
      "priority": 123,
      "participating_sellers": ["abc123"],
      "performance_metrics": {},
      "meta_title": "xyz789",
      "meta_description": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

activateListing

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
catalogId - ID!

Example

Query
mutation activateListing($catalogId: ID!) {
  activateListing(catalogId: $catalogId) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"catalogId": "4"}
Response
{
  "data": {
    "activateListing": {
      "seller_catalog_id": "4",
      "seller_id": "xyz789",
      "sku_id": "abc123",
      "cost_price": 123.45,
      "retail_price": 123.45,
      "currency": "xyz789",
      "stock_on_hand": 987,
      "reserved_stock": 987,
      "is_active": false,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 987,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

activateProductOffer

Response

Returns a ProductOfferObjectType!

Arguments
Name Description
offerId - ID!
activatedBy - ID!

Example

Query
mutation activateProductOffer(
  $offerId: ID!,
  $activatedBy: ID!
) {
  activateProductOffer(
    offerId: $offerId,
    activatedBy: $activatedBy
  ) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{
  "offerId": "4",
  "activatedBy": "4"
}
Response
{
  "data": {
    "activateProductOffer": {
      "product_offer_id": "4",
      "sku_id": "4",
      "description": "xyz789",
      "status": "DRAFT",
      "type": "PERCENTAGE",
      "discount_value": 987.65,
      "minimum_purchase_amount": 123.45,
      "maximum_discount_amount": 123.45,
      "usage_limit": 987,
      "usage_count": 987,
      "usage_limit_per_customer": 123,
      "promo_code": "xyz789",
      "category_filters": ["xyz789"],
      "brand_filters": ["abc123"],
      "applicable_channels": ["xyz789"],
      "active": false,
      "starts_at": "2007-12-03T10:15:30Z",
      "ends_at": "2007-12-03T10:15:30Z",
      "seller_id": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

addBalanceToWallet

Response

Returns a RawCustomerWalletsDto!

Arguments
Name Description
walletId - ID!
amount - Float!

Example

Query
mutation addBalanceToWallet(
  $walletId: ID!,
  $amount: Float!
) {
  addBalanceToWallet(
    walletId: $walletId,
    amount: $amount
  ) {
    customer_wallet_id
    customer_id
    customer_wallet_available_balance
    customer_wallet_total_payments
    customer_wallet_total_adjustments
    customer_wallet_total_days_given
    customer_wallet_total_points
    customer_wallet_total_allocated
    customer_wallet_lifetime_credits
    customer_wallet_lifetime_debits
    customer_wallet_currency
    customer_wallet_created_at
    customer_wallet_updated_at
  }
}
Variables
{"walletId": "4", "amount": 987.65}
Response
{
  "data": {
    "addBalanceToWallet": {
      "customer_wallet_id": "4",
      "customer_id": 4,
      "customer_wallet_available_balance": 987.65,
      "customer_wallet_total_payments": 123.45,
      "customer_wallet_total_adjustments": 123.45,
      "customer_wallet_total_days_given": 987.65,
      "customer_wallet_total_points": 987.65,
      "customer_wallet_total_allocated": 987.65,
      "customer_wallet_lifetime_credits": 987.65,
      "customer_wallet_lifetime_debits": 123.45,
      "customer_wallet_currency": "KES",
      "customer_wallet_created_at": "2007-12-03T10:15:30Z",
      "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

addDiagnosticNotes

Response

Returns a RepairObjectType!

Arguments
Name Description
orderId - ID!
notes - String!

Example

Query
mutation addDiagnosticNotes(
  $orderId: ID!,
  $notes: String!
) {
  addDiagnosticNotes(
    orderId: $orderId,
    notes: $notes
  ) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"orderId": 4, "notes": "xyz789"}
Response
{
  "data": {
    "addDiagnosticNotes": {
      "repair_id": "4",
      "repair_display_id": "xyz789",
      "requires_technician": true,
      "inventory_id": "xyz789",
      "customer_id": "abc123",
      "original_sale_id": "abc123",
      "provider_seller_id": "abc123",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": false,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "xyz789",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "abc123",
      "billing_type": "WARRANTY",
      "quoted_price": 987.65,
      "spares_cost": 123.45,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

addUserToGroup

Response

Returns a GroupMembershipResponse!

Arguments
Name Description
input - GroupMembershipInput!

Example

Query
mutation addUserToGroup($input: GroupMembershipInput!) {
  addUserToGroup(input: $input) {
    success
    message
    group {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"input": GroupMembershipInput}
Response
{
  "data": {
    "addUserToGroup": {
      "success": false,
      "message": "xyz789",
      "group": GroupObjectType
    }
  }
}

approveProduct

Response

Returns a ProductObjectType!

Arguments
Name Description
productId - ID!
approvedBy - ID!

Example

Query
mutation approveProduct(
  $productId: ID!,
  $approvedBy: ID!
) {
  approveProduct(
    productId: $productId,
    approvedBy: $approvedBy
  ) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"productId": "4", "approvedBy": 4}
Response
{
  "data": {
    "approveProduct": {
      "product_id": 4,
      "name": "abc123",
      "slug": "abc123",
      "brand": "xyz789",
      "model": "xyz789",
      "category_id": "xyz789",
      "category": CategoryObjectType,
      "description": "abc123",
      "long_description": "abc123",
      "base_specifications": {},
      "primary_image_url": "abc123",
      "images": ["abc123"],
      "video_url": "abc123",
      "meta_title": "abc123",
      "meta_description": "xyz789",
      "keywords": ["xyz789"],
      "is_active": false,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "xyz789",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

approveRefund

Description

Approve a pending refund

Response

Returns a RefundGraphQL!

Arguments
Name Description
id - ID!
notes - String

Example

Query
mutation approveRefund(
  $id: ID!,
  $notes: String
) {
  approveRefund(
    id: $id,
    notes: $notes
  ) {
    refund_id
    customer_id
    sale_id
    returns_request_id
    order_id
    loan_contract_id
    source_payment_id
    adjustment_id
    refund_workflow_type
    refund_amount
    status
    refund_method
    transaction_reference
    submitted_by
    submitted_by_name
    actor_id
    approved_by
    approved_by_name
    customer_name
    customer_phone
    customer_official_id
    approved_at
    processed_at
    completed_at
    notes
    rejection_reason
    returns_request_type
    created_at
    updated_at
  }
}
Variables
{
  "id": "4",
  "notes": "abc123"
}
Response
{
  "data": {
    "approveRefund": {
      "refund_id": "4",
      "customer_id": "xyz789",
      "sale_id": "xyz789",
      "returns_request_id": "xyz789",
      "order_id": "abc123",
      "loan_contract_id": "xyz789",
      "source_payment_id": "abc123",
      "adjustment_id": "abc123",
      "refund_workflow_type": "RETURN",
      "refund_amount": 123.45,
      "status": "PENDING",
      "refund_method": "MPESA",
      "transaction_reference": "abc123",
      "submitted_by": "abc123",
      "submitted_by_name": "abc123",
      "actor_id": "abc123",
      "approved_by": "abc123",
      "approved_by_name": "abc123",
      "customer_name": "abc123",
      "customer_phone": "xyz789",
      "customer_official_id": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "processed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "notes": "xyz789",
      "rejection_reason": "xyz789",
      "returns_request_type": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

approveSku

Response

Returns a SkuObjectType!

Arguments
Name Description
skuId - ID!
approvedBy - ID!

Example

Query
mutation approveSku(
  $skuId: ID!,
  $approvedBy: ID!
) {
  approveSku(
    skuId: $skuId,
    approvedBy: $approvedBy
  ) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"skuId": "4", "approvedBy": 4}
Response
{
  "data": {
    "approveSku": {
      "sku_id": 4,
      "product_id": "abc123",
      "condition_id": "xyz789",
      "parent_sku_id": "xyz789",
      "level": 987,
      "level_attribute_key": "xyz789",
      "level_attribute_value": "abc123",
      "sku_code": "abc123",
      "name": "xyz789",
      "attributes": {},
      "variant_specifications": {},
      "msrp_price": 123.45,
      "min_seller_price": 987.65,
      "max_seller_price": 987.65,
      "suggested_retail_price": 987.65,
      "effective_price": 123.45,
      "images": ["abc123"],
      "weight_grams": 123,
      "dimensions_mm": "abc123",
      "is_active": false,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "xyz789",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "product": ProductObjectType,
      "condition": ConditionObjectType
    }
  }
}

assignInventoryToContract

Response

Returns an InventoryObjectType!

Arguments
Name Description
inventoryId - ID!
contractId - ID!
customerId - ID!

Example

Query
mutation assignInventoryToContract(
  $inventoryId: ID!,
  $contractId: ID!,
  $customerId: ID!
) {
  assignInventoryToContract(
    inventoryId: $inventoryId,
    contractId: $contractId,
    customerId: $customerId
  ) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"inventoryId": 4, "contractId": 4, "customerId": 4}
Response
{
  "data": {
    "assignInventoryToContract": {
      "inventory_id": "4",
      "product_id": "abc123",
      "sku_id": "abc123",
      "condition_id": "abc123",
      "seller_catalog_id": "abc123",
      "seller_id": "xyz789",
      "serial_number": "abc123",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": false,
      "qc_report": QCReportType,
      "qc_report_link": "abc123",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 987.65,
      "contract_id": "xyz789",
      "mdm_status": {},
      "batch_number": "xyz789",
      "location_id": "xyz789",
      "inspection_report": "xyz789",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "abc123",
      "supplier_code": "xyz789",
      "supplier_order_reference": "xyz789",
      "customer_id": "xyz789",
      "sale_id": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

attachRolesToUser

Response

Returns a UserObjectType!

Arguments
Name Description
input - AttachRolesToUserInput!

Example

Query
mutation attachRolesToUser($input: AttachRolesToUserInput!) {
  attachRolesToUser(input: $input) {
    _id
    id
    keycloak_id
    username
    email
    first_name
    surname
    last_name
    phone_number
    role
    enabled
    user_type
    is_internal
    first_login
    last_login
    availability_status
    synced_at
    group_memberships
    permissions
    created_at
    updated_at
  }
}
Variables
{"input": AttachRolesToUserInput}
Response
{
  "data": {
    "attachRolesToUser": {
      "_id": 4,
      "id": "abc123",
      "keycloak_id": "xyz789",
      "username": "xyz789",
      "email": "abc123",
      "first_name": "xyz789",
      "surname": "xyz789",
      "last_name": "xyz789",
      "phone_number": "abc123",
      "role": "abc123",
      "enabled": false,
      "user_type": "SYSTEM_ADMIN",
      "is_internal": true,
      "first_login": "2007-12-03T10:15:30Z",
      "last_login": "2007-12-03T10:15:30Z",
      "availability_status": "AVAILABLE",
      "synced_at": "2007-12-03T10:15:30Z",
      "group_memberships": ["abc123"],
      "permissions": ["xyz789"],
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

audit_module_mutations

Description

Access audit module operations

Response

Returns an AuditModuleNamespace!

Example

Query
mutation audit_module_mutations {
  audit_module_mutations {
    auditLog {
      auditLog {
        ...AuditLogObjectTypeFragment
      }
      auditLogByFilters {
        ...AuditLogObjectTypeFragment
      }
      auditLogCount
      auditLogsCursor {
        ...CursorPaginatedAuditLogsFragment
      }
      auditLogsOffset {
        ...OffsetPaginatedAuditLogsFragment
      }
      createAuditLog {
        ...AuditLogObjectTypeFragment
      }
      createNote {
        ...AuditLogObjectTypeFragment
      }
      updateAuditLog {
        ...AuditLogObjectTypeFragment
      }
      updateAuditLogs
      deleteAuditLog
      deleteAuditLogs
    }
  }
}
Response
{
  "data": {
    "audit_module_mutations": {
      "auditLog": AuditLogNamespace
    }
  }
}

calculateOnboardingFateGuide

Description

Calculate a fate guide decision for an application

Arguments
Name Description
input - CalculateOnboardingFateGuideInput!

Example

Query
mutation calculateOnboardingFateGuide($input: CalculateOnboardingFateGuideInput!) {
  calculateOnboardingFateGuide(input: $input) {
    message
    data {
      _id
      application_id
      customer_id
      crb_transaction_id
      mobile_analysis_id
      document_id
      crb_score
      crb_past_default_record
      customer_age
      big_loan_default
      model_type
      fate_guide_message
      requires_recheck
      sale_agent_id
      available_plans
      available_price_plans {
        ...PricePlanObjectTypeFragment
      }
      version
      sku
      type
      active
      devicePrice
      durationMonths
      age
      loanHistory {
        ...FateGuideRuntimeLoanRecordTypeFragment
      }
      signals {
        ...FateGuideRuntimeSignalsTypeFragment
      }
      tier
      sdiPct
      maxCashPrice
      maxCashPriceHigh
      maxCashPriceMosaver
      productBand
      depositLevel
      affordabilitySource
      affordabilityValue
      adjustedAffordability
      recommendation
      slopeBucket
      slopeHaircutPct
      bettingRatio
      p2pShare
      crbPositiveScore
      cov
      formulas
      explanation {
        ...FateGuideRuntimeExplanationTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": CalculateOnboardingFateGuideInput}
Response
{
  "data": {
    "calculateOnboardingFateGuide": {
      "message": "xyz789",
      "data": FateGuideScoresType
    }
  }
}

cancelRepair

Response

Returns a RepairObjectType!

Arguments
Name Description
orderId - ID!
reason - String!

Example

Query
mutation cancelRepair(
  $orderId: ID!,
  $reason: String!
) {
  cancelRepair(
    orderId: $orderId,
    reason: $reason
  ) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"orderId": 4, "reason": "xyz789"}
Response
{
  "data": {
    "cancelRepair": {
      "repair_id": 4,
      "repair_display_id": "xyz789",
      "requires_technician": false,
      "inventory_id": "xyz789",
      "customer_id": "abc123",
      "original_sale_id": "xyz789",
      "provider_seller_id": "abc123",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": true,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "abc123",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "abc123",
      "billing_type": "WARRANTY",
      "quoted_price": 123.45,
      "spares_cost": 987.65,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

communication_module_mutations

Description

Access communication module mutations

Response

Returns a CommunicationModuleNamespace!

Example

Query
mutation communication_module_mutations {
  communication_module_mutations {
    communication {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    communicationsOffset {
      data {
        ...CommunicationObjectTypeFragment
      }
      metadata {
        ...OffsetPaginationMetadataFragment
      }
    }
    communicationsCursor {
      data {
        ...CommunicationObjectTypeFragment
      }
      pagination {
        ...CursorPaginationMetadataFragment
      }
    }
    createCommunication {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    bulkCreateCommunications {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    updateCommunication {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    retryCommunication
    markNotificationAsRead {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    markAllNotificationsAsRead
    trackNotificationClick {
      _id
      id
      userId
      channel
      status
      type
      message {
        ...BaseMessageObjectTypeFragment
      }
      emailData {
        ...EmailDataObjectTypeFragment
      }
      smsData {
        ...SmsDataObjectTypeFragment
      }
      pushData {
        ...PushDataObjectTypeFragment
      }
      inAppData {
        ...InAppDataObjectTypeFragment
      }
      delivery {
        ...DeliveryInfoObjectTypeFragment
      }
      retryCount
      maxRetries
      campaignId
      campaignName
      tags
      scheduledFor
      timezone
      queueJobId
      queueName
      priority
      metadata
      createdAt
      updatedAt
    }
    deleteCommunication
    deleteManyCommunications
    subscribeToTopic
    unsubscribeFromTopic
    subscribeToDefaultTopics
    unsubscribeFromDefaultTopics
  }
}
Response
{
  "data": {
    "communication_module_mutations": {
      "communication": CommunicationObjectType,
      "communicationsOffset": OffsetPaginatedCommunications,
      "communicationsCursor": CursorPaginatedCommunications,
      "createCommunication": CommunicationObjectType,
      "bulkCreateCommunications": [
        CommunicationObjectType
      ],
      "updateCommunication": CommunicationObjectType,
      "retryCommunication": true,
      "markNotificationAsRead": CommunicationObjectType,
      "markAllNotificationsAsRead": 987,
      "trackNotificationClick": CommunicationObjectType,
      "deleteCommunication": false,
      "deleteManyCommunications": 987,
      "subscribeToTopic": false,
      "unsubscribeFromTopic": false,
      "subscribeToDefaultTopics": true,
      "unsubscribeFromDefaultTopics": false
    }
  }
}

completeRefund

Description

Mark a refund as completed (payment confirmed)

Response

Returns a RefundGraphQL!

Arguments
Name Description
id - ID!
refund_method - RefundMethod
transaction_reference - String

Example

Query
mutation completeRefund(
  $id: ID!,
  $refund_method: RefundMethod,
  $transaction_reference: String
) {
  completeRefund(
    id: $id,
    refund_method: $refund_method,
    transaction_reference: $transaction_reference
  ) {
    refund_id
    customer_id
    sale_id
    returns_request_id
    order_id
    loan_contract_id
    source_payment_id
    adjustment_id
    refund_workflow_type
    refund_amount
    status
    refund_method
    transaction_reference
    submitted_by
    submitted_by_name
    actor_id
    approved_by
    approved_by_name
    customer_name
    customer_phone
    customer_official_id
    approved_at
    processed_at
    completed_at
    notes
    rejection_reason
    returns_request_type
    created_at
    updated_at
  }
}
Variables
{
  "id": 4,
  "refund_method": "MPESA",
  "transaction_reference": "abc123"
}
Response
{
  "data": {
    "completeRefund": {
      "refund_id": 4,
      "customer_id": "xyz789",
      "sale_id": "abc123",
      "returns_request_id": "xyz789",
      "order_id": "abc123",
      "loan_contract_id": "xyz789",
      "source_payment_id": "abc123",
      "adjustment_id": "xyz789",
      "refund_workflow_type": "RETURN",
      "refund_amount": 987.65,
      "status": "PENDING",
      "refund_method": "MPESA",
      "transaction_reference": "abc123",
      "submitted_by": "xyz789",
      "submitted_by_name": "abc123",
      "actor_id": "xyz789",
      "approved_by": "xyz789",
      "approved_by_name": "xyz789",
      "customer_name": "xyz789",
      "customer_phone": "abc123",
      "customer_official_id": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "processed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "notes": "abc123",
      "rejection_reason": "xyz789",
      "returns_request_type": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

completeRepair

Response

Returns a RepairObjectType!

Arguments
Name Description
orderId - ID!
outtakeDetails - RepairOuttakeInput

Example

Query
mutation completeRepair(
  $orderId: ID!,
  $outtakeDetails: RepairOuttakeInput
) {
  completeRepair(
    orderId: $orderId,
    outtakeDetails: $outtakeDetails
  ) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{
  "orderId": "4",
  "outtakeDetails": RepairOuttakeInput
}
Response
{
  "data": {
    "completeRepair": {
      "repair_id": 4,
      "repair_display_id": "abc123",
      "requires_technician": true,
      "inventory_id": "abc123",
      "customer_id": "abc123",
      "original_sale_id": "abc123",
      "provider_seller_id": "xyz789",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": false,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "xyz789",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "abc123",
      "billing_type": "WARRANTY",
      "quoted_price": 123.45,
      "spares_cost": 123.45,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

config_module_mutations

Description

Access config module mutations

Response

Returns a ConfigModuleNamespace!

Example

Query
mutation config_module_mutations {
  config_module_mutations {
    configs {
      byId {
        ...ConfigTypeFragment
      }
      byFilters {
        ...ConfigTypeFragment
      }
      count
      value {
        ...ConfigValueResponseFragment
      }
      exists {
        ...ConfigExistsResponseFragment
      }
      offsetPaginated {
        ...ConfigOffsetPaginatedResponseFragment
      }
      cursorPaginated {
        ...ConfigCursorPaginatedResponseFragment
      }
      clientConfigs
      byCategory
      inventory {
        ...InventoryUiConfigTypeFragment
      }
      featureFlags
      isFeatureEnabled {
        ...FeatureStatusResponseFragment
      }
      withHistory {
        ...ConfigWithHistoryFragment
      }
      create {
        ...ConfigTypeFragment
      }
      updateById {
        ...ConfigTypeFragment
      }
      updateMany
      deleteById
      deleteMany
      bulkCreate {
        ...BulkConfigMutationResponseFragment
      }
      delete {
        ...ConfigDeleteResponseFragment
      }
      publish {
        ...ConfigMutationResponseFragment
      }
      rollback {
        ...ConfigMutationResponseFragment
      }
      clearCache {
        ...CacheClearedFragment
      }
    }
    userRoleConfigs {
      value {
        ...UserRoleConfigValueResponseFragment
      }
      myConfigs {
        ...ConfigTypeFragment
      }
      roleConfigs {
        ...ConfigTypeFragment
      }
      setMyConfig {
        ...ConfigTypeFragment
      }
      setRoleConfig {
        ...ConfigTypeFragment
      }
      deleteMyConfig
      deleteRoleConfig
    }
    sharedResources {
      mySharedResources {
        ...OffsetPaginatedSharedResourcesFragment
      }
      sharedWithMe {
        ...OffsetPaginatedSharedResourcesFragment
      }
      sharedResource {
        ...SharedResourceObjectTypeFragment
      }
      sharedResourcesByKey {
        ...SharedResourceObjectTypeFragment
      }
      createSharedResource {
        ...SharedResourceObjectTypeFragment
      }
      updateSharedResource {
        ...SharedResourceObjectTypeFragment
      }
      deleteSharedResource
      addUsersToSharedResource {
        ...SharedResourceObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "config_module_mutations": {
      "configs": ConfigsNamespace,
      "userRoleConfigs": UserRoleConfigsNamespace,
      "sharedResources": SharedResourcesNamespace
    }
  }
}

confirmDelivery

Response

Returns a DeliveryObjectType!

Arguments
Name Description
input - SubmitDeliveryInput!

Example

Query
mutation confirmDelivery($input: SubmitDeliveryInput!) {
  confirmDelivery(input: $input) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"input": SubmitDeliveryInput}
Response
{
  "data": {
    "confirmDelivery": {
      "delivery_id": 4,
      "order_id": "4",
      "seller_id": "4",
      "assigned_rider_id": "4",
      "delivery_status": "PENDING",
      "delivery_address": DeliveryAddress,
      "tracking_number": "xyz789",
      "provider_info": ProviderInfo,
      "proof_of_delivery": ProofOfDelivery,
      "delivery_notes": "xyz789",
      "destination_location": GeoLocation,
      "estimated_arrival": "2007-12-03T10:15:30Z",
      "actual_arrival": "2007-12-03T10:15:30Z",
      "metadata": {},
      "assigned_rider": UserObjectType,
      "seller": SellerObjectType,
      "order": OrderObjectType,
      "items": [DeliveryItemObjectType],
      "calls": [DeliveryCallObjectType],
      "latestAnsweredCall": DeliveryCallObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "deliveryItems": [DeliveryItemObjectType]
    }
  }
}

createApplication

Description

Create a new application

Response

Returns an ApplicationEntityGraphQL!

Arguments
Name Description
input - ApplicationEntityInput!

Example

Query
mutation createApplication($input: ApplicationEntityInput!) {
  createApplication(input: $input) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"input": ApplicationEntityInput}
Response
{
  "data": {
    "createApplication": {
      "_id": 4,
      "customer_id": "xyz789",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["abc123"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "abc123",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

createApplicationCallDetail

Description

Create a new application call detail record

Response

Returns an ApplicationCallDetailsType!

Arguments
Name Description
input - CreateApplicationCallDetailsInput!

Example

Query
mutation createApplicationCallDetail($input: CreateApplicationCallDetailsInput!) {
  createApplicationCallDetail(input: $input) {
    _id
    application_id
    status
    notes
    agent_name
    caller_id
    delivery_location_type
    priority
    call_date
    follow_up_required
    customer_location
    employer_info
    employment_details
    delivery_location
    product_choice
    confirmed_price_plan
    geo_address
    delivery_or_collection_location
    other_delivery_notes
    call_type
    call_outcome
    call_notes
    call_ended_at
    call_started_at
    call_duration_seconds
    nok {
      call_status
      notes
      relation
      consent
      idNumber
    }
    customer_general_location
    preferred_delivery_day
    preferred_delivery_slot
    work_location
    work_location_link
    screening_consent
    accept_loan_terms
    extras
    createdAt
    updatedAt
  }
}
Variables
{"input": CreateApplicationCallDetailsInput}
Response
{
  "data": {
    "createApplicationCallDetail": {
      "_id": 4,
      "application_id": 4,
      "status": "abc123",
      "notes": "xyz789",
      "agent_name": "xyz789",
      "caller_id": "xyz789",
      "delivery_location_type": "xyz789",
      "priority": "xyz789",
      "call_date": "2007-12-03T10:15:30Z",
      "follow_up_required": true,
      "customer_location": "xyz789",
      "employer_info": "xyz789",
      "employment_details": "xyz789",
      "delivery_location": "abc123",
      "product_choice": "xyz789",
      "confirmed_price_plan": "abc123",
      "geo_address": "xyz789",
      "delivery_or_collection_location": "xyz789",
      "other_delivery_notes": "abc123",
      "call_type": "NOK",
      "call_outcome": "xyz789",
      "call_notes": "abc123",
      "call_ended_at": "2007-12-03T10:15:30Z",
      "call_started_at": "2007-12-03T10:15:30Z",
      "call_duration_seconds": 123.45,
      "nok": CallDetailsNokType,
      "customer_general_location": "xyz789",
      "preferred_delivery_day": "2007-12-03T10:15:30Z",
      "preferred_delivery_slot": "xyz789",
      "work_location": "abc123",
      "work_location_link": "abc123",
      "screening_consent": "abc123",
      "accept_loan_terms": "abc123",
      "extras": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

createCallDisposition

Description

Create a new call disposition

Response

Returns a CallDispositionType!

Arguments
Name Description
input - CreateCallDispositionInput!

Example

Query
mutation createCallDisposition($input: CreateCallDispositionInput!) {
  createCallDisposition(input: $input) {
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    disposition
    notes
    priority
    next_call_date
    createdAt
    updatedAt
  }
}
Variables
{"input": CreateCallDispositionInput}
Response
{
  "data": {
    "createCallDisposition": {
      "_id": 4,
      "application_id": "4",
      "application": ApplicationEntityGraphQL,
      "disposition": "abc123",
      "notes": "abc123",
      "priority": "xyz789",
      "next_call_date": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

createCategory

Response

Returns a CategoryObjectType!

Arguments
Name Description
input - CreateCategoryInput!

Example

Query
mutation createCategory($input: CreateCategoryInput!) {
  createCategory(input: $input) {
    category_id
    name
    slug
    description
    icon_url
    image_url
    required_attributes
    sku_attributes
    parent_category_id
    level
    path
    sort_order
    is_active
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"input": CreateCategoryInput}
Response
{
  "data": {
    "createCategory": {
      "category_id": "4",
      "name": "xyz789",
      "slug": "xyz789",
      "description": "abc123",
      "icon_url": "abc123",
      "image_url": "abc123",
      "required_attributes": {},
      "sku_attributes": {},
      "parent_category_id": "xyz789",
      "level": 987.65,
      "path": "xyz789",
      "sort_order": 987.65,
      "is_active": false,
      "meta_title": "xyz789",
      "meta_description": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createCommission

Response

Returns a CommissionObjectType!

Arguments
Name Description
input - CreateCommissionInput!

Example

Query
mutation createCommission($input: CreateCommissionInput!) {
  createCommission(input: $input) {
    id
    channel_type
    commission_type
    attribute_type
    commission_value_type
    sku_id
    min_price
    max_price
    product_commission
    loan_commission
    cash_commission
    start_date
    end_date
    is_active
    created_at
    updated_at
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    overrides {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateCommissionInput}
Response
{
  "data": {
    "createCommission": {
      "id": "4",
      "channel_type": "ONLINE_AGENT",
      "commission_type": "FLAT",
      "attribute_type": "ALL",
      "commission_value_type": "FLAT",
      "sku_id": "xyz789",
      "min_price": 123.45,
      "max_price": 123.45,
      "product_commission": 123.45,
      "loan_commission": 987.65,
      "cash_commission": 123.45,
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sku": SkuObjectType,
      "overrides": [CommissionOverrideObjectType]
    }
  }
}

createCommissionOverride

Response

Returns a CommissionOverrideObjectType!

Arguments
Name Description
input - CreateCommissionOverrideInput!

Example

Query
mutation createCommissionOverride($input: CreateCommissionOverrideInput!) {
  createCommissionOverride(input: $input) {
    id
    agent_profile_id
    commission_rule_id
    product_commission
    loan_commission
    cash_commission
    commission_value_type
    is_active
    created_at
    updated_at
    agent_profile {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateCommissionOverrideInput}
Response
{
  "data": {
    "createCommissionOverride": {
      "id": "4",
      "agent_profile_id": "abc123",
      "commission_rule_id": "xyz789",
      "product_commission": 987.65,
      "loan_commission": 123.45,
      "cash_commission": 987.65,
      "commission_value_type": "FLAT",
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "agent_profile": AgentProfileObjectType,
      "commission_rule": CommissionObjectType
    }
  }
}

createCondition

Response

Returns a ConditionObjectType!

Arguments
Name Description
input - CreateConditionInput!

Example

Query
mutation createCondition($input: CreateConditionInput!) {
  createCondition(input: $input) {
    condition_id
    grade
    name
    sort_order
    color_hex
    badge_icon
    criteria
    description
    internal_notes
    verification_requirements
    warranty_months
    price_multiplier
    financing_impact
    seller_requirements
    is_active
    available_for_sellers
    created_at
    updated_at
  }
}
Variables
{"input": CreateConditionInput}
Response
{
  "data": {
    "createCondition": {
      "condition_id": "4",
      "grade": "abc123",
      "name": "xyz789",
      "sort_order": 987,
      "color_hex": "abc123",
      "badge_icon": "xyz789",
      "criteria": {},
      "description": "xyz789",
      "internal_notes": "abc123",
      "verification_requirements": {},
      "warranty_months": 987,
      "price_multiplier": 987.65,
      "financing_impact": {},
      "seller_requirements": {},
      "is_active": true,
      "available_for_sellers": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createCustomer

Response

Returns a RawCustomersDto!

Arguments
Name Description
input - CreateRawCustomersInput!

Example

Query
mutation createCustomer($input: CreateRawCustomersInput!) {
  createCustomer(input: $input) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"input": CreateRawCustomersInput}
Response
{
  "data": {
    "createCustomer": {
      "customer_id": "4",
      "customer_created_at": "2007-12-03T10:15:30Z",
      "customer_type": "INDIVIDUAL",
      "customer_phone_number": "abc123",
      "official_id_number": "xyz789",
      "country": "abc123",
      "county": "abc123",
      "sub_county": "abc123",
      "ward": "xyz789",
      "town": "abc123",
      "landmark": "xyz789",
      "customer_email_address": "abc123",
      "customer_status": "ACTIVE",
      "display_name": "abc123",
      "customer_first_name": "abc123",
      "customer_surname_name": "abc123",
      "organization_name": "abc123",
      "organization_registration_number": "abc123",
      "individual_details": IndividualDetailsDto,
      "organization_details": OrganizationDetailsDto,
      "contact_person": ContactPersonDto,
      "kyc_documents": KycDocumentsDto,
      "next_of_kin": NextOfKinDto,
      "total_loans_taken": 123.45,
      "active_loans_count": 987.65,
      "completed_loans_count": 123.45,
      "has_defaulted": true,
      "current_credit_score": "abc123",
      "metadata": {},
      "customer_updated_at": "2007-12-03T10:15:30Z",
      "keycloak_id": "abc123",
      "referral_code": "abc123",
      "applications": [ApplicationEntityGraphQL],
      "latestApplication": ApplicationEntityGraphQL
    }
  }
}

createCustomerFromApplication

Response

Returns a RawCustomersDto!

Arguments
Name Description
input - CreateCustomerFromApplicationInput!

Example

Query
mutation createCustomerFromApplication($input: CreateCustomerFromApplicationInput!) {
  createCustomerFromApplication(input: $input) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"input": CreateCustomerFromApplicationInput}
Response
{
  "data": {
    "createCustomerFromApplication": {
      "customer_id": 4,
      "customer_created_at": "2007-12-03T10:15:30Z",
      "customer_type": "INDIVIDUAL",
      "customer_phone_number": "abc123",
      "official_id_number": "xyz789",
      "country": "abc123",
      "county": "abc123",
      "sub_county": "xyz789",
      "ward": "xyz789",
      "town": "xyz789",
      "landmark": "xyz789",
      "customer_email_address": "xyz789",
      "customer_status": "ACTIVE",
      "display_name": "xyz789",
      "customer_first_name": "xyz789",
      "customer_surname_name": "xyz789",
      "organization_name": "abc123",
      "organization_registration_number": "abc123",
      "individual_details": IndividualDetailsDto,
      "organization_details": OrganizationDetailsDto,
      "contact_person": ContactPersonDto,
      "kyc_documents": KycDocumentsDto,
      "next_of_kin": NextOfKinDto,
      "total_loans_taken": 987.65,
      "active_loans_count": 987.65,
      "completed_loans_count": 987.65,
      "has_defaulted": false,
      "current_credit_score": "abc123",
      "metadata": {},
      "customer_updated_at": "2007-12-03T10:15:30Z",
      "keycloak_id": "abc123",
      "referral_code": "xyz789",
      "applications": [ApplicationEntityGraphQL],
      "latestApplication": ApplicationEntityGraphQL
    }
  }
}

createCustomerReferral

Response

Returns a CustomerReferralDto!

Arguments
Name Description
input - CreateCustomerReferralInput!

Example

Query
mutation createCustomerReferral($input: CreateCustomerReferralInput!) {
  createCustomerReferral(input: $input) {
    referral_id
    referrer_customer_id
    referee_customer_id
    referee_customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    referral_code_used
    referral_status
    validation_due_date
    validated_at
    rewards_processed_at
    referee_loan_contract_id
    referee_opening_date
    payment_adjustment_id
    referrer_airtime_transaction_id
    referee_airtime_transaction_id
    created_by
    created_at
    updated_by
    updated_at
  }
}
Variables
{"input": CreateCustomerReferralInput}
Response
{
  "data": {
    "createCustomerReferral": {
      "referral_id": 4,
      "referrer_customer_id": "4",
      "referee_customer_id": 4,
      "referee_customer": RawCustomersDto,
      "referral_code_used": "abc123",
      "referral_status": "INCOMPLETE",
      "validation_due_date": "2007-12-03T10:15:30Z",
      "validated_at": "2007-12-03T10:15:30Z",
      "rewards_processed_at": "2007-12-03T10:15:30Z",
      "referee_loan_contract_id": "abc123",
      "referee_opening_date": "2007-12-03T10:15:30Z",
      "payment_adjustment_id": "xyz789",
      "referrer_airtime_transaction_id": "xyz789",
      "referee_airtime_transaction_id": "xyz789",
      "created_by": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_by": "abc123",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createCustomerWallet

Response

Returns a RawCustomerWalletsDto!

Arguments
Name Description
input - CreateRawCustomerWalletsInput!

Example

Query
mutation createCustomerWallet($input: CreateRawCustomerWalletsInput!) {
  createCustomerWallet(input: $input) {
    customer_wallet_id
    customer_id
    customer_wallet_available_balance
    customer_wallet_total_payments
    customer_wallet_total_adjustments
    customer_wallet_total_days_given
    customer_wallet_total_points
    customer_wallet_total_allocated
    customer_wallet_lifetime_credits
    customer_wallet_lifetime_debits
    customer_wallet_currency
    customer_wallet_created_at
    customer_wallet_updated_at
  }
}
Variables
{"input": CreateRawCustomerWalletsInput}
Response
{
  "data": {
    "createCustomerWallet": {
      "customer_wallet_id": "4",
      "customer_id": 4,
      "customer_wallet_available_balance": 987.65,
      "customer_wallet_total_payments": 123.45,
      "customer_wallet_total_adjustments": 123.45,
      "customer_wallet_total_days_given": 987.65,
      "customer_wallet_total_points": 987.65,
      "customer_wallet_total_allocated": 987.65,
      "customer_wallet_lifetime_credits": 123.45,
      "customer_wallet_lifetime_debits": 123.45,
      "customer_wallet_currency": "KES",
      "customer_wallet_created_at": "2007-12-03T10:15:30Z",
      "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createDelivery

Response

Returns [DeliveryObjectType!]!

Arguments
Name Description
orderId - ID!

Example

Query
mutation createDelivery($orderId: ID!) {
  createDelivery(orderId: $orderId) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"orderId": 4}
Response
{
  "data": {
    "createDelivery": [
      {
        "delivery_id": "4",
        "order_id": "4",
        "seller_id": "4",
        "assigned_rider_id": "4",
        "delivery_status": "PENDING",
        "delivery_address": DeliveryAddress,
        "tracking_number": "xyz789",
        "provider_info": ProviderInfo,
        "proof_of_delivery": ProofOfDelivery,
        "delivery_notes": "abc123",
        "destination_location": GeoLocation,
        "estimated_arrival": "2007-12-03T10:15:30Z",
        "actual_arrival": "2007-12-03T10:15:30Z",
        "metadata": {},
        "assigned_rider": UserObjectType,
        "seller": SellerObjectType,
        "order": OrderObjectType,
        "items": [DeliveryItemObjectType],
        "calls": [DeliveryCallObjectType],
        "latestAnsweredCall": DeliveryCallObjectType,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "deliveryItems": [DeliveryItemObjectType]
      }
    ]
  }
}

createDeliveryCall

Response

Returns a DeliveryCallObjectType!

Arguments
Name Description
input - CreateDeliveryCallInput!

Example

Query
mutation createDeliveryCall($input: CreateDeliveryCallInput!) {
  createDeliveryCall(input: $input) {
    call_id
    order_id
    called_by
    caller {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    confirmed_delivery_location {
      street
      city
      state
      postal_code
      country
      geo {
        ...DeliveryCallGeoFragment
      }
    }
    spec_preference {
      colour
      sim_card_preference
    }
    confirmed_delivery_date
    confirmed_delivery_slot
    call_time
    outcome
    confirmed_delivery_type
    confirmed_delivery_type_name
    notes
    metadata
    created_at
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateDeliveryCallInput}
Response
{
  "data": {
    "createDeliveryCall": {
      "call_id": "4",
      "order_id": "4",
      "called_by": 4,
      "caller": UserObjectType,
      "confirmed_delivery_location": ConfirmedDeliveryLocationObjectType,
      "spec_preference": SpecPreferenceObjectType,
      "confirmed_delivery_date": "abc123",
      "confirmed_delivery_slot": "MORNING",
      "call_time": "2007-12-03T10:15:30Z",
      "outcome": "CALL_BACK",
      "confirmed_delivery_type": "DELIVERY",
      "confirmed_delivery_type_name": "MO",
      "notes": "xyz789",
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "order": OrderObjectType
    }
  }
}

createDeliveryItem

Response

Returns a DeliveryItemObjectType!

Arguments
Name Description
input - CreateDeliveryItemInput!

Example

Query
mutation createDeliveryItem($input: CreateDeliveryItemInput!) {
  createDeliveryItem(input: $input) {
    id
    delivery_id
    order_item_id
    quantity_shipped
    delivery {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateDeliveryItemInput}
Response
{
  "data": {
    "createDeliveryItem": {
      "id": 4,
      "delivery_id": "4",
      "order_item_id": 4,
      "quantity_shipped": 987.65,
      "delivery": DeliveryObjectType,
      "order_item": OrderItemObjectType
    }
  }
}

createDowngradeRequest

Description

Create a new downgrade request

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
input - CreateDowngradeRequestInput!

Example

Query
mutation createDowngradeRequest($input: CreateDowngradeRequestInput!) {
  createDowngradeRequest(input: $input) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"input": CreateDowngradeRequestInput}
Response
{
  "data": {
    "createDowngradeRequest": {
      "_id": 4,
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "xyz789",
      "ticket_id": "abc123",
      "current_device_id": "abc123",
      "target_device_model": "xyz789",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "abc123",
      "cxc_notes": "abc123",
      "submitted_by": "xyz789",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 987.65,
      "amount_paid_to_date": 123.45,
      "current_device_deposit": 123.45,
      "new_device_deposit": 123.45,
      "new_device_price": 987.65,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": false,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "xyz789",
      "superseded_by_request_id": "xyz789",
      "supersedes_request_id": "abc123",
      "workflow_switch_reason": "abc123",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": false,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "xyz789",
      "mpesa_reference": "xyz789",
      "upgrade_policy_mode": "abc123",
      "customer_age_weeks_at_decision": 987,
      "new_credit_sale_id": 4,
      "new_credit_sale_activated_at": "xyz789",
      "topup_confirmed_at": "xyz789",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": false,
      "pending_detach_inventory_id": 4,
      "manual_detach_detached_at": "xyz789",
      "manual_detach_inventory_id": 4,
      "linked_application_id": 4
    }
  }
}

createDraftPricePlan

Response

Returns a PricePlanObjectType!

Arguments
Name Description
input - CreateDraftPricePlanInput!

Example

Query
mutation createDraftPricePlan($input: CreateDraftPricePlanInput!) {
  createDraftPricePlan(input: $input) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateDraftPricePlanInput}
Response
{
  "data": {
    "createDraftPricePlan": {
      "id": 4,
      "tier_id": "xyz789",
      "parent_plan_id": "xyz789",
      "code": "xyz789",
      "name": "abc123",
      "min_device_value": 987.65,
      "max_device_value": 987.65,
      "deposit_percent": 123.45,
      "deposit_percent_high": 987.65,
      "subsequent_loan_discount_percent": 987.65,
      "loan_multiplier": 987.65,
      "loan_multiplier_high": 987.65,
      "mocare_percent": 123.45,
      "duration_months": 123,
      "duration_months_high": 123,
      "payment_frequency": "DAILY",
      "effective_from": "2007-12-03T10:15:30Z",
      "effective_to": "2007-12-03T10:15:30Z",
      "early_payoff_discounts": [
        EarlyPayoffDiscountObjectType
      ],
      "status": "ACTIVE",
      "is_private": false,
      "version": 987,
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "tier": SellerTierObjectType,
      "versions": [PricePlanObjectType]
    }
  }
}

createFlashSale

Response

Returns a FlashSaleObjectType!

Arguments
Name Description
input - CreateFlashSaleInput!

Example

Query
mutation createFlashSale($input: CreateFlashSaleInput!) {
  createFlashSale(input: $input) {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"input": CreateFlashSaleInput}
Response
{
  "data": {
    "createFlashSale": {
      "flash_sale_id": 4,
      "title": "xyz789",
      "slug": "abc123",
      "description": "abc123",
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "status": "SCHEDULED",
      "max_quantity": 123,
      "sold_quantity": 987,
      "min_discount_percentage": 987.65,
      "is_featured": false,
      "banner_image": "xyz789",
      "icon_url": "abc123",
      "countdown_display": false,
      "priority": 987,
      "participating_sellers": ["xyz789"],
      "performance_metrics": {},
      "meta_title": "abc123",
      "meta_description": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createFlashSaleItem

Response

Returns a FlashSaleItemObjectType!

Arguments
Name Description
input - CreateFlashSaleItemInput!

Example

Query
mutation createFlashSaleItem($input: CreateFlashSaleItemInput!) {
  createFlashSaleItem(input: $input) {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Variables
{"input": CreateFlashSaleItemInput}
Response
{
  "data": {
    "createFlashSaleItem": {
      "flash_sale_item_id": 4,
      "flash_sale_id": "abc123",
      "seller_catalog_id": "xyz789",
      "product_id": "abc123",
      "sku_id": "xyz789",
      "original_price": 123.45,
      "flash_sale_price": 123.45,
      "discount_percentage": 987.65,
      "stock_allocated": 987,
      "stock_sold": 987,
      "stock_remaining": 987,
      "max_per_customer": 987,
      "display_priority": 987,
      "is_featured": false,
      "badge_text": "abc123",
      "created_at": "2007-12-03T10:15:30Z"
    }
  }
}

createGroup

Response

Returns a GroupObjectType!

Arguments
Name Description
input - CreateGroupInput!

Example

Query
mutation createGroup($input: CreateGroupInput!) {
  createGroup(input: $input) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateGroupInput}
Response
{
  "data": {
    "createGroup": {
      "_id": "xyz789",
      "keycloak_id": "abc123",
      "name": "abc123",
      "realm": "abc123",
      "path": "abc123",
      "description": "abc123",
      "attributes": {},
      "parent_id": "xyz789",
      "children": ["xyz789"],
      "level": 123,
      "member_keycloak_ids": ["xyz789"],
      "member_count": 123,
      "synced_at": "2007-12-03T10:15:30Z",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "parent": GroupObjectType,
      "childrenDetails": [GroupObjectType]
    }
  }
}

createInventory

Response

Returns an InventoryCreationResult!

Arguments
Name Description
input - CreateInventoryInput!

Example

Query
mutation createInventory($input: CreateInventoryInput!) {
  createInventory(input: $input) {
    ... on InventoryObjectType {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    ... on BulkInventoryResult {
      success {
        ...InventoryObjectTypeFragment
      }
      failed {
        ...BulkInventoryErrorFragment
      }
    }
  }
}
Variables
{"input": CreateInventoryInput}
Response
{"data": {"createInventory": InventoryObjectType}}

createInventoryAllocation

Response

Returns an InventoryAllocationObjectType!

Arguments
Name Description
input - CreateInventoryAllocationInput!

Example

Query
mutation createInventoryAllocation($input: CreateInventoryAllocationInput!) {
  createInventoryAllocation(input: $input) {
    inventory_allocation_id
    order_item_id
    inventory_id
    quantity_allocated
    allocation_status
    allocation_date
    expiry_date
    metadata
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    created_at
    updated_at
  }
}
Variables
{"input": CreateInventoryAllocationInput}
Response
{
  "data": {
    "createInventoryAllocation": {
      "inventory_allocation_id": "4",
      "order_item_id": 4,
      "inventory_id": 4,
      "quantity_allocated": 987.65,
      "allocation_status": "RESERVED",
      "allocation_date": "2007-12-03T10:15:30Z",
      "expiry_date": "2007-12-03T10:15:30Z",
      "metadata": {},
      "order_item": OrderItemObjectType,
      "inventory": InventoryObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createInventoryLocation

Response

Returns an InventoryLocationObjectType!

Arguments
Name Description
input - CreateInventoryLocationInput!

Example

Query
mutation createInventoryLocation($input: CreateInventoryLocationInput!) {
  createInventoryLocation(input: $input) {
    inventory_location_id
    location_name
    location_type
    location_code
    address
    city
    region
    coordinates {
      lat
      lng
    }
    location_details {
      country
      county
      sub_county
      ward
      town
      landmark
      gps_coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
    }
    user_id
    manager_id
    capacity
    current_stock
    is_active
    operating_hours
    seller_id
    created_at
    updated_at
  }
}
Variables
{"input": CreateInventoryLocationInput}
Response
{
  "data": {
    "createInventoryLocation": {
      "inventory_location_id": 4,
      "location_name": "abc123",
      "location_type": "TRANSIT_INBOUND",
      "location_code": "abc123",
      "address": "abc123",
      "city": "xyz789",
      "region": "abc123",
      "coordinates": InventoryCoordinatesObjectType,
      "location_details": InventoryLocationDetailsObjectType,
      "user_id": "xyz789",
      "manager_id": "abc123",
      "capacity": 987,
      "current_stock": 987,
      "is_active": true,
      "operating_hours": {},
      "seller_id": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createOrder

Response

Returns an OrderObjectType!

Arguments
Name Description
input - CreateOrderInput!

Example

Query
mutation createOrder($input: CreateOrderInput!) {
  createOrder(input: $input) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateOrderInput}
Response
{
  "data": {
    "createOrder": {
      "order_id": "4",
      "customer_id": "4",
      "order_status": "PENDING",
      "payment_status": "UNPAID",
      "shipping_address": ShippingAddress,
      "currency": "xyz789",
      "sub_total": 123.45,
      "total_discount": 123.45,
      "delivery_fee": 123.45,
      "service_fee": 987.65,
      "tax_amount": 123.45,
      "total_amount": 123.45,
      "application_id": "xyz789",
      "sale_agent_id": "xyz789",
      "submitting_agent_id": "abc123",
      "manual_override": true,
      "order_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "application": ApplicationEntityGraphQL,
      "orderItems": [OrderItemObjectType],
      "deliveries": [DeliveryObjectType],
      "sales": [SalesObjectType],
      "deliveryCalls": [DeliveryCallObjectType]
    }
  }
}

createOrderItem

Response

Returns an OrderItemObjectType!

Arguments
Name Description
input - CreateOrderItemInput!

Example

Query
mutation createOrderItem($input: CreateOrderItemInput!) {
  createOrderItem(input: $input) {
    order_item_id
    order_id
    seller_id
    item_type
    catalog_id
    quantity
    unit_price
    discount_amount
    adjustments
    subtotal
    purchase_type
    status
    metadata
    created_at
    updated_at
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    delivery_items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    inventory_allocations {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
    inventory_allocation {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
  }
}
Variables
{"input": CreateOrderItemInput}
Response
{
  "data": {
    "createOrderItem": {
      "order_item_id": "4",
      "order_id": "4",
      "seller_id": 4,
      "item_type": "PRODUCT",
      "catalog_id": 4,
      "quantity": 123.45,
      "unit_price": 987.65,
      "discount_amount": 123.45,
      "adjustments": {},
      "subtotal": 123.45,
      "purchase_type": "CASH",
      "status": "abc123",
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sellerCatalog": SellerCatalogObjectType,
      "order": OrderObjectType,
      "delivery_items": [DeliveryItemObjectType],
      "inventory_allocations": [
        InventoryAllocationObjectType
      ],
      "inventory_allocation": InventoryAllocationObjectType
    }
  }
}

createPricePlan

Response

Returns a PricePlanObjectType!

Arguments
Name Description
input - CreatePricePlanInput!

Example

Query
mutation createPricePlan($input: CreatePricePlanInput!) {
  createPricePlan(input: $input) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreatePricePlanInput}
Response
{
  "data": {
    "createPricePlan": {
      "id": 4,
      "tier_id": "abc123",
      "parent_plan_id": "abc123",
      "code": "xyz789",
      "name": "xyz789",
      "min_device_value": 987.65,
      "max_device_value": 123.45,
      "deposit_percent": 123.45,
      "deposit_percent_high": 987.65,
      "subsequent_loan_discount_percent": 123.45,
      "loan_multiplier": 987.65,
      "loan_multiplier_high": 987.65,
      "mocare_percent": 987.65,
      "duration_months": 987,
      "duration_months_high": 123,
      "payment_frequency": "DAILY",
      "effective_from": "2007-12-03T10:15:30Z",
      "effective_to": "2007-12-03T10:15:30Z",
      "early_payoff_discounts": [
        EarlyPayoffDiscountObjectType
      ],
      "status": "ACTIVE",
      "is_private": false,
      "version": 987,
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "tier": SellerTierObjectType,
      "versions": [PricePlanObjectType]
    }
  }
}

createProduct

Response

Returns a ProductObjectType!

Arguments
Name Description
input - CreateProductInput!

Example

Query
mutation createProduct($input: CreateProductInput!) {
  createProduct(input: $input) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"input": CreateProductInput}
Response
{
  "data": {
    "createProduct": {
      "product_id": "4",
      "name": "xyz789",
      "slug": "xyz789",
      "brand": "abc123",
      "model": "abc123",
      "category_id": "abc123",
      "category": CategoryObjectType,
      "description": "xyz789",
      "long_description": "abc123",
      "base_specifications": {},
      "primary_image_url": "xyz789",
      "images": ["xyz789"],
      "video_url": "xyz789",
      "meta_title": "abc123",
      "meta_description": "xyz789",
      "keywords": ["xyz789"],
      "is_active": true,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "xyz789",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createProductOffer

Response

Returns a ProductOfferObjectType!

Arguments
Name Description
input - CreateProductOfferInput!

Example

Query
mutation createProductOffer($input: CreateProductOfferInput!) {
  createProductOffer(input: $input) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{"input": CreateProductOfferInput}
Response
{
  "data": {
    "createProductOffer": {
      "product_offer_id": 4,
      "sku_id": 4,
      "description": "xyz789",
      "status": "DRAFT",
      "type": "PERCENTAGE",
      "discount_value": 987.65,
      "minimum_purchase_amount": 987.65,
      "maximum_discount_amount": 123.45,
      "usage_limit": 987,
      "usage_count": 987,
      "usage_limit_per_customer": 987,
      "promo_code": "abc123",
      "category_filters": ["xyz789"],
      "brand_filters": ["abc123"],
      "applicable_channels": ["abc123"],
      "active": true,
      "starts_at": "2007-12-03T10:15:30Z",
      "ends_at": "2007-12-03T10:15:30Z",
      "seller_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createRefund

Description

Create a new refund record

Response

Returns a RefundGraphQL!

Arguments
Name Description
input - CreateRefundInput!

Example

Query
mutation createRefund($input: CreateRefundInput!) {
  createRefund(input: $input) {
    refund_id
    customer_id
    sale_id
    returns_request_id
    order_id
    loan_contract_id
    source_payment_id
    adjustment_id
    refund_workflow_type
    refund_amount
    status
    refund_method
    transaction_reference
    submitted_by
    submitted_by_name
    actor_id
    approved_by
    approved_by_name
    customer_name
    customer_phone
    customer_official_id
    approved_at
    processed_at
    completed_at
    notes
    rejection_reason
    returns_request_type
    created_at
    updated_at
  }
}
Variables
{"input": CreateRefundInput}
Response
{
  "data": {
    "createRefund": {
      "refund_id": "4",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "returns_request_id": "abc123",
      "order_id": "abc123",
      "loan_contract_id": "xyz789",
      "source_payment_id": "xyz789",
      "adjustment_id": "abc123",
      "refund_workflow_type": "RETURN",
      "refund_amount": 123.45,
      "status": "PENDING",
      "refund_method": "MPESA",
      "transaction_reference": "xyz789",
      "submitted_by": "abc123",
      "submitted_by_name": "abc123",
      "actor_id": "xyz789",
      "approved_by": "xyz789",
      "approved_by_name": "xyz789",
      "customer_name": "xyz789",
      "customer_phone": "xyz789",
      "customer_official_id": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "processed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "notes": "xyz789",
      "rejection_reason": "abc123",
      "returns_request_type": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createRepair

Response

Returns a RepairObjectType!

Arguments
Name Description
input - CreateRepairInput!

Example

Query
mutation createRepair($input: CreateRepairInput!) {
  createRepair(input: $input) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateRepairInput}
Response
{
  "data": {
    "createRepair": {
      "repair_id": 4,
      "repair_display_id": "xyz789",
      "requires_technician": true,
      "inventory_id": "xyz789",
      "customer_id": "xyz789",
      "original_sale_id": "xyz789",
      "provider_seller_id": "xyz789",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": false,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "xyz789",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "abc123",
      "billing_type": "WARRANTY",
      "quoted_price": 987.65,
      "spares_cost": 123.45,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

createRepossessionRequest

Description

Create a new standalone repossession request

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
input - CreateRepossessionRequestInput!

Example

Query
mutation createRepossessionRequest($input: CreateRepossessionRequestInput!) {
  createRepossessionRequest(input: $input) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"input": CreateRepossessionRequestInput}
Response
{
  "data": {
    "createRepossessionRequest": {
      "_id": 4,
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "xyz789",
      "ticket_id": "abc123",
      "current_device_id": "abc123",
      "target_device_model": "abc123",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "xyz789",
      "cxc_notes": "abc123",
      "submitted_by": "xyz789",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 987.65,
      "new_device_deposit": 987.65,
      "new_device_price": 987.65,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": true,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "abc123",
      "lane_owner": "xyz789",
      "superseded_by_request_id": "abc123",
      "supersedes_request_id": "xyz789",
      "workflow_switch_reason": "abc123",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": true,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "abc123",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "abc123",
      "customer_age_weeks_at_decision": 987,
      "new_credit_sale_id": "4",
      "new_credit_sale_activated_at": "abc123",
      "topup_confirmed_at": "abc123",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": false,
      "pending_detach_inventory_id": "4",
      "manual_detach_detached_at": "xyz789",
      "manual_detach_inventory_id": "4",
      "linked_application_id": "4"
    }
  }
}

createReturnRequest

Description

Create a new return request

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
input - CreateReturnRequestInput!

Example

Query
mutation createReturnRequest($input: CreateReturnRequestInput!) {
  createReturnRequest(input: $input) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"input": CreateReturnRequestInput}
Response
{
  "data": {
    "createReturnRequest": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "ticket_id": "xyz789",
      "current_device_id": "xyz789",
      "target_device_model": "abc123",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "xyz789",
      "cxc_notes": "abc123",
      "submitted_by": "abc123",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 987.65,
      "amount_paid_to_date": 123.45,
      "current_device_deposit": 123.45,
      "new_device_deposit": 987.65,
      "new_device_price": 123.45,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": false,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "xyz789",
      "superseded_by_request_id": "xyz789",
      "supersedes_request_id": "xyz789",
      "workflow_switch_reason": "abc123",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": true,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "xyz789",
      "fulfillment_mode": "xyz789",
      "mpesa_reference": "xyz789",
      "upgrade_policy_mode": "xyz789",
      "customer_age_weeks_at_decision": 987,
      "new_credit_sale_id": "4",
      "new_credit_sale_activated_at": "abc123",
      "topup_confirmed_at": "abc123",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": false,
      "pending_detach_inventory_id": 4,
      "manual_detach_detached_at": "xyz789",
      "manual_detach_inventory_id": 4,
      "linked_application_id": "4"
    }
  }
}

createRole

Response

Returns a RoleObjectType!

Arguments
Name Description
input - CreateRoleInput!

Example

Query
mutation createRole($input: CreateRoleInput!) {
  createRole(input: $input) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{"input": CreateRoleInput}
Response
{
  "data": {
    "createRole": {
      "_id": "xyz789",
      "id": "xyz789",
      "name": "abc123",
      "level": 987,
      "permissions": ["abc123"],
      "description": "abc123",
      "canManage": ["abc123"],
      "realm": "abc123"
    }
  }
}

createSale

Response

Returns a SalesObjectType!

Arguments
Name Description
input - CreateSalesInput!

Example

Query
mutation createSale($input: CreateSalesInput!) {
  createSale(input: $input) {
    sale_id
    sale_date
    order_id
    customer_id
    sale_agent_id
    submitting_agent_id
    sfm_id
    price_plan_id
    pricePlan {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    inventory_id
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    payment_type
    payment_status
    normal_high_deposit
    final_sale_price
    upfront_payment
    gross_loan_amount
    marketplace_fee
    seller_payout
    invoice_number
    status
    return_date
    created_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    loan_contract {
      contract_id
      loan_id
      sale_id
      customer_id
      customer {
        ...RawCustomersDtoFragment
      }
      opening_date
      duration
      upfront_payment
      deposit
      repayment_type
      gross_loan_amount
      net_loan_amount
      interest_rate
      repayment_rate
      interest_calculation_method
      payment_allocation_method
      disbursement_date
      maturity_date
      first_payment_due_date
      grace_period_days
      penalty_rate_per_day
      is_restructured
      original_contract_id
      loan_product_code
      loan_status_override
      early_payoff_discounts {
        ...LoanEarlyPayoffDiscountTypeFragment
      }
      metadata
      created_at
      updated_at
      installments {
        ...LoanInstallmentDtoFragment
      }
      overdueInstallments {
        ...LoanInstallmentDtoFragment
      }
      nextDueInstallment {
        ...LoanInstallmentDtoFragment
      }
      ledgerEntries {
        ...LoanLedgerDtoFragment
      }
      delinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      paymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      latest_ledger_id
      grace_period_status
      grace_period_category
      grace_period_credit_expiry
      grace_period_last_trigger_source
      returned_date
      is_lost
      latest_ledger {
        ...LoanLedgerDtoFragment
      }
      contract {
        ...LoanContractDtoFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      commission_rule_id
      commission_override_id
      is_override
    }
    cash_price
    reporting {
      loan_id
      business_model
      is_3p_sale
      partner_name
      credit_check_done
      cash_price
      loan_price
      loan_period
    }
  }
}
Variables
{"input": CreateSalesInput}
Response
{
  "data": {
    "createSale": {
      "sale_id": "4",
      "sale_date": "2007-12-03T10:15:30Z",
      "order_id": "4",
      "customer_id": 4,
      "sale_agent_id": 4,
      "submitting_agent_id": "4",
      "sfm_id": "4",
      "price_plan_id": "4",
      "pricePlan": PricePlanObjectType,
      "inventory_id": "4",
      "inventory": InventoryObjectType,
      "payment_type": "REPAIR",
      "payment_status": "UNPAID",
      "normal_high_deposit": "NORMAL",
      "final_sale_price": 987.65,
      "upfront_payment": 123.45,
      "gross_loan_amount": 123.45,
      "marketplace_fee": 987.65,
      "seller_payout": 123.45,
      "invoice_number": "xyz789",
      "status": "ACTIVE",
      "return_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "order": OrderObjectType,
      "loan_contract": LoanContractDto,
      "commission": CommissionSnapshotType,
      "cash_price": 987.65,
      "reporting": SaleReportingType
    }
  }
}

createSaleFromOrder

Response

Returns a SalesObjectType!

Arguments
Name Description
orderId - ID!
pricePlanId - ID
productCashPrice - Float
saleDate - DateTime

Example

Query
mutation createSaleFromOrder(
  $orderId: ID!,
  $pricePlanId: ID,
  $productCashPrice: Float,
  $saleDate: DateTime
) {
  createSaleFromOrder(
    orderId: $orderId,
    pricePlanId: $pricePlanId,
    productCashPrice: $productCashPrice,
    saleDate: $saleDate
  ) {
    sale_id
    sale_date
    order_id
    customer_id
    sale_agent_id
    submitting_agent_id
    sfm_id
    price_plan_id
    pricePlan {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    inventory_id
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    payment_type
    payment_status
    normal_high_deposit
    final_sale_price
    upfront_payment
    gross_loan_amount
    marketplace_fee
    seller_payout
    invoice_number
    status
    return_date
    created_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    loan_contract {
      contract_id
      loan_id
      sale_id
      customer_id
      customer {
        ...RawCustomersDtoFragment
      }
      opening_date
      duration
      upfront_payment
      deposit
      repayment_type
      gross_loan_amount
      net_loan_amount
      interest_rate
      repayment_rate
      interest_calculation_method
      payment_allocation_method
      disbursement_date
      maturity_date
      first_payment_due_date
      grace_period_days
      penalty_rate_per_day
      is_restructured
      original_contract_id
      loan_product_code
      loan_status_override
      early_payoff_discounts {
        ...LoanEarlyPayoffDiscountTypeFragment
      }
      metadata
      created_at
      updated_at
      installments {
        ...LoanInstallmentDtoFragment
      }
      overdueInstallments {
        ...LoanInstallmentDtoFragment
      }
      nextDueInstallment {
        ...LoanInstallmentDtoFragment
      }
      ledgerEntries {
        ...LoanLedgerDtoFragment
      }
      delinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      paymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      latest_ledger_id
      grace_period_status
      grace_period_category
      grace_period_credit_expiry
      grace_period_last_trigger_source
      returned_date
      is_lost
      latest_ledger {
        ...LoanLedgerDtoFragment
      }
      contract {
        ...LoanContractDtoFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      commission_rule_id
      commission_override_id
      is_override
    }
    cash_price
    reporting {
      loan_id
      business_model
      is_3p_sale
      partner_name
      credit_check_done
      cash_price
      loan_price
      loan_period
    }
  }
}
Variables
{
  "orderId": "4",
  "pricePlanId": 4,
  "productCashPrice": 123.45,
  "saleDate": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "createSaleFromOrder": {
      "sale_id": 4,
      "sale_date": "2007-12-03T10:15:30Z",
      "order_id": 4,
      "customer_id": 4,
      "sale_agent_id": 4,
      "submitting_agent_id": "4",
      "sfm_id": 4,
      "price_plan_id": "4",
      "pricePlan": PricePlanObjectType,
      "inventory_id": 4,
      "inventory": InventoryObjectType,
      "payment_type": "REPAIR",
      "payment_status": "UNPAID",
      "normal_high_deposit": "NORMAL",
      "final_sale_price": 987.65,
      "upfront_payment": 123.45,
      "gross_loan_amount": 987.65,
      "marketplace_fee": 987.65,
      "seller_payout": 987.65,
      "invoice_number": "abc123",
      "status": "ACTIVE",
      "return_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "order": OrderObjectType,
      "loan_contract": LoanContractDto,
      "commission": CommissionSnapshotType,
      "cash_price": 123.45,
      "reporting": SaleReportingType
    }
  }
}

createSeller

Response

Returns a SellerObjectType!

Arguments
Name Description
input - CreateSellerInput!

Example

Query
mutation createSeller($input: CreateSellerInput!) {
  createSeller(input: $input) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"input": CreateSellerInput}
Response
{
  "data": {
    "createSeller": {
      "seller_id": 4,
      "commission_type_id": "xyz789",
      "tier_id": "abc123",
      "seller_type": "INTERNAL",
      "payment_details": {},
      "capabilities": {},
      "performance_metrics": {},
      "overall_rating": 123.45,
      "total_reviews": 123,
      "total_sales": 987,
      "total_orders_365_days": 123,
      "badges": ["abc123"],
      "suspension_reason": "xyz789",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "joined_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "partner_profile_id": "xyz789",
      "platform_owner": true,
      "partner_profile": PartnerProfileObjectType
    }
  }
}

createSellerCatalog

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
input - CreateSellerCatalogInput!

Example

Query
mutation createSellerCatalog($input: CreateSellerCatalogInput!) {
  createSellerCatalog(input: $input) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"input": CreateSellerCatalogInput}
Response
{
  "data": {
    "createSellerCatalog": {
      "seller_catalog_id": "4",
      "seller_id": "abc123",
      "sku_id": "xyz789",
      "cost_price": 123.45,
      "retail_price": 123.45,
      "currency": "xyz789",
      "stock_on_hand": 987,
      "reserved_stock": 123,
      "is_active": false,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 987,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

createSellerTier

Response

Returns a SellerTierObjectType!

Arguments
Name Description
input - CreateSellerTierInput!

Example

Query
mutation createSellerTier($input: CreateSellerTierInput!) {
  createSellerTier(input: $input) {
    id
    name
    description
    priority
    is_active
    created_at
    updated_at
    price_plans {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateSellerTierInput}
Response
{
  "data": {
    "createSellerTier": {
      "id": 4,
      "name": "xyz789",
      "description": "xyz789",
      "priority": 123,
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "price_plans": [PricePlanObjectType]
    }
  }
}

createSingleDelivery

Response

Returns a DeliveryObjectType!

Arguments
Name Description
input - CreateDeliveryInput!

Example

Query
mutation createSingleDelivery($input: CreateDeliveryInput!) {
  createSingleDelivery(input: $input) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"input": CreateDeliveryInput}
Response
{
  "data": {
    "createSingleDelivery": {
      "delivery_id": "4",
      "order_id": "4",
      "seller_id": 4,
      "assigned_rider_id": "4",
      "delivery_status": "PENDING",
      "delivery_address": DeliveryAddress,
      "tracking_number": "xyz789",
      "provider_info": ProviderInfo,
      "proof_of_delivery": ProofOfDelivery,
      "delivery_notes": "xyz789",
      "destination_location": GeoLocation,
      "estimated_arrival": "2007-12-03T10:15:30Z",
      "actual_arrival": "2007-12-03T10:15:30Z",
      "metadata": {},
      "assigned_rider": UserObjectType,
      "seller": SellerObjectType,
      "order": OrderObjectType,
      "items": [DeliveryItemObjectType],
      "calls": [DeliveryCallObjectType],
      "latestAnsweredCall": DeliveryCallObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "deliveryItems": [DeliveryItemObjectType]
    }
  }
}

createSku

Response

Returns a SkuObjectType!

Arguments
Name Description
input - CreateSkuInput!

Example

Query
mutation createSku($input: CreateSkuInput!) {
  createSku(input: $input) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"input": CreateSkuInput}
Response
{
  "data": {
    "createSku": {
      "sku_id": 4,
      "product_id": "abc123",
      "condition_id": "abc123",
      "parent_sku_id": "xyz789",
      "level": 123,
      "level_attribute_key": "abc123",
      "level_attribute_value": "xyz789",
      "sku_code": "abc123",
      "name": "abc123",
      "attributes": {},
      "variant_specifications": {},
      "msrp_price": 123.45,
      "min_seller_price": 123.45,
      "max_seller_price": 123.45,
      "suggested_retail_price": 987.65,
      "effective_price": 123.45,
      "images": ["xyz789"],
      "weight_grams": 123,
      "dimensions_mm": "xyz789",
      "is_active": false,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "abc123",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "product": ProductObjectType,
      "condition": ConditionObjectType
    }
  }
}

createSkuChild

Response

Returns a SkuObjectType!

Arguments
Name Description
parentId - ID!
input - CreateSkuChildInput!

Example

Query
mutation createSkuChild(
  $parentId: ID!,
  $input: CreateSkuChildInput!
) {
  createSkuChild(
    parentId: $parentId,
    input: $input
  ) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{
  "parentId": "4",
  "input": CreateSkuChildInput
}
Response
{
  "data": {
    "createSkuChild": {
      "sku_id": "4",
      "product_id": "abc123",
      "condition_id": "abc123",
      "parent_sku_id": "xyz789",
      "level": 987,
      "level_attribute_key": "xyz789",
      "level_attribute_value": "xyz789",
      "sku_code": "abc123",
      "name": "abc123",
      "attributes": {},
      "variant_specifications": {},
      "msrp_price": 123.45,
      "min_seller_price": 987.65,
      "max_seller_price": 123.45,
      "suggested_retail_price": 123.45,
      "effective_price": 987.65,
      "images": ["abc123"],
      "weight_grams": 123,
      "dimensions_mm": "abc123",
      "is_active": false,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "abc123",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "product": ProductObjectType,
      "condition": ConditionObjectType
    }
  }
}

createSwapRequest

Description

Create a new swap request

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
input - CreateSwapRequestInput!

Example

Query
mutation createSwapRequest($input: CreateSwapRequestInput!) {
  createSwapRequest(input: $input) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"input": CreateSwapRequestInput}
Response
{
  "data": {
    "createSwapRequest": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "xyz789",
      "ticket_id": "abc123",
      "current_device_id": "xyz789",
      "target_device_model": "xyz789",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "abc123",
      "cxc_notes": "abc123",
      "submitted_by": "abc123",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 987.65,
      "new_device_deposit": 123.45,
      "new_device_price": 987.65,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": true,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "abc123",
      "superseded_by_request_id": "xyz789",
      "supersedes_request_id": "abc123",
      "workflow_switch_reason": "abc123",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": false,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "abc123",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "abc123",
      "customer_age_weeks_at_decision": 123,
      "new_credit_sale_id": 4,
      "new_credit_sale_activated_at": "abc123",
      "topup_confirmed_at": "abc123",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": true,
      "pending_detach_inventory_id": 4,
      "manual_detach_detached_at": "xyz789",
      "manual_detach_inventory_id": "4",
      "linked_application_id": "4"
    }
  }
}

createUpgradeRequest

Description

Create a new upgrade request

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
input - CreateUpgradeRequestInput!

Example

Query
mutation createUpgradeRequest($input: CreateUpgradeRequestInput!) {
  createUpgradeRequest(input: $input) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"input": CreateUpgradeRequestInput}
Response
{
  "data": {
    "createUpgradeRequest": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "ticket_id": "xyz789",
      "current_device_id": "abc123",
      "target_device_model": "abc123",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "xyz789",
      "cxc_notes": "xyz789",
      "submitted_by": "abc123",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 123.45,
      "new_device_deposit": 987.65,
      "new_device_price": 123.45,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": false,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "xyz789",
      "superseded_by_request_id": "xyz789",
      "supersedes_request_id": "abc123",
      "workflow_switch_reason": "xyz789",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": true,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "xyz789",
      "fulfillment_mode": "xyz789",
      "mpesa_reference": "xyz789",
      "upgrade_policy_mode": "xyz789",
      "customer_age_weeks_at_decision": 123,
      "new_credit_sale_id": 4,
      "new_credit_sale_activated_at": "xyz789",
      "topup_confirmed_at": "abc123",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": true,
      "pending_detach_inventory_id": "4",
      "manual_detach_detached_at": "abc123",
      "manual_detach_inventory_id": "4",
      "linked_application_id": 4
    }
  }
}

createUser

Response

Returns a UserObjectType!

Arguments
Name Description
input - CreateUserInput!

Example

Query
mutation createUser($input: CreateUserInput!) {
  createUser(input: $input) {
    _id
    id
    keycloak_id
    username
    email
    first_name
    surname
    last_name
    phone_number
    role
    enabled
    user_type
    is_internal
    first_login
    last_login
    availability_status
    synced_at
    group_memberships
    permissions
    created_at
    updated_at
  }
}
Variables
{"input": CreateUserInput}
Response
{
  "data": {
    "createUser": {
      "_id": 4,
      "id": "xyz789",
      "keycloak_id": "abc123",
      "username": "xyz789",
      "email": "abc123",
      "first_name": "xyz789",
      "surname": "xyz789",
      "last_name": "xyz789",
      "phone_number": "xyz789",
      "role": "xyz789",
      "enabled": false,
      "user_type": "SYSTEM_ADMIN",
      "is_internal": false,
      "first_login": "2007-12-03T10:15:30Z",
      "last_login": "2007-12-03T10:15:30Z",
      "availability_status": "AVAILABLE",
      "synced_at": "2007-12-03T10:15:30Z",
      "group_memberships": ["abc123"],
      "permissions": ["xyz789"],
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

createWalletTransaction

Response

Returns a RawWalletTransactionsDto!

Arguments
Name Description
input - CreateRawWalletTransactionsInput!

Example

Query
mutation createWalletTransaction($input: CreateRawWalletTransactionsInput!) {
  createWalletTransaction(input: $input) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{"input": CreateRawWalletTransactionsInput}
Response
{
  "data": {
    "createWalletTransaction": {
      "wallet_transaction_id": 4,
      "wallet_id": "4",
      "customer_id": "4",
      "sale_id": "4",
      "wallet_transaction_ref_id": 4,
      "wallet_transaction_type": "PAYMENT",
      "wallet_transaction_sub_type": "MPESA",
      "wallet_transaction_amount": 123.45,
      "wallet_transaction_balance_before": 123.45,
      "wallet_transaction_balance_after": 123.45,
      "wallet_transaction_days_value": 123.45,
      "wallet_transaction_points_value": 123.45,
      "wallet_transaction_status": "PENDING",
      "reference": "xyz789",
      "wallet_transaction_description": "xyz789",
      "wallet_transaction_metadata": {},
      "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
    }
  }
}

customer_module_mutations

Description

Access customer module operations

Response

Returns a CustomerModuleNamespace!

Example

Query
mutation customer_module_mutations {
  customer_module_mutations {
    credit {
      queueAnalytics {
        ...QueueAnalyticsTypeFragment
      }
      queueWorkload {
        ...QueueWorkloadResponseTypeFragment
      }
      queueApplicationsOffset {
        ...OffsetPaginatedApplicationsFragment
      }
      queueApplicationsCursor {
        ...CursorPaginatedApplicationsFragment
      }
      updateCreditProspectStage {
        ...ApplicationEntityGraphQLFragment
      }
      assignCreditAgent {
        ...ApplicationEntityGraphQLFragment
      }
      updateCreditApplication {
        ...ApplicationEntityGraphQLFragment
      }
      retryOrderCreation {
        ...ApplicationEntityGraphQLFragment
      }
    }
    subsequentLoan {
      createSubsequentLoanApplication {
        ...ApplicationEntityGraphQLFragment
      }
      verifySubsequentLoanOtp {
        ...ApplicationEntityGraphQLFragment
      }
      checkSubsequentLoanEligibility
    }
    risk {
      riskRecord {
        ...RawRiskDtoFragment
      }
      riskRecordByFilters {
        ...RawRiskDtoFragment
      }
      riskRecordsCount
      riskRecordsCursor {
        ...CursorPaginatedRawRiskFragment
      }
      riskRecordsOffset {
        ...OffsetPaginatedRawRiskFragment
      }
      riskRecordsByCustomer {
        ...RawRiskDtoFragment
      }
      isBlocked {
        ...RawRiskDtoFragment
      }
      createRiskRecord {
        ...RawRiskDtoFragment
      }
      updateRiskRecord {
        ...RawRiskDtoFragment
      }
      updateManyRiskRecords
      deleteRiskRecord
      deleteManyRiskRecords
      deactivateRiskRecord {
        ...RawRiskDtoFragment
      }
      combinedRiskFlagForCustomer {
        ...CombinedRiskFlagResultTypeFragment
      }
      combinedRiskFlagForApplication {
        ...CombinedRiskFlagResultTypeFragment
      }
      exemptionEligibility {
        ...ExemptionEligibilityTypeFragment
      }
      processExemption {
        ...ApplicationEntityGraphQLFragment
      }
      calculateCustomerRisk
      calculateApplicationRisk
    }
    applications {
      resubmissionEligibility {
        ...ResubmissionJourneyGraphQLFragment
      }
      resubmissionForm {
        ...ResubmissionFormSchemaGraphQLFragment
      }
      resubmissionOverview {
        ...ResubmissionOverviewTypeFragment
      }
      resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      submitResubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      updateResubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      commitResubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      transferProspectForResubmission
    }
    onboardingChecks {
      runFullValidationCheck {
        ...OnboardingCheckResponseFragment
      }
      runIprsCheck {
        ...OnboardingCheckResponseFragment
      }
      runMpesaCheck {
        ...OnboardingCheckResponseFragment
      }
      runDuplicateCheck {
        ...OnboardingCheckResponseFragment
      }
      runCrbCheck {
        ...OnboardingCheckResponseFragment
      }
      runKraCheck {
        ...OnboardingCheckResponseFragment
      }
      runFateGuideCheck {
        ...OnboardingCheckResponseFragment
      }
      runRiskCheck {
        ...OnboardingCheckResponseFragment
      }
      runPrescreeningCheck {
        ...OnboardingCheckResponseFragment
      }
      runPrescreenFlow {
        ...OnboardingCheckResponseFragment
      }
      runNokCheckFlow {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionIprsCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionMpesaCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionNokMpesaCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionKraCheck {
        ...OnboardingCheckResponseFragment
      }
      runResubmissionRiskCheck {
        ...OnboardingCheckResponseFragment
      }
      resendDuplicateOtp {
        ...ApplicationEntityGraphQLFragment
      }
      verifyDuplicateOtp {
        ...ApplicationEntityGraphQLFragment
      }
      previewDuplicateCheck {
        ...DuplicatePreviewCheckResultFragment
      }
    }
    onboardingSupport {
      rerunRoundRobin {
        ...RoundRobinRerunResultTypeFragment
      }
    }
    selfUnlockDevice {
      success
      customer_id
      total_contracts
      eligible_contracts
      queued_unlocks
      skipped_contracts
      results {
        ...CustomerSelfUnlockContractResultTypeFragment
      }
    }
    gracePeriodEligibility {
      eligible
      reason
      contractId
      loanId
      category
      maxAvailableDays
      selectableOptions
      currentGracePeriodExpiry
      isActiveGracePeriod
    }
    requestGracePeriod {
      success
      contractId
      loanId
      category
      graceDays
      gracePeriodCreditExpiry
      wasExtended
    }
    grantGracePeriodOverride {
      success
      contractId
      loanId
      category
      graceDays
      gracePeriodCreditExpiry
      wasExtended
    }
    revokeGracePeriod {
      success
      contractId
      loanId
      revoked
      deviceAction
    }
  }
}
Response
{
  "data": {
    "customer_module_mutations": {
      "credit": CreditNamespace,
      "subsequentLoan": SubsequentLoanNamespace,
      "risk": RiskNamespace,
      "applications": ApplicationsNamespace,
      "onboardingChecks": OnboardingChecksNamespace,
      "onboardingSupport": OnboardingSupportNamespace,
      "selfUnlockDevice": CustomerSelfUnlockResultType,
      "gracePeriodEligibility": GracePeriodEligibilityResultType,
      "requestGracePeriod": GracePeriodAwardResultType,
      "grantGracePeriodOverride": GracePeriodAwardResultType,
      "revokeGracePeriod": GracePeriodRevocationResultType
    }
  }
}

deactivateCommission

Response

Returns a CommissionObjectType!

Arguments
Name Description
id - String!

Example

Query
mutation deactivateCommission($id: String!) {
  deactivateCommission(id: $id) {
    id
    channel_type
    commission_type
    attribute_type
    commission_value_type
    sku_id
    min_price
    max_price
    product_commission
    loan_commission
    cash_commission
    start_date
    end_date
    is_active
    created_at
    updated_at
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    overrides {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "deactivateCommission": {
      "id": 4,
      "channel_type": "ONLINE_AGENT",
      "commission_type": "FLAT",
      "attribute_type": "ALL",
      "commission_value_type": "FLAT",
      "sku_id": "abc123",
      "min_price": 987.65,
      "max_price": 987.65,
      "product_commission": 123.45,
      "loan_commission": 987.65,
      "cash_commission": 987.65,
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sku": SkuObjectType,
      "overrides": [CommissionOverrideObjectType]
    }
  }
}

deactivateCommissionOverride

Response

Returns a CommissionOverrideObjectType!

Arguments
Name Description
id - String!

Example

Query
mutation deactivateCommissionOverride($id: String!) {
  deactivateCommissionOverride(id: $id) {
    id
    agent_profile_id
    commission_rule_id
    product_commission
    loan_commission
    cash_commission
    commission_value_type
    is_active
    created_at
    updated_at
    agent_profile {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{"id": "abc123"}
Response
{
  "data": {
    "deactivateCommissionOverride": {
      "id": "4",
      "agent_profile_id": "abc123",
      "commission_rule_id": "abc123",
      "product_commission": 123.45,
      "loan_commission": 123.45,
      "cash_commission": 987.65,
      "commission_value_type": "FLAT",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "agent_profile": AgentProfileObjectType,
      "commission_rule": CommissionObjectType
    }
  }
}

deactivateListing

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
catalogId - ID!

Example

Query
mutation deactivateListing($catalogId: ID!) {
  deactivateListing(catalogId: $catalogId) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"catalogId": 4}
Response
{
  "data": {
    "deactivateListing": {
      "seller_catalog_id": "4",
      "seller_id": "xyz789",
      "sku_id": "xyz789",
      "cost_price": 123.45,
      "retail_price": 123.45,
      "currency": "xyz789",
      "stock_on_hand": 987,
      "reserved_stock": 987,
      "is_active": false,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 987,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

deactivateUser

Response

Returns a Boolean!

Arguments
Name Description
keycloakUserId - String!

Example

Query
mutation deactivateUser($keycloakUserId: String!) {
  deactivateUser(keycloakUserId: $keycloakUserId)
}
Variables
{"keycloakUserId": "xyz789"}
Response
{"data": {"deactivateUser": true}}

deductBalanceFromWallet

Response

Returns a RawCustomerWalletsDto!

Arguments
Name Description
walletId - ID!
amount - Float!

Example

Query
mutation deductBalanceFromWallet(
  $walletId: ID!,
  $amount: Float!
) {
  deductBalanceFromWallet(
    walletId: $walletId,
    amount: $amount
  ) {
    customer_wallet_id
    customer_id
    customer_wallet_available_balance
    customer_wallet_total_payments
    customer_wallet_total_adjustments
    customer_wallet_total_days_given
    customer_wallet_total_points
    customer_wallet_total_allocated
    customer_wallet_lifetime_credits
    customer_wallet_lifetime_debits
    customer_wallet_currency
    customer_wallet_created_at
    customer_wallet_updated_at
  }
}
Variables
{"walletId": "4", "amount": 123.45}
Response
{
  "data": {
    "deductBalanceFromWallet": {
      "customer_wallet_id": "4",
      "customer_id": 4,
      "customer_wallet_available_balance": 987.65,
      "customer_wallet_total_payments": 123.45,
      "customer_wallet_total_adjustments": 987.65,
      "customer_wallet_total_days_given": 987.65,
      "customer_wallet_total_points": 987.65,
      "customer_wallet_total_allocated": 987.65,
      "customer_wallet_lifetime_credits": 987.65,
      "customer_wallet_lifetime_debits": 123.45,
      "customer_wallet_currency": "KES",
      "customer_wallet_created_at": "2007-12-03T10:15:30Z",
      "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

deleteApplication

Description

Delete an application by ID

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteApplication($id: ID!) {
  deleteApplication(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteApplication": false}}

deleteApplicationCallDetail

Description

Delete an application call detail record by ID

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteApplicationCallDetail($id: ID!) {
  deleteApplicationCallDetail(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteApplicationCallDetail": false}}

deleteCallDisposition

Description

Delete a call disposition by ID

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteCallDisposition($id: ID!) {
  deleteCallDisposition(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteCallDisposition": false}}

deleteCategory

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteCategory($id: ID!) {
  deleteCategory(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteCategory": true}}

deleteCommission

Response

Returns a Boolean!

Arguments
Name Description
id - String!

Example

Query
mutation deleteCommission($id: String!) {
  deleteCommission(id: $id)
}
Variables
{"id": "abc123"}
Response
{"data": {"deleteCommission": true}}

deleteCommissionOverride

Response

Returns a Boolean!

Arguments
Name Description
id - String!

Example

Query
mutation deleteCommissionOverride($id: String!) {
  deleteCommissionOverride(id: $id)
}
Variables
{"id": "xyz789"}
Response
{"data": {"deleteCommissionOverride": false}}

deleteCondition

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteCondition($id: ID!) {
  deleteCondition(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteCondition": true}}

deleteCustomer

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteCustomer($id: ID!) {
  deleteCustomer(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteCustomer": true}}

deleteCustomerWallet

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteCustomerWallet($id: ID!) {
  deleteCustomerWallet(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteCustomerWallet": true}}

deleteDelivery

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteDelivery($id: ID!) {
  deleteDelivery(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteDelivery": false}}

deleteDeliveryCall

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteDeliveryCall($id: ID!) {
  deleteDeliveryCall(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteDeliveryCall": true}}

deleteDeliveryItem

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteDeliveryItem($id: ID!) {
  deleteDeliveryItem(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteDeliveryItem": true}}

deleteFlashSale

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteFlashSale($id: ID!) {
  deleteFlashSale(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteFlashSale": false}}

deleteFlashSaleItem

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteFlashSaleItem($id: ID!) {
  deleteFlashSaleItem(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteFlashSaleItem": false}}

deleteGroup

Response

Returns a Boolean!

Arguments
Name Description
id - String!

Example

Query
mutation deleteGroup($id: String!) {
  deleteGroup(id: $id)
}
Variables
{"id": "xyz789"}
Response
{"data": {"deleteGroup": true}}

deleteInventory

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteInventory($id: ID!) {
  deleteInventory(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteInventory": true}}

deleteInventoryAllocation

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteInventoryAllocation($id: ID!) {
  deleteInventoryAllocation(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteInventoryAllocation": false}}

deleteInventoryLocation

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteInventoryLocation($id: ID!) {
  deleteInventoryLocation(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteInventoryLocation": false}}

deleteManyUsers

Response

Returns an Int!

Arguments
Name Description
filters - UserFilterInput!

Example

Query
mutation deleteManyUsers($filters: UserFilterInput!) {
  deleteManyUsers(filters: $filters)
}
Variables
{"filters": UserFilterInput}
Response
{"data": {"deleteManyUsers": 987}}

deleteOrder

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteOrder($id: ID!) {
  deleteOrder(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteOrder": true}}

deleteOrderItem

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteOrderItem($id: ID!) {
  deleteOrderItem(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteOrderItem": false}}

deletePricePlan

Response

Returns a Boolean!

Arguments
Name Description
id - String!

Example

Query
mutation deletePricePlan($id: String!) {
  deletePricePlan(id: $id)
}
Variables
{"id": "xyz789"}
Response
{"data": {"deletePricePlan": false}}

deleteProduct

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteProduct($id: ID!) {
  deleteProduct(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteProduct": true}}

deleteProductOffer

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteProductOffer($id: ID!) {
  deleteProductOffer(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteProductOffer": false}}

deleteRepair

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteRepair($id: ID!) {
  deleteRepair(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteRepair": true}}

deleteReturnsRequest

Description

Delete a returns request by ID

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteReturnsRequest($id: ID!) {
  deleteReturnsRequest(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteReturnsRequest": true}}

deleteRole

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteRole($id: ID!) {
  deleteRole(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteRole": false}}

deleteSale

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteSale($id: ID!) {
  deleteSale(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteSale": true}}

deleteSeller

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteSeller($id: ID!) {
  deleteSeller(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteSeller": true}}

deleteSellerCatalog

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteSellerCatalog($id: ID!) {
  deleteSellerCatalog(id: $id)
}
Variables
{"id": 4}
Response
{"data": {"deleteSellerCatalog": true}}

deleteSellerTier

Response

Returns a Boolean!

Arguments
Name Description
id - String!

Example

Query
mutation deleteSellerTier($id: String!) {
  deleteSellerTier(id: $id)
}
Variables
{"id": "xyz789"}
Response
{"data": {"deleteSellerTier": false}}

deleteSku

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteSku($id: ID!) {
  deleteSku(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteSku": false}}

deleteUser

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteUser($id: ID!) {
  deleteUser(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteUser": true}}

deleteWalletTransaction

Response

Returns a Boolean!

Arguments
Name Description
id - ID!

Example

Query
mutation deleteWalletTransaction($id: ID!) {
  deleteWalletTransaction(id: $id)
}
Variables
{"id": "4"}
Response
{"data": {"deleteWalletTransaction": false}}

devices

Response

Returns a MdmNamespace!

Example

Query
mutation devices {
  devices {
    _description
    lockDevice {
      success
      message
      command {
        ...DeviceLockCommandTypeFragment
      }
    }
    unlockDevice {
      success
      message
      command {
        ...DeviceLockCommandTypeFragment
      }
    }
    bulkUnlockDevices {
      totalRequested
      totalResolved
      totalSucceeded
      totalFailed
      results {
        ...BulkUnlockDeviceResultTypeFragment
      }
      platformSummaries {
        ...PlatformUnlockSummaryTypeFragment
      }
    }
    bulkLockDevices {
      totalRequested
      totalResolved
      totalSucceeded
      totalFailed
      results {
        ...BulkUnlockDeviceResultTypeFragment
      }
      platformSummaries {
        ...PlatformUnlockSummaryTypeFragment
      }
    }
    deviceStatus {
      success
      id
      mdmProvider
      isLocked
      isEnrolled
      isOnline
      isScreenLocked
      isCharging
      isLost
      imei
      imei2
      serialNumber
      model
      manufacturer
      osVersion
      phoneNumber
      phoneNumber2
      networkOperator
      networkOperator2
      batteryLevel
      lastSeenAt
      enrollmentDate
      enrollmentStatus
      nextLockDate
      unlockCode
      deviceGroupId
      deviceGroupName
      storageTotal
      storageAvailable
      location {
        ...DeviceLocationResultTypeFragment
      }
      simLockInfo {
        ...SimLockInfoTypeFragment
      }
      rawStatus
    }
    activityLogs {
      logs {
        ...MdmActivityLogEntryTypeFragment
      }
      total_count
    }
  }
}
Response
{
  "data": {
    "devices": {
      "_description": "xyz789",
      "lockDevice": DeviceCommandResultType,
      "unlockDevice": DeviceCommandResultType,
      "bulkUnlockDevices": BulkUnlockResultType,
      "bulkLockDevices": BulkUnlockResultType,
      "deviceStatus": DeviceStatusResultType,
      "activityLogs": MdmActivityLogsResultType
    }
  }
}

endFlashSale

Response

Returns a FlashSaleObjectType!

Arguments
Name Description
id - ID!
endedBy - ID!

Example

Query
mutation endFlashSale(
  $id: ID!,
  $endedBy: ID!
) {
  endFlashSale(
    id: $id,
    endedBy: $endedBy
  ) {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"id": 4, "endedBy": "4"}
Response
{
  "data": {
    "endFlashSale": {
      "flash_sale_id": "4",
      "title": "abc123",
      "slug": "xyz789",
      "description": "xyz789",
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "status": "SCHEDULED",
      "max_quantity": 987,
      "sold_quantity": 123,
      "min_discount_percentage": 987.65,
      "is_featured": true,
      "banner_image": "abc123",
      "icon_url": "xyz789",
      "countdown_display": true,
      "priority": 123,
      "participating_sellers": ["abc123"],
      "performance_metrics": {},
      "meta_title": "xyz789",
      "meta_description": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

exampleUploadMediaAsset

Response

Returns a MediaAssetDto!

Arguments
Name Description
input - UploadMediaAssetInput!

Example

Query
mutation exampleUploadMediaAsset($input: UploadMediaAssetInput!) {
  exampleUploadMediaAsset(input: $input) {
    _id
    domain
    type
    target
    target_id
    password
    url
    name
    content_type
    storage_provider
    raw
    createdAt
    updatedAt
  }
}
Variables
{"input": UploadMediaAssetInput}
Response
{
  "data": {
    "exampleUploadMediaAsset": {
      "_id": 4,
      "domain": "AUDIT",
      "type": "SELFIE",
      "target": "xyz789",
      "target_id": "abc123",
      "password": "abc123",
      "url": "abc123",
      "name": "abc123",
      "content_type": "xyz789",
      "storage_provider": "S3",
      "raw": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

expireProductOffer

Response

Returns a ProductOfferObjectType!

Arguments
Name Description
offerId - ID!
expiredBy - ID!

Example

Query
mutation expireProductOffer(
  $offerId: ID!,
  $expiredBy: ID!
) {
  expireProductOffer(
    offerId: $offerId,
    expiredBy: $expiredBy
  ) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{"offerId": 4, "expiredBy": 4}
Response
{
  "data": {
    "expireProductOffer": {
      "product_offer_id": 4,
      "sku_id": 4,
      "description": "xyz789",
      "status": "DRAFT",
      "type": "PERCENTAGE",
      "discount_value": 987.65,
      "minimum_purchase_amount": 123.45,
      "maximum_discount_amount": 987.65,
      "usage_limit": 123,
      "usage_count": 987,
      "usage_limit_per_customer": 123,
      "promo_code": "abc123",
      "category_filters": ["abc123"],
      "brand_filters": ["abc123"],
      "applicable_channels": ["xyz789"],
      "active": false,
      "starts_at": "2007-12-03T10:15:30Z",
      "ends_at": "2007-12-03T10:15:30Z",
      "seller_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

export_module_mutations

Description

Access data export module mutations

Response

Returns an ExportModuleNamespace!

Example

Query
mutation export_module_mutations {
  export_module_mutations {
    dataExport {
      scheduleDataExport {
        ...DataExportTypeFragment
      }
      estimateRowCount
      exportColumnCatalog {
        ...ExportDomainColumnCatalogTypeFragment
      }
      dataExport {
        ...DataExportTypeFragment
      }
      dataExports {
        ...DataExportTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "export_module_mutations": {
      "dataExport": DataExportNamespace
    }
  }
}

generateDeliveryOtp

Response

Returns a DeliveryObjectType!

Arguments
Name Description
input - GenerateDeliveryOtpInput!

Example

Query
mutation generateDeliveryOtp($input: GenerateDeliveryOtpInput!) {
  generateDeliveryOtp(input: $input) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"input": GenerateDeliveryOtpInput}
Response
{
  "data": {
    "generateDeliveryOtp": {
      "delivery_id": "4",
      "order_id": 4,
      "seller_id": 4,
      "assigned_rider_id": "4",
      "delivery_status": "PENDING",
      "delivery_address": DeliveryAddress,
      "tracking_number": "xyz789",
      "provider_info": ProviderInfo,
      "proof_of_delivery": ProofOfDelivery,
      "delivery_notes": "abc123",
      "destination_location": GeoLocation,
      "estimated_arrival": "2007-12-03T10:15:30Z",
      "actual_arrival": "2007-12-03T10:15:30Z",
      "metadata": {},
      "assigned_rider": UserObjectType,
      "seller": SellerObjectType,
      "order": OrderObjectType,
      "items": [DeliveryItemObjectType],
      "calls": [DeliveryCallObjectType],
      "latestAnsweredCall": DeliveryCallObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "deliveryItems": [DeliveryItemObjectType]
    }
  }
}

incrementSales

Response

Returns a SellerObjectType!

Arguments
Name Description
sellerId - ID!

Example

Query
mutation incrementSales($sellerId: ID!) {
  incrementSales(sellerId: $sellerId) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"sellerId": 4}
Response
{
  "data": {
    "incrementSales": {
      "seller_id": 4,
      "commission_type_id": "abc123",
      "tier_id": "xyz789",
      "seller_type": "INTERNAL",
      "payment_details": {},
      "capabilities": {},
      "performance_metrics": {},
      "overall_rating": 123.45,
      "total_reviews": 987,
      "total_sales": 123,
      "total_orders_365_days": 123,
      "badges": ["xyz789"],
      "suspension_reason": "abc123",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "joined_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "partner_profile_id": "abc123",
      "platform_owner": true,
      "partner_profile": PartnerProfileObjectType
    }
  }
}

initiateLivenessCheck

Response

Returns an ApplicationEntityGraphQL!

Arguments
Name Description
input - InitiateLivenessCheckInput!

Example

Query
mutation initiateLivenessCheck($input: InitiateLivenessCheckInput!) {
  initiateLivenessCheck(input: $input) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"input": InitiateLivenessCheckInput}
Response
{
  "data": {
    "initiateLivenessCheck": {
      "_id": "4",
      "customer_id": "xyz789",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["abc123"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "xyz789",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

inventory_module_mutations

Description

Access inventory module operations

Response

Returns an InventoryModuleNamespace!

Example

Query
mutation inventory_module_mutations {
  inventory_module_mutations {
    categories {
      createCategory {
        ...CategoryObjectTypeFragment
      }
      category {
        ...CategoryObjectTypeFragment
      }
      categories {
        ...CategoryObjectTypeFragment
      }
      categoriesWithOffsetPagination {
        ...OffsetPaginatedCategoriesFragment
      }
      categoriesWithCursorPagination {
        ...CursorPaginatedCategoriesFragment
      }
      updateCategory {
        ...CategoryObjectTypeFragment
      }
      deleteCategory
      categoriesCount
      categoryHierarchy {
        ...CategoryObjectTypeFragment
      }
      categoryPath {
        ...CategoryObjectTypeFragment
      }
      activeCategories {
        ...CategoryObjectTypeFragment
      }
    }
    conditions {
      createCondition {
        ...ConditionObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      conditions {
        ...ConditionObjectTypeFragment
      }
      conditionsWithOffsetPagination {
        ...OffsetPaginatedConditionsFragment
      }
      conditionsWithCursorPagination {
        ...CursorPaginatedConditionsFragment
      }
      updateCondition {
        ...ConditionObjectTypeFragment
      }
      deleteCondition
      conditionsCount
    }
    flashSales {
      createFlashSale {
        ...FlashSaleObjectTypeFragment
      }
      flashSale {
        ...FlashSaleObjectTypeFragment
      }
      flashSales {
        ...FlashSaleObjectTypeFragment
      }
      flashSalesWithOffsetPagination {
        ...OffsetPaginatedFlashSalesFragment
      }
      flashSalesWithCursorPagination {
        ...CursorPaginatedFlashSalesFragment
      }
      updateFlashSale {
        ...FlashSaleObjectTypeFragment
      }
      deleteFlashSale
      activeFlashSales {
        ...FlashSaleObjectTypeFragment
      }
      upcomingFlashSales {
        ...FlashSaleObjectTypeFragment
      }
      activateFlashSale {
        ...FlashSaleObjectTypeFragment
      }
      endFlashSale {
        ...FlashSaleObjectTypeFragment
      }
    }
    flashSaleItems {
      createFlashSaleItem {
        ...FlashSaleItemObjectTypeFragment
      }
      flashSaleItem {
        ...FlashSaleItemObjectTypeFragment
      }
      flashSaleItems {
        ...FlashSaleItemObjectTypeFragment
      }
      flashSaleItemsWithOffsetPagination {
        ...OffsetPaginatedFlashSaleItemsFragment
      }
      flashSaleItemsWithCursorPagination {
        ...CursorPaginatedFlashSaleItemsFragment
      }
      updateFlashSaleItem {
        ...FlashSaleItemObjectTypeFragment
      }
      deleteFlashSaleItem
      flashSaleItemsByFlashSale {
        ...FlashSaleItemObjectTypeFragment
      }
      activeFlashSaleItems {
        ...FlashSaleItemObjectTypeFragment
      }
      topDiscountedItems {
        ...FlashSaleItemObjectTypeFragment
      }
      updateFlashSaleItemDiscount {
        ...FlashSaleItemObjectTypeFragment
      }
    }
    inventory {
      createInventory {
        ... on InventoryObjectType {
          ...InventoryObjectTypeFragment
        }
        ... on BulkInventoryResult {
          ...BulkInventoryResultFragment
        }
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      inventoryItems {
        ...InventoryObjectTypeFragment
      }
      inventoryWithOffsetPagination {
        ...OffsetPaginatedInventoryFragment
      }
      inventoryWithCursorPagination {
        ...CursorPaginatedInventoryFragment
      }
      updateInventory {
        ...InventoryObjectTypeFragment
      }
      deleteInventory
      inventoryCount
      inventoryBySerialNumber {
        ...InventoryObjectTypeFragment
      }
      inventoryBySeller {
        ...InventoryObjectTypeFragment
      }
      inventoryByLocation {
        ...InventoryObjectTypeFragment
      }
      availableInventory {
        ...InventoryObjectTypeFragment
      }
      activeLoanDevices {
        ...InventoryObjectTypeFragment
      }
      inventoryStats {
        ...InventoryStatsFragment
      }
      updateInventoryPhysicalState {
        ...InventoryObjectTypeFragment
      }
      updateInventoryMdmEnrollment {
        ...InventoryObjectTypeFragment
      }
      updateInventoryEnrollmentStatus {
        ...InventoryObjectTypeFragment
      }
      assignInventoryToContract {
        ...InventoryObjectTypeFragment
      }
      moveInventoryToLocation {
        ...InventoryObjectTypeFragment
      }
      getConditionFromQCReport {
        ...QCReportWithConditionFragment
      }
      updateInventoryWithQCReport {
        ...InventoryObjectTypeFragment
      }
    }
    inventoryLocations {
      createInventoryLocation {
        ...InventoryLocationObjectTypeFragment
      }
      inventoryLocation {
        ...InventoryLocationObjectTypeFragment
      }
      inventoryLocations {
        ...InventoryLocationObjectTypeFragment
      }
      updateInventoryLocation {
        ...InventoryLocationObjectTypeFragment
      }
      deleteInventoryLocation
    }
    productOffers {
      createProductOffer {
        ...ProductOfferObjectTypeFragment
      }
      productOffers {
        ...ProductOfferObjectTypeFragment
      }
      updateProductOffer {
        ...ProductOfferObjectTypeFragment
      }
    }
    products {
      createProduct {
        ...ProductObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      products {
        ...ProductObjectTypeFragment
      }
      productsWithOffsetPagination {
        ...OffsetPaginatedProductsFragment
      }
      productsWithCursorPagination {
        ...CursorPaginatedProductsFragment
      }
      updateProduct {
        ...ProductObjectTypeFragment
      }
      deleteProduct
      productsCount
      activeProducts {
        ...ProductObjectTypeFragment
      }
      productsByBrand {
        ...ProductObjectTypeFragment
      }
      productsByCategory {
        ...ProductObjectTypeFragment
      }
      pendingApprovalProducts {
        ...ProductObjectTypeFragment
      }
      searchProducts {
        ...ProductObjectTypeFragment
      }
      checkProductExists
      approveProduct {
        ...ProductObjectTypeFragment
      }
      rejectProduct {
        ...ProductObjectTypeFragment
      }
    }
    repair {
      createRepair {
        ...RepairObjectTypeFragment
      }
      repairs {
        ...RepairObjectTypeFragment
      }
      updateRepair {
        ...RepairObjectTypeFragment
      }
    }
    sellerCatalog {
      createSellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      createPlatformSellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      sellerCatalogs {
        ...SellerCatalogObjectTypeFragment
      }
      updateSellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
    }
    sellers {
      createSeller {
        ...SellerObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      sellers {
        ...SellerObjectTypeFragment
      }
      updateSeller {
        ...SellerObjectTypeFragment
      }
      deleteSeller
    }
    skus {
      createSku {
        ...SkuObjectTypeFragment
      }
      createSkuChild {
        ...SkuObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      skus {
        ...SkuObjectTypeFragment
      }
      skuAncestors {
        ...SkuObjectTypeFragment
      }
      skuTree {
        ...SkuObjectTypeFragment
      }
      skuEffectivePrice
      updateSku {
        ...SkuObjectTypeFragment
      }
      deleteSku
    }
    skuAgentWhitelists {
      skuAgentWhitelist {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      skuAgentWhitelistItems {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      createSkuAgentWhitelist {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      updateSkuAgentWhitelist {
        ...SkuAgentWhitelistObjectTypeFragment
      }
      deleteSkuAgentWhitelist
    }
  }
}
Response
{
  "data": {
    "inventory_module_mutations": {
      "categories": CategoriesNamespace,
      "conditions": ConditionsNamespace,
      "flashSales": FlashSalesNamespace,
      "flashSaleItems": FlashSaleItemsNamespace,
      "inventory": InventoryNamespace,
      "inventoryLocations": InventoryLocationsNamespace,
      "productOffers": ProductOffersNamespace,
      "products": ProductsNamespace,
      "repair": RepairNamespace,
      "sellerCatalog": SellerCatalogNamespace,
      "sellers": SellersNamespace,
      "skus": SkusNamespace,
      "skuAgentWhitelists": SkuAgentWhitelistsNamespace
    }
  }
}

loan_module_mutations

Description

Access loan module operations

Response

Returns a LoanModuleNamespace!

Example

Query
mutation loan_module_mutations {
  loan_module_mutations {
    loanContracts {
      loanContract {
        ...LoanContractDtoFragment
      }
      loanContractBySaleId {
        ...LoanContractDtoFragment
      }
      loanContractsByCustomerId {
        ...LoanContractDtoFragment
      }
      loanContractsByStatus {
        ...LoanContractDtoFragment
      }
      loanContractsByRepaymentType {
        ...LoanContractDtoFragment
      }
      activeLoanContracts {
        ...LoanContractDtoFragment
      }
      allLoanContracts {
        ...LoanContractDtoFragment
      }
      loanContractsWithOffsetPagination {
        ...OffsetPaginatedLoanContractsFragment
      }
      loanContractsCursor {
        ...CursorPaginatedLoanContractsFragment
      }
      loanContractsCount
      createLoanContract {
        ...LoanContractDtoFragment
      }
      updateLoanContract {
        ...LoanContractDtoFragment
      }
      deleteLoanContract
      deleteManyLoanContracts
      markLoanContractAsPaidOff {
        ...LoanContractDtoFragment
      }
      markLoanContractAsWriteOff {
        ...LoanContractDtoFragment
      }
      disburseLoanContract {
        ...LoanContractDtoFragment
      }
      earlySettlementQuote {
        ...EarlySettlementQuoteTypeFragment
      }
      applyEarlySettlement {
        ...ApplyEarlySettlementResultTypeFragment
      }
      triggerContractAging {
        ...AgingResultFragment
      }
      triggerCustomerAging {
        ...AgingResultFragment
      }
    }
    loanLedger {
      loanLedgerEntry {
        ...LoanLedgerDtoFragment
      }
      allLoanLedgerEntries {
        ...LoanLedgerDtoFragment
      }
      loanLedgerWithOffsetPagination {
        ...OffsetPaginatedLoanLedgerFragment
      }
      loanLedgerCursor {
        ...CursorPaginatedLoanLedgerFragment
      }
      loanLedgerCount
      createLoanLedgerEntry {
        ...LoanLedgerDtoFragment
      }
      updateLoanLedgerEntry {
        ...LoanLedgerDtoFragment
      }
      deleteLoanLedgerEntry
      paymentStatement {
        ...OffsetPaginatedPaymentStatementFragment
      }
    }
    paymentAllocations {
      paymentAllocation {
        ...PaymentAllocationDtoFragment
      }
      allPaymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      paymentAllocationsWithOffsetPagination {
        ...OffsetPaginatedPaymentAllocationsFragment
      }
      paymentAllocationsCount
      createPaymentAllocation {
        ...PaymentAllocationDtoFragment
      }
      updatePaymentAllocation {
        ...PaymentAllocationDtoFragment
      }
      deletePaymentAllocation
      moveLoanPayments {
        ...MoveLoanPaymentsResultTypeFragment
      }
    }
    loanInstallments {
      loanInstallment {
        ...LoanInstallmentDtoFragment
      }
      allLoanInstallments {
        ...LoanInstallmentDtoFragment
      }
      loanInstallmentsWithOffsetPagination {
        ...OffsetPaginatedLoanInstallmentsFragment
      }
      loanInstallmentsCursor {
        ...CursorPaginatedLoanInstallmentsFragment
      }
      loanInstallmentsCount
      createLoanInstallment {
        ...LoanInstallmentDtoFragment
      }
      updateLoanInstallment {
        ...LoanInstallmentDtoFragment
      }
      deleteLoanInstallment
    }
    loanDelinquency {
      loanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      allLoanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      loanDelinquencyTrackingWithOffsetPagination {
        ...OffsetPaginatedLoanDelinquencyTrackingFragment
      }
      loanDelinquencyTrackingCount
      createLoanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      updateLoanDelinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      deleteLoanDelinquencyTracking
    }
    loanOverrides {
      loanOverride {
        ...LoanOverrideDtoFragment
      }
      allLoanOverrides {
        ...LoanOverrideDtoFragment
      }
      loanOverridesWithOffsetPagination {
        ...OffsetPaginatedLoanOverridesFragment
      }
      loanOverridesCount
      createLoanOverride {
        ...LoanOverrideDtoFragment
      }
      updateLoanOverride {
        ...LoanOverrideDtoFragment
      }
      deleteLoanOverride
    }
    accountStatus {
      calculateAccountStatus {
        ...StatusCalculationResultFragment
      }
    }
    loanDashboard {
      summary {
        ...LoanDashboardSummaryFragment
      }
    }
  }
}
Response
{
  "data": {
    "loan_module_mutations": {
      "loanContracts": LoanContractsNamespace,
      "loanLedger": LoanLedgerNamespace,
      "paymentAllocations": PaymentAllocationsNamespace,
      "loanInstallments": LoanInstallmentsNamespace,
      "loanDelinquency": LoanDelinquencyNamespace,
      "loanOverrides": LoanOverridesNamespace,
      "accountStatus": AccountStatusNamespace,
      "loanDashboard": LoanDashboardNamespace
    }
  }
}

markFailedDelivery

Response

Returns a DeliveryObjectType!

Arguments
Name Description
input - MarkFailedDeliveryInput!

Example

Query
mutation markFailedDelivery($input: MarkFailedDeliveryInput!) {
  markFailedDelivery(input: $input) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"input": MarkFailedDeliveryInput}
Response
{
  "data": {
    "markFailedDelivery": {
      "delivery_id": "4",
      "order_id": 4,
      "seller_id": 4,
      "assigned_rider_id": "4",
      "delivery_status": "PENDING",
      "delivery_address": DeliveryAddress,
      "tracking_number": "xyz789",
      "provider_info": ProviderInfo,
      "proof_of_delivery": ProofOfDelivery,
      "delivery_notes": "abc123",
      "destination_location": GeoLocation,
      "estimated_arrival": "2007-12-03T10:15:30Z",
      "actual_arrival": "2007-12-03T10:15:30Z",
      "metadata": {},
      "assigned_rider": UserObjectType,
      "seller": SellerObjectType,
      "order": OrderObjectType,
      "items": [DeliveryItemObjectType],
      "calls": [DeliveryCallObjectType],
      "latestAnsweredCall": DeliveryCallObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "deliveryItems": [DeliveryItemObjectType]
    }
  }
}

markTransactionCompleted

Response

Returns a RawWalletTransactionsDto!

Arguments
Name Description
id - ID!
completedAt - DateTime

Example

Query
mutation markTransactionCompleted(
  $id: ID!,
  $completedAt: DateTime
) {
  markTransactionCompleted(
    id: $id,
    completedAt: $completedAt
  ) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{
  "id": "4",
  "completedAt": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "markTransactionCompleted": {
      "wallet_transaction_id": 4,
      "wallet_id": "4",
      "customer_id": "4",
      "sale_id": "4",
      "wallet_transaction_ref_id": 4,
      "wallet_transaction_type": "PAYMENT",
      "wallet_transaction_sub_type": "MPESA",
      "wallet_transaction_amount": 123.45,
      "wallet_transaction_balance_before": 987.65,
      "wallet_transaction_balance_after": 987.65,
      "wallet_transaction_days_value": 123.45,
      "wallet_transaction_points_value": 987.65,
      "wallet_transaction_status": "PENDING",
      "reference": "xyz789",
      "wallet_transaction_description": "abc123",
      "wallet_transaction_metadata": {},
      "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
    }
  }
}

markTransactionFailed

Response

Returns a RawWalletTransactionsDto!

Arguments
Name Description
id - ID!

Example

Query
mutation markTransactionFailed($id: ID!) {
  markTransactionFailed(id: $id) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "markTransactionFailed": {
      "wallet_transaction_id": "4",
      "wallet_id": 4,
      "customer_id": 4,
      "sale_id": 4,
      "wallet_transaction_ref_id": "4",
      "wallet_transaction_type": "PAYMENT",
      "wallet_transaction_sub_type": "MPESA",
      "wallet_transaction_amount": 123.45,
      "wallet_transaction_balance_before": 123.45,
      "wallet_transaction_balance_after": 987.65,
      "wallet_transaction_days_value": 123.45,
      "wallet_transaction_points_value": 123.45,
      "wallet_transaction_status": "PENDING",
      "reference": "xyz789",
      "wallet_transaction_description": "xyz789",
      "wallet_transaction_metadata": {},
      "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
    }
  }
}

moveApplicationToPrescreening

Description

Move an application to the pre-screening stage

Response

Returns an ApplicationEntityGraphQL!

Arguments
Name Description
applicationId - ID!

Example

Query
mutation moveApplicationToPrescreening($applicationId: ID!) {
  moveApplicationToPrescreening(applicationId: $applicationId) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"applicationId": 4}
Response
{
  "data": {
    "moveApplicationToPrescreening": {
      "_id": "4",
      "customer_id": "xyz789",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["xyz789"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "abc123",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

moveGroup

Response

Returns a GroupObjectType!

Arguments
Name Description
input - MoveGroupInput!

Example

Query
mutation moveGroup($input: MoveGroupInput!) {
  moveGroup(input: $input) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"input": MoveGroupInput}
Response
{
  "data": {
    "moveGroup": {
      "_id": "abc123",
      "keycloak_id": "xyz789",
      "name": "xyz789",
      "realm": "xyz789",
      "path": "abc123",
      "description": "xyz789",
      "attributes": {},
      "parent_id": "abc123",
      "children": ["abc123"],
      "level": 987,
      "member_keycloak_ids": ["xyz789"],
      "member_count": 123,
      "synced_at": "2007-12-03T10:15:30Z",
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "parent": GroupObjectType,
      "childrenDetails": [GroupObjectType]
    }
  }
}

moveInventoryToLocation

Response

Returns an InventoryObjectType!

Arguments
Name Description
inventoryId - ID!
locationId - ID!

Example

Query
mutation moveInventoryToLocation(
  $inventoryId: ID!,
  $locationId: ID!
) {
  moveInventoryToLocation(
    inventoryId: $inventoryId,
    locationId: $locationId
  ) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"inventoryId": "4", "locationId": 4}
Response
{
  "data": {
    "moveInventoryToLocation": {
      "inventory_id": "4",
      "product_id": "abc123",
      "sku_id": "abc123",
      "condition_id": "xyz789",
      "seller_catalog_id": "abc123",
      "seller_id": "xyz789",
      "serial_number": "xyz789",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": true,
      "qc_report": QCReportType,
      "qc_report_link": "abc123",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 987.65,
      "contract_id": "abc123",
      "mdm_status": {},
      "batch_number": "abc123",
      "location_id": "abc123",
      "inspection_report": "abc123",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "abc123",
      "supplier_code": "abc123",
      "supplier_order_reference": "xyz789",
      "customer_id": "abc123",
      "sale_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

moveRepairToTechnician

Response

Returns a RepairObjectType!

Arguments
Name Description
orderId - ID!

Example

Query
mutation moveRepairToTechnician($orderId: ID!) {
  moveRepairToTechnician(orderId: $orderId) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"orderId": "4"}
Response
{
  "data": {
    "moveRepairToTechnician": {
      "repair_id": 4,
      "repair_display_id": "abc123",
      "requires_technician": false,
      "inventory_id": "abc123",
      "customer_id": "abc123",
      "original_sale_id": "xyz789",
      "provider_seller_id": "xyz789",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": false,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "xyz789",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "xyz789",
      "billing_type": "WARRANTY",
      "quoted_price": 987.65,
      "spares_cost": 987.65,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

partner_module_mutations

Description

Access partner module operations

Response

Returns a PartnerModuleNamespace!

Example

Query
mutation partner_module_mutations {
  partner_module_mutations {
    partnerProfile {
      createPartnerProfile {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerProfile {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerStatus {
        ...PartnerProfileObjectTypeFragment
      }
      deletePartnerProfile
      partnerProfile {
        ...PartnerProfileObjectTypeFragment
      }
      partnerProfileByFilters {
        ...PartnerProfileObjectTypeFragment
      }
      partnerProfiles {
        ...PartnerProfileObjectTypeFragment
      }
      directReports {
        ...PartnerProfileObjectTypeFragment
      }
      allDownlines {
        ...PartnerProfileObjectTypeFragment
      }
      ancestors {
        ...PartnerProfileObjectTypeFragment
      }
      parentPartner {
        ...PartnerProfileObjectTypeFragment
      }
      partnerExists
      partnersProfileOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      partnersProfileCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    cohort {
      cohort {
        ...CohortObjectTypeFragment
      }
      cohortByCohortId {
        ...CohortObjectTypeFragment
      }
      cohortbyFilters {
        ...CohortObjectTypeFragment
      }
      checkCohortCapacity
      checkCohortAvailableCapacity
      cohortsOffset {
        ...OffsetPaginatedCohortsFragment
      }
      cohortsCursor {
        ...CursorPaginatedCohortsFragment
      }
      createCohort {
        ...CohortObjectTypeFragment
      }
      updateCohort {
        ...CohortObjectTypeFragment
      }
      updateCohortStatus {
        ...CohortObjectTypeFragment
      }
      addAgentToCohort {
        ...CohortObjectTypeFragment
      }
      removeAgentFromCohort {
        ...CohortObjectTypeFragment
      }
      assignTrainerToCohort {
        ...CohortObjectTypeFragment
      }
      removeTrainerFromCohort {
        ...CohortObjectTypeFragment
      }
      startCohort {
        ...CohortObjectTypeFragment
      }
      completeCohort {
        ...CohortObjectTypeFragment
      }
      cancelCohort {
        ...CohortObjectTypeFragment
      }
      graduateAgentFromCohort
      deleteCohort
    }
    agentProfile {
      agentProfile {
        ...AgentProfileObjectTypeFragment
      }
      agentProfileByUserId {
        ...AgentProfileObjectTypeFragment
      }
      agentProfileByFilters {
        ...AgentProfileObjectTypeFragment
      }
      agentProfiles {
        ...AgentProfileObjectTypeFragment
      }
      agentExists
      agentProfilesOffset {
        ...OffsetPaginatedAgentProfilesFragment
      }
      agentProfilesCursor {
        ...CursorPaginatedAgentProfilesFragment
      }
      updateAgentProfile {
        ...AgentProfileObjectTypeFragment
      }
      updateAgentStatus {
        ...AgentProfileObjectTypeFragment
      }
      deleteAgent
    }
    internalStaff {
      internalStaffProfile {
        ...InternalStaffProfileObjectTypeFragment
      }
      internalStaffProfileByFilters {
        ...InternalStaffProfileObjectTypeFragment
      }
      internalStaffProfileAll {
        ...InternalStaffProfileObjectTypeFragment
      }
      internalStaffOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
      internalStaffCursor {
        ...CursorPaginatedInternalStaffProfilesFragment
      }
      staffExists
      createInternalStaffProfile {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateInternalStaffProfile {
        ...InternalStaffProfileObjectTypeFragment
      }
      assignStaffToShop {
        ...InternalStaffProfileObjectTypeFragment
      }
      assignStaffToRegion {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateStaffAvailability {
        ...InternalStaffProfileObjectTypeFragment
      }
      removeStaffFromPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      removeStaffFromShop {
        ...InternalStaffProfileObjectTypeFragment
      }
    }
    partnerKyc {
      submitIndividualKYC {
        ...PartnerProfileObjectTypeFragment
      }
      submitOrganizationKYC {
        ...PartnerProfileObjectTypeFragment
      }
      submitStaffKYC {
        ...InternalStaffProfileObjectTypeFragment
      }
      reviewKYC {
        ...AgentProfileObjectTypeFragment
      }
      requestPartnerKYCResubmission {
        ...AgentProfileObjectTypeFragment
      }
      requestStaffKYCResubmission {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithPendingKYC {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithRejectedKYC {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithIncompleteKYC {
        ...AgentProfileObjectTypeFragment
      }
      partnersWithApprovedKYC {
        ...AgentProfileObjectTypeFragment
      }
      getStaffKYC {
        ...InternalStaffProfileObjectTypeFragment
      }
    }
    onlineAgent {
      createOnlineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      createSuperAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateOnlineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateSuperAgent {
        ...PartnerProfileObjectTypeFragment
      }
      upgradeOnlineAgentToSuperAgent {
        ...PartnerProfileObjectTypeFragment
      }
      onlineAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      superAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    leadGeneration {
      createLeadGeneration {
        ...PartnerProfileObjectTypeFragment
      }
      updateLeadGeneration {
        ...PartnerProfileObjectTypeFragment
      }
      leadGenerationOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    offlineAgent {
      createOfflineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateOfflineAgent {
        ...PartnerProfileObjectTypeFragment
      }
      offlineAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    externalShop {
      createExternalShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      updateShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updateShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
    }
    dealer {
      createDealerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createDealerAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateDealerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updateDealerAgent {
        ...PartnerProfileObjectTypeFragment
      }
      dealersOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      dealersCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    telesalesAgent {
      createTelesalesAgent {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateTelesalesAgent {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgent {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgentByFilters {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgents {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgentsOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
      telesalesAgentsCursor {
        ...CursorPaginatedInternalStaffProfilesFragment
      }
    }
    telesalesParentAgent {
      telesalesParentAgents {
        ...PartnerProfileObjectTypeFragment
      }
      telesalesParentAgentsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      telesalesParentAgentsCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
      telesalesAgentsByParent {
        ...InternalStaffProfileObjectTypeFragment
      }
      telesalesAgentsByParentOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
      telesalesAgentsByParentCursor {
        ...CursorPaginatedInternalStaffProfilesFragment
      }
      createTelesalesParentAgent {
        ...PartnerProfileObjectTypeFragment
      }
      updateTelesalesParentAgent {
        ...PartnerProfileObjectTypeFragment
      }
      deleteTelesalesParentAgent
    }
    moShop {
      createShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createShopAttendant {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateShopOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updateShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      shopsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      shopsCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    partnerOwner {
      createPartnerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      createPartnerShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerOwner {
        ...PartnerProfileObjectTypeFragment
      }
      updatePartnerShopAttendant {
        ...PartnerProfileObjectTypeFragment
      }
      createSellerForPartner {
        ...PartnerProfileObjectTypeFragment
      }
      partnerOwnersOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
    }
    trainer {
      createTrainer {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateTrainer {
        ...InternalStaffProfileObjectTypeFragment
      }
      trainersOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
    }
    sfm {
      createSFM {
        ...InternalStaffProfileObjectTypeFragment
      }
      createShopManager {
        ...InternalStaffProfileObjectTypeFragment
      }
      createPartnerPromoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateSFM {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateShopManager {
        ...InternalStaffProfileObjectTypeFragment
      }
      updatePartnerPromoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      removePromoterPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      transferPromoterPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      transferSfmPartners {
        ...InternalStaffProfileObjectTypeFragment
      }
      sfmStaffOffset {
        ...OffsetPaginatedInternalStaffProfilesFragment
      }
    }
    retailer {
      createRetailerOrganization {
        ...PartnerProfileObjectTypeFragment
      }
      updateRetailerOrganization {
        ...PartnerProfileObjectTypeFragment
      }
      createRetailerOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      updateRetailerOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      removeRetailerOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      createRetailOutletStaff {
        ...InternalStaffProfileObjectTypeFragment
      }
      updateRetailOutletStaff {
        ...InternalStaffProfileObjectTypeFragment
      }
      assignStaffToOutlet {
        ...PartnerProfileObjectTypeFragment
      }
      transferStaffBetweenOutlets {
        ...PartnerProfileObjectTypeFragment
      }
      findRetailerOrganizationById {
        ...PartnerProfileObjectTypeFragment
      }
      findOutletsByRetailerId {
        ...RetailerOutletObjectTypeFragment
      }
      findOutletById {
        ...RetailerOutletObjectTypeFragment
      }
      retailerOrganizationsOffset {
        ...OffsetPaginatedPartnerProfilesFragment
      }
      retailerOrganizationsCursor {
        ...CursorPaginatedPartnerProfilesFragment
      }
    }
    agentPermissions {
      agentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      allAgentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      permissionCatalog {
        ...PermissionCatalogTypeFragment
      }
      setAgentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      resetAgentTypePermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
      deleteChildPermissions {
        ...AgentTypePermissionsObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "partner_module_mutations": {
      "partnerProfile": PartnerProfileNamespace,
      "cohort": CohortNamespace,
      "agentProfile": AgentProfileNamespace,
      "internalStaff": InternalStaffNamespace,
      "partnerKyc": PartnerKycNamespace,
      "onlineAgent": OnlineAgentNamespace,
      "leadGeneration": LeadGenerationNamespace,
      "offlineAgent": OfflineAgentNamespace,
      "externalShop": ExternalShopNamespace,
      "dealer": DealerNamespace,
      "telesalesAgent": TelesalesAgentNamespace,
      "telesalesParentAgent": TelesalesParentAgentNamespace,
      "moShop": MoShopNamespace,
      "partnerOwner": PartnerOwnerNamespace,
      "trainer": TrainerNamespace,
      "sfm": SfmNamespace,
      "retailer": RetailerNamespace,
      "agentPermissions": AgentPermissionsNamespace
    }
  }
}

payment_module_mutations

Description

Access payment module operations

Response

Returns a PaymentModuleNamespace!

Example

Query
mutation payment_module_mutations {
  payment_module_mutations {
    paymentOrchestrator {
      collectMobileMoneyPayment {
        ...PaymentProviderResultTypeFragment
      }
      collectCardPayment {
        ...PaymentProviderResultTypeFragment
      }
      collectBankPayment {
        ...PaymentProviderResultTypeFragment
      }
      collectCryptoPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendMobileMoneyPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendCardPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendBankPayment {
        ...PaymentProviderResultTypeFragment
      }
      sendCryptoPayment {
        ...PaymentProviderResultTypeFragment
      }
    }
    payments {
      createPayment {
        ...PaymentsEntityTypeFragment
      }
      createRawPayment {
        ...PaymentsEntityTypeFragment
      }
      getPaymentById {
        ...PaymentsEntityTypeFragment
      }
      payments {
        ...PaymentsEntityTypeFragment
      }
      paymentByFilters {
        ...PaymentsEntityTypeFragment
      }
      paymentsWithCursorPagination {
        ...CursorPaginatedPaymentsFragment
      }
      completePayment {
        ...PaymentsEntityTypeFragment
      }
      failPayment {
        ...PaymentsEntityTypeFragment
      }
      reversePayment {
        ...PaymentsEntityTypeFragment
      }
      updatePayment {
        ...PaymentsEntityTypeFragment
      }
      updateManyPayments
      manuallyReconcilePayment {
        ...PaymentsEntityTypeFragment
      }
      revokePaymentByAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      undoPaymentRevocation {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      allocatePaymentToRepairSale {
        ...RepairAllocationResultTypeFragment
      }
      correctCashSaleOverAllocations {
        ...CorrectCashSaleOverAllocationsResultTypeFragment
      }
      reallocateRepairSalesToOutstanding {
        ...ReallocateRepairSalesResultTypeFragment
      }
      deletePayment
      deleteManyPayments
      paymentCount
      uploadMpesaBulkDump
    }
    paymentAdjustments {
      createPaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustmentByFilters {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustments {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      paymentAdjustmentsOffset {
        ...OffsetPaginatedPaymentAdjustmentsFragment
      }
      paymentAdjustmentsCursor {
        ...CursorPaginatedPaymentAdjustmentsFragment
      }
      updatePaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      deletePaymentAdjustment
      effectPaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      revokePaymentAdjustment {
        ...PaymentAdjustmentsEntityTypeFragment
      }
      getTotalAdjustmentsByCustomer
      paymentAdjustmentCount
      uploadAdjustmentsBulkDump
    }
  }
}
Response
{
  "data": {
    "payment_module_mutations": {
      "paymentOrchestrator": PaymentOrchestratorNamespace,
      "payments": PaymentsNamespace,
      "paymentAdjustments": PaymentAdjustmentsNamespace
    }
  }
}

performReturnsAction

Description

Perform a state-machine action on a returns request. All status transitions must go through this mutation.

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
id - ID!
input - PerformReturnsActionInput!

Example

Query
mutation performReturnsAction(
  $id: ID!,
  $input: PerformReturnsActionInput!
) {
  performReturnsAction(
    id: $id,
    input: $input
  ) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{
  "id": "4",
  "input": PerformReturnsActionInput
}
Response
{
  "data": {
    "performReturnsAction": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "ticket_id": "abc123",
      "current_device_id": "abc123",
      "target_device_model": "abc123",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "abc123",
      "cxc_notes": "xyz789",
      "submitted_by": "xyz789",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 987.65,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 987.65,
      "new_device_deposit": 987.65,
      "new_device_price": 123.45,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": true,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "abc123",
      "lane_owner": "abc123",
      "superseded_by_request_id": "xyz789",
      "supersedes_request_id": "xyz789",
      "workflow_switch_reason": "abc123",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": true,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "abc123",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "xyz789",
      "customer_age_weeks_at_decision": 123,
      "new_credit_sale_id": 4,
      "new_credit_sale_activated_at": "abc123",
      "topup_confirmed_at": "xyz789",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": false,
      "pending_detach_inventory_id": "4",
      "manual_detach_detached_at": "abc123",
      "manual_detach_inventory_id": "4",
      "linked_application_id": 4
    }
  }
}

processKycDocuments

Response

Returns an ApplicationEntityGraphQL!

Arguments
Name Description
input - ProcessKycDocumentsInput!

Example

Query
mutation processKycDocuments($input: ProcessKycDocumentsInput!) {
  processKycDocuments(input: $input) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"input": ProcessKycDocumentsInput}
Response
{
  "data": {
    "processKycDocuments": {
      "_id": "4",
      "customer_id": "abc123",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["abc123"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "abc123",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

processKycImages

Response

Returns a ProcessKycImagesResult!

Arguments
Name Description
input - ProcessKycImagesInput!

Example

Query
mutation processKycImages($input: ProcessKycImagesInput!) {
  processKycImages(input: $input) {
    applicationId
    idFront {
      _id
      domain
      target
      target_id
      type
      name
      url
      content_type
      storage_provider
      created_at
    }
    idBack {
      _id
      domain
      target
      target_id
      type
      name
      url
      content_type
      storage_provider
      created_at
    }
    selfie {
      _id
      domain
      target
      target_id
      type
      name
      url
      content_type
      storage_provider
      created_at
    }
  }
}
Variables
{"input": ProcessKycImagesInput}
Response
{
  "data": {
    "processKycImages": {
      "applicationId": 4,
      "idFront": KycDocumentType,
      "idBack": KycDocumentType,
      "selfie": KycDocumentType
    }
  }
}

processReferralRewards

Response

Returns a ProcessReferralResult!

Arguments
Name Description
input - ProcessReferralRewardsInput!

Example

Query
mutation processReferralRewards($input: ProcessReferralRewardsInput!) {
  processReferralRewards(input: $input) {
    success
    message
    error
  }
}
Variables
{"input": ProcessReferralRewardsInput}
Response
{
  "data": {
    "processReferralRewards": {
      "success": false,
      "message": "xyz789",
      "error": "abc123"
    }
  }
}

processRefund

Description

Mark a refund as processing (payment initiated)

Response

Returns a RefundGraphQL!

Arguments
Name Description
id - ID!
refund_method - RefundMethod
transaction_reference - String

Example

Query
mutation processRefund(
  $id: ID!,
  $refund_method: RefundMethod,
  $transaction_reference: String
) {
  processRefund(
    id: $id,
    refund_method: $refund_method,
    transaction_reference: $transaction_reference
  ) {
    refund_id
    customer_id
    sale_id
    returns_request_id
    order_id
    loan_contract_id
    source_payment_id
    adjustment_id
    refund_workflow_type
    refund_amount
    status
    refund_method
    transaction_reference
    submitted_by
    submitted_by_name
    actor_id
    approved_by
    approved_by_name
    customer_name
    customer_phone
    customer_official_id
    approved_at
    processed_at
    completed_at
    notes
    rejection_reason
    returns_request_type
    created_at
    updated_at
  }
}
Variables
{
  "id": "4",
  "refund_method": "MPESA",
  "transaction_reference": "xyz789"
}
Response
{
  "data": {
    "processRefund": {
      "refund_id": "4",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "returns_request_id": "abc123",
      "order_id": "xyz789",
      "loan_contract_id": "abc123",
      "source_payment_id": "xyz789",
      "adjustment_id": "xyz789",
      "refund_workflow_type": "RETURN",
      "refund_amount": 123.45,
      "status": "PENDING",
      "refund_method": "MPESA",
      "transaction_reference": "xyz789",
      "submitted_by": "xyz789",
      "submitted_by_name": "abc123",
      "actor_id": "xyz789",
      "approved_by": "xyz789",
      "approved_by_name": "xyz789",
      "customer_name": "abc123",
      "customer_phone": "xyz789",
      "customer_official_id": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "processed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "notes": "abc123",
      "rejection_reason": "xyz789",
      "returns_request_type": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

processTransaction

Response

Returns a RawWalletTransactionsDto!

Arguments
Name Description
id - ID!

Example

Query
mutation processTransaction($id: ID!) {
  processTransaction(id: $id) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "processTransaction": {
      "wallet_transaction_id": 4,
      "wallet_id": 4,
      "customer_id": "4",
      "sale_id": 4,
      "wallet_transaction_ref_id": "4",
      "wallet_transaction_type": "PAYMENT",
      "wallet_transaction_sub_type": "MPESA",
      "wallet_transaction_amount": 123.45,
      "wallet_transaction_balance_before": 123.45,
      "wallet_transaction_balance_after": 987.65,
      "wallet_transaction_days_value": 987.65,
      "wallet_transaction_points_value": 123.45,
      "wallet_transaction_status": "PENDING",
      "reference": "abc123",
      "wallet_transaction_description": "abc123",
      "wallet_transaction_metadata": {},
      "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
    }
  }
}

prospectComplete

Description

Check if a prospect is complete and submit to credit process if so

Response

Returns a ProspectCompleteResultGraphQL!

Arguments
Name Description
applicationId - ID!

Example

Query
mutation prospectComplete($applicationId: ID!) {
  prospectComplete(applicationId: $applicationId) {
    purchaseMode
    complete
    duplicatePassed
    iprsPassed
    mpesaPassed
    livenessPassed
    riskPassed
    kraPassed
    screens {
      liveness
      nextOfKin
      product
      images
    }
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "prospectComplete": {
      "purchaseMode": "CASH",
      "complete": false,
      "duplicatePassed": true,
      "iprsPassed": false,
      "mpesaPassed": false,
      "livenessPassed": true,
      "riskPassed": true,
      "kraPassed": false,
      "screens": ProspectsScreensGraphQL
    }
  }
}

publishDraftPricePlan

Response

Returns a PricePlanObjectType!

Arguments
Name Description
input - PublishDraftInput!

Example

Query
mutation publishDraftPricePlan($input: PublishDraftInput!) {
  publishDraftPricePlan(input: $input) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"input": PublishDraftInput}
Response
{
  "data": {
    "publishDraftPricePlan": {
      "id": "4",
      "tier_id": "xyz789",
      "parent_plan_id": "xyz789",
      "code": "abc123",
      "name": "abc123",
      "min_device_value": 987.65,
      "max_device_value": 987.65,
      "deposit_percent": 123.45,
      "deposit_percent_high": 987.65,
      "subsequent_loan_discount_percent": 123.45,
      "loan_multiplier": 123.45,
      "loan_multiplier_high": 987.65,
      "mocare_percent": 123.45,
      "duration_months": 123,
      "duration_months_high": 987,
      "payment_frequency": "DAILY",
      "effective_from": "2007-12-03T10:15:30Z",
      "effective_to": "2007-12-03T10:15:30Z",
      "early_payoff_discounts": [
        EarlyPayoffDiscountObjectType
      ],
      "status": "ACTIVE",
      "is_private": true,
      "version": 987,
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "tier": SellerTierObjectType,
      "versions": [PricePlanObjectType]
    }
  }
}

recalculateGapAnalysis

Description

Recalculate gap analysis for a completed M-Pesa statement. Patches the record to retrigger gap analysis computation. Set updateValidation to true to also re-run phone match, income, and validation record updates.

Response

Returns a MoneyStatementAnalysisDto!

Arguments
Name Description
input - RecalculateGapAnalysisInput!

Example

Query
mutation recalculateGapAnalysis($input: RecalculateGapAnalysisInput!) {
  recalculateGapAnalysis(input: $input) {
    id
    target_id
    target
    provider_reference
    document_id
    status
    type
    provider
    name
    phone_number
    secondary_phone_number
    email
    duration
    statement_period
    agent_deposit
    airtime_highest
    internet_bundle_highest
    persons_received_from_total
    banks_received
    mfis_received
    mobile_lenders_received
    healthcare_received
    saccos_received
    insurance_received
    betting_received
    others_received
    airtime_total
    internet_bundle_total
    total_paid_in
    total_paid_in_average
    total_others
    affordability
    average_income
    twelve_months_loan_price
    gap_analysis {
      pass
      status
      slope
      average_disposable
      month_5_disposable
      month_6_disposable
      standard_deviation
      coefficient_of_variation
      criteria {
        ...GapAnalysisCriteriaGraphQLFragment
      }
      monthly_data {
        ...GapAnalysisMonthlyDataGraphQLFragment
      }
    }
    statement_source
    income
    airtime_category
    income_paid_in
    income_cover
    jsonData
    raw
    createdAt
    updatedAt
  }
}
Variables
{"input": RecalculateGapAnalysisInput}
Response
{
  "data": {
    "recalculateGapAnalysis": {
      "id": 4,
      "target_id": "xyz789",
      "target": "LEAD",
      "provider_reference": "abc123",
      "document_id": "abc123",
      "status": "UNKNOWN",
      "type": "MPESA",
      "provider": "SPINMOBILE",
      "name": "abc123",
      "phone_number": "xyz789",
      "secondary_phone_number": "xyz789",
      "email": "xyz789",
      "duration": 123,
      "statement_period": "xyz789",
      "agent_deposit": 123.45,
      "airtime_highest": 987.65,
      "internet_bundle_highest": 123.45,
      "persons_received_from_total": 123.45,
      "banks_received": 987.65,
      "mfis_received": 987.65,
      "mobile_lenders_received": 123.45,
      "healthcare_received": 987.65,
      "saccos_received": 123.45,
      "insurance_received": 123.45,
      "betting_received": 987.65,
      "others_received": 123.45,
      "airtime_total": 123.45,
      "internet_bundle_total": 123.45,
      "total_paid_in": 123.45,
      "total_paid_in_average": 987.65,
      "total_others": 987.65,
      "affordability": 123.45,
      "average_income": 123.45,
      "twelve_months_loan_price": 123.45,
      "gap_analysis": GapAnalysisResultGraphQL,
      "statement_source": "WEBHOOK",
      "income": 987.65,
      "airtime_category": "xyz789",
      "income_paid_in": 123.45,
      "income_cover": "abc123",
      "jsonData": {},
      "raw": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

reconcileOrder

Description

Reconcile an order by recalculating all totals from order items

Response

Returns an OrderObjectType!

Arguments
Name Description
order_id - ID!

Example

Query
mutation reconcileOrder($order_id: ID!) {
  reconcileOrder(order_id: $order_id) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"order_id": "4"}
Response
{
  "data": {
    "reconcileOrder": {
      "order_id": "4",
      "customer_id": 4,
      "order_status": "PENDING",
      "payment_status": "UNPAID",
      "shipping_address": ShippingAddress,
      "currency": "xyz789",
      "sub_total": 987.65,
      "total_discount": 987.65,
      "delivery_fee": 123.45,
      "service_fee": 123.45,
      "tax_amount": 123.45,
      "total_amount": 987.65,
      "application_id": "xyz789",
      "sale_agent_id": "abc123",
      "submitting_agent_id": "abc123",
      "manual_override": true,
      "order_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "application": ApplicationEntityGraphQL,
      "orderItems": [OrderItemObjectType],
      "deliveries": [DeliveryObjectType],
      "sales": [SalesObjectType],
      "deliveryCalls": [DeliveryCallObjectType]
    }
  }
}

reconcileOrders

Description

Reconcile multiple orders in batch

Response

Returns [OrderObjectType!]!

Arguments
Name Description
order_ids - [ID!]!

Example

Query
mutation reconcileOrders($order_ids: [ID!]!) {
  reconcileOrders(order_ids: $order_ids) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"order_ids": [4]}
Response
{
  "data": {
    "reconcileOrders": [
      {
        "order_id": 4,
        "customer_id": 4,
        "order_status": "PENDING",
        "payment_status": "UNPAID",
        "shipping_address": ShippingAddress,
        "currency": "abc123",
        "sub_total": 987.65,
        "total_discount": 987.65,
        "delivery_fee": 987.65,
        "service_fee": 123.45,
        "tax_amount": 123.45,
        "total_amount": 123.45,
        "application_id": "xyz789",
        "sale_agent_id": "abc123",
        "submitting_agent_id": "xyz789",
        "manual_override": false,
        "order_date": "2007-12-03T10:15:30Z",
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "metadata": {},
        "customer": RawCustomersDto,
        "application": ApplicationEntityGraphQL,
        "orderItems": [OrderItemObjectType],
        "deliveries": [DeliveryObjectType],
        "sales": [SalesObjectType],
        "deliveryCalls": [DeliveryCallObjectType]
      }
    ]
  }
}

refreshGroupCache

Response

Returns a Boolean!

Arguments
Name Description
realm - String

Example

Query
mutation refreshGroupCache($realm: String) {
  refreshGroupCache(realm: $realm)
}
Variables
{"realm": "abc123"}
Response
{"data": {"refreshGroupCache": true}}

refreshRoleCache

Response

Returns a Boolean!

Arguments
Name Description
realm - String

Example

Query
mutation refreshRoleCache($realm: String) {
  refreshRoleCache(realm: $realm)
}
Variables
{"realm": "abc123"}
Response
{"data": {"refreshRoleCache": true}}

refreshToken

Response

Returns an AuthResponse!

Arguments
Name Description
input - RefreshTokenInput!

Example

Query
mutation refreshToken($input: RefreshTokenInput!) {
  refreshToken(input: $input) {
    access_token
    refresh_token
    expires_in
    refresh_expires_in
    token_type
    user {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
  }
}
Variables
{"input": RefreshTokenInput}
Response
{
  "data": {
    "refreshToken": {
      "access_token": "abc123",
      "refresh_token": "xyz789",
      "expires_in": 987,
      "refresh_expires_in": 123,
      "token_type": "xyz789",
      "user": UserObjectType,
      "customer": RawCustomersDto
    }
  }
}

rejectCustomerReferral

Response

Returns a CustomerReferralDto!

Arguments
Name Description
input - RejectCustomerReferralInput!

Example

Query
mutation rejectCustomerReferral($input: RejectCustomerReferralInput!) {
  rejectCustomerReferral(input: $input) {
    referral_id
    referrer_customer_id
    referee_customer_id
    referee_customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    referral_code_used
    referral_status
    validation_due_date
    validated_at
    rewards_processed_at
    referee_loan_contract_id
    referee_opening_date
    payment_adjustment_id
    referrer_airtime_transaction_id
    referee_airtime_transaction_id
    created_by
    created_at
    updated_by
    updated_at
  }
}
Variables
{"input": RejectCustomerReferralInput}
Response
{
  "data": {
    "rejectCustomerReferral": {
      "referral_id": "4",
      "referrer_customer_id": "4",
      "referee_customer_id": 4,
      "referee_customer": RawCustomersDto,
      "referral_code_used": "abc123",
      "referral_status": "INCOMPLETE",
      "validation_due_date": "2007-12-03T10:15:30Z",
      "validated_at": "2007-12-03T10:15:30Z",
      "rewards_processed_at": "2007-12-03T10:15:30Z",
      "referee_loan_contract_id": "abc123",
      "referee_opening_date": "2007-12-03T10:15:30Z",
      "payment_adjustment_id": "xyz789",
      "referrer_airtime_transaction_id": "abc123",
      "referee_airtime_transaction_id": "xyz789",
      "created_by": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_by": "abc123",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

rejectProduct

Response

Returns a ProductObjectType!

Arguments
Name Description
productId - ID!
rejectedBy - ID!
reason - String!

Example

Query
mutation rejectProduct(
  $productId: ID!,
  $rejectedBy: ID!,
  $reason: String!
) {
  rejectProduct(
    productId: $productId,
    rejectedBy: $rejectedBy,
    reason: $reason
  ) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{
  "productId": "4",
  "rejectedBy": 4,
  "reason": "abc123"
}
Response
{
  "data": {
    "rejectProduct": {
      "product_id": 4,
      "name": "xyz789",
      "slug": "abc123",
      "brand": "abc123",
      "model": "xyz789",
      "category_id": "xyz789",
      "category": CategoryObjectType,
      "description": "xyz789",
      "long_description": "xyz789",
      "base_specifications": {},
      "primary_image_url": "xyz789",
      "images": ["abc123"],
      "video_url": "xyz789",
      "meta_title": "abc123",
      "meta_description": "abc123",
      "keywords": ["xyz789"],
      "is_active": true,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "abc123",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

rejectRefund

Description

Reject a pending refund

Response

Returns a RefundGraphQL!

Arguments
Name Description
id - ID!
rejection_reason - String!

Example

Query
mutation rejectRefund(
  $id: ID!,
  $rejection_reason: String!
) {
  rejectRefund(
    id: $id,
    rejection_reason: $rejection_reason
  ) {
    refund_id
    customer_id
    sale_id
    returns_request_id
    order_id
    loan_contract_id
    source_payment_id
    adjustment_id
    refund_workflow_type
    refund_amount
    status
    refund_method
    transaction_reference
    submitted_by
    submitted_by_name
    actor_id
    approved_by
    approved_by_name
    customer_name
    customer_phone
    customer_official_id
    approved_at
    processed_at
    completed_at
    notes
    rejection_reason
    returns_request_type
    created_at
    updated_at
  }
}
Variables
{"id": 4, "rejection_reason": "xyz789"}
Response
{
  "data": {
    "rejectRefund": {
      "refund_id": 4,
      "customer_id": "xyz789",
      "sale_id": "xyz789",
      "returns_request_id": "abc123",
      "order_id": "xyz789",
      "loan_contract_id": "abc123",
      "source_payment_id": "abc123",
      "adjustment_id": "xyz789",
      "refund_workflow_type": "RETURN",
      "refund_amount": 987.65,
      "status": "PENDING",
      "refund_method": "MPESA",
      "transaction_reference": "xyz789",
      "submitted_by": "xyz789",
      "submitted_by_name": "xyz789",
      "actor_id": "abc123",
      "approved_by": "abc123",
      "approved_by_name": "abc123",
      "customer_name": "xyz789",
      "customer_phone": "abc123",
      "customer_official_id": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "processed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "notes": "xyz789",
      "rejection_reason": "abc123",
      "returns_request_type": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

rejectSku

Response

Returns a SkuObjectType!

Arguments
Name Description
skuId - ID!
rejectedBy - ID!
reason - String!

Example

Query
mutation rejectSku(
  $skuId: ID!,
  $rejectedBy: ID!,
  $reason: String!
) {
  rejectSku(
    skuId: $skuId,
    rejectedBy: $rejectedBy,
    reason: $reason
  ) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{
  "skuId": 4,
  "rejectedBy": "4",
  "reason": "abc123"
}
Response
{
  "data": {
    "rejectSku": {
      "sku_id": "4",
      "product_id": "xyz789",
      "condition_id": "xyz789",
      "parent_sku_id": "abc123",
      "level": 123,
      "level_attribute_key": "abc123",
      "level_attribute_value": "abc123",
      "sku_code": "xyz789",
      "name": "abc123",
      "attributes": {},
      "variant_specifications": {},
      "msrp_price": 987.65,
      "min_seller_price": 987.65,
      "max_seller_price": 123.45,
      "suggested_retail_price": 123.45,
      "effective_price": 123.45,
      "images": ["abc123"],
      "weight_grams": 987,
      "dimensions_mm": "xyz789",
      "is_active": true,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "xyz789",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "product": ProductObjectType,
      "condition": ConditionObjectType
    }
  }
}

removeRolesToUser

Response

Returns a UserObjectType!

Arguments
Name Description
input - AttachRolesToUserInput!

Example

Query
mutation removeRolesToUser($input: AttachRolesToUserInput!) {
  removeRolesToUser(input: $input) {
    _id
    id
    keycloak_id
    username
    email
    first_name
    surname
    last_name
    phone_number
    role
    enabled
    user_type
    is_internal
    first_login
    last_login
    availability_status
    synced_at
    group_memberships
    permissions
    created_at
    updated_at
  }
}
Variables
{"input": AttachRolesToUserInput}
Response
{
  "data": {
    "removeRolesToUser": {
      "_id": 4,
      "id": "xyz789",
      "keycloak_id": "xyz789",
      "username": "abc123",
      "email": "abc123",
      "first_name": "xyz789",
      "surname": "xyz789",
      "last_name": "xyz789",
      "phone_number": "xyz789",
      "role": "xyz789",
      "enabled": false,
      "user_type": "SYSTEM_ADMIN",
      "is_internal": true,
      "first_login": "2007-12-03T10:15:30Z",
      "last_login": "2007-12-03T10:15:30Z",
      "availability_status": "AVAILABLE",
      "synced_at": "2007-12-03T10:15:30Z",
      "group_memberships": ["xyz789"],
      "permissions": ["xyz789"],
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

removeUserFromGroup

Response

Returns a GroupMembershipResponse!

Arguments
Name Description
input - GroupMembershipInput!

Example

Query
mutation removeUserFromGroup($input: GroupMembershipInput!) {
  removeUserFromGroup(input: $input) {
    success
    message
    group {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"input": GroupMembershipInput}
Response
{
  "data": {
    "removeUserFromGroup": {
      "success": false,
      "message": "abc123",
      "group": GroupObjectType
    }
  }
}

requestOtp

Response

Returns a RequestOtpResponse!

Arguments
Name Description
input - RequestOtpInput!

Example

Query
mutation requestOtp($input: RequestOtpInput!) {
  requestOtp(input: $input) {
    success
    message
    phone
  }
}
Variables
{"input": RequestOtpInput}
Response
{
  "data": {
    "requestOtp": {
      "success": false,
      "message": "xyz789",
      "phone": "abc123"
    }
  }
}

resendApplicationOtp

Description

Regenerate and resend the OTP for an application consent

Response

Returns an ApplicationEntityGraphQL!

Arguments
Name Description
applicationId - ID!

Example

Query
mutation resendApplicationOtp($applicationId: ID!) {
  resendApplicationOtp(applicationId: $applicationId) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "resendApplicationOtp": {
      "_id": "4",
      "customer_id": "xyz789",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["xyz789"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "abc123",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

resendReturnsConsentOtp

Description

Expire the current pending intent-consent OTP and send a fresh one to the customer.

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
id - ID!

Example

Query
mutation resendReturnsConsentOtp($id: ID!) {
  resendReturnsConsentOtp(id: $id) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "resendReturnsConsentOtp": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "xyz789",
      "sale_id": "abc123",
      "ticket_id": "xyz789",
      "current_device_id": "abc123",
      "target_device_model": "xyz789",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "xyz789",
      "cxc_notes": "abc123",
      "submitted_by": "xyz789",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 123.45,
      "new_device_deposit": 987.65,
      "new_device_price": 123.45,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": false,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "abc123",
      "lane_owner": "abc123",
      "superseded_by_request_id": "xyz789",
      "supersedes_request_id": "xyz789",
      "workflow_switch_reason": "abc123",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": false,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "xyz789",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "abc123",
      "customer_age_weeks_at_decision": 987,
      "new_credit_sale_id": 4,
      "new_credit_sale_activated_at": "abc123",
      "topup_confirmed_at": "xyz789",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": true,
      "pending_detach_inventory_id": 4,
      "manual_detach_detached_at": "abc123",
      "manual_detach_inventory_id": 4,
      "linked_application_id": "4"
    }
  }
}

resendReturnsSwapExecutionOtp

Description

Expire pending swap credit acknowledgement OTP and send a fresh SMS (SWAP in AWAITING_FINAL_CONSENT.)

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
id - ID!

Example

Query
mutation resendReturnsSwapExecutionOtp($id: ID!) {
  resendReturnsSwapExecutionOtp(id: $id) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "resendReturnsSwapExecutionOtp": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "ticket_id": "abc123",
      "current_device_id": "abc123",
      "target_device_model": "xyz789",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "abc123",
      "cxc_notes": "xyz789",
      "submitted_by": "abc123",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 987.65,
      "new_device_deposit": 987.65,
      "new_device_price": 987.65,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": true,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "abc123",
      "lane_owner": "abc123",
      "superseded_by_request_id": "abc123",
      "supersedes_request_id": "abc123",
      "workflow_switch_reason": "abc123",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": false,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "abc123",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "abc123",
      "customer_age_weeks_at_decision": 123,
      "new_credit_sale_id": 4,
      "new_credit_sale_activated_at": "xyz789",
      "topup_confirmed_at": "abc123",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": true,
      "pending_detach_inventory_id": 4,
      "manual_detach_detached_at": "xyz789",
      "manual_detach_inventory_id": 4,
      "linked_application_id": 4
    }
  }
}

retryReturnsInventorySync

Description

Retry a failed assign/detach inventory sync recorded in metadata.inventory_sync

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
id - ID!

Example

Query
mutation retryReturnsInventorySync($id: ID!) {
  retryReturnsInventorySync(id: $id) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "retryReturnsInventorySync": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "ticket_id": "xyz789",
      "current_device_id": "abc123",
      "target_device_model": "xyz789",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "xyz789",
      "cxc_notes": "abc123",
      "submitted_by": "abc123",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 123.45,
      "current_device_deposit": 987.65,
      "new_device_deposit": 123.45,
      "new_device_price": 123.45,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": true,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "abc123",
      "superseded_by_request_id": "abc123",
      "supersedes_request_id": "abc123",
      "workflow_switch_reason": "xyz789",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": false,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "xyz789",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "xyz789",
      "customer_age_weeks_at_decision": 123,
      "new_credit_sale_id": 4,
      "new_credit_sale_activated_at": "abc123",
      "topup_confirmed_at": "xyz789",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": true,
      "pending_detach_inventory_id": 4,
      "manual_detach_detached_at": "abc123",
      "manual_detach_inventory_id": "4",
      "linked_application_id": "4"
    }
  }
}

reuploadMpesaStatement

Description

Re-enqueue an existing M-Pesa statement document for upload to Spin Mobile given its document ID.

Response

Returns a Boolean!

Arguments
Name Description
documentId - ID!

Example

Query
mutation reuploadMpesaStatement($documentId: ID!) {
  reuploadMpesaStatement(documentId: $documentId)
}
Variables
{"documentId": "4"}
Response
{"data": {"reuploadMpesaStatement": false}}

revertPricePlan

Response

Returns a PricePlanObjectType!

Arguments
Name Description
planId - String!

Example

Query
mutation revertPricePlan($planId: String!) {
  revertPricePlan(planId: $planId) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{"planId": "xyz789"}
Response
{
  "data": {
    "revertPricePlan": {
      "id": 4,
      "tier_id": "xyz789",
      "parent_plan_id": "xyz789",
      "code": "xyz789",
      "name": "xyz789",
      "min_device_value": 123.45,
      "max_device_value": 987.65,
      "deposit_percent": 123.45,
      "deposit_percent_high": 987.65,
      "subsequent_loan_discount_percent": 987.65,
      "loan_multiplier": 123.45,
      "loan_multiplier_high": 123.45,
      "mocare_percent": 123.45,
      "duration_months": 123,
      "duration_months_high": 123,
      "payment_frequency": "DAILY",
      "effective_from": "2007-12-03T10:15:30Z",
      "effective_to": "2007-12-03T10:15:30Z",
      "early_payoff_discounts": [
        EarlyPayoffDiscountObjectType
      ],
      "status": "ACTIVE",
      "is_private": true,
      "version": 123,
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "tier": SellerTierObjectType,
      "versions": [PricePlanObjectType]
    }
  }
}

splitReturnsCollectionPayment

Description

Split a customer M-Pesa payment between loan/arrears and swap repair (REPAIRS_COST adjustment linked to returns request id)

Arguments
Name Description
input - SplitReturnsCollectionPaymentInput!

Example

Query
mutation splitReturnsCollectionPayment($input: SplitReturnsCollectionPaymentInput!) {
  splitReturnsCollectionPayment(input: $input) {
    payment_id
    sales_adjustment_id
    repairs_adjustment_id
    swap_repair_clearance
  }
}
Variables
{"input": SplitReturnsCollectionPaymentInput}
Response
{
  "data": {
    "splitReturnsCollectionPayment": {
      "payment_id": "4",
      "sales_adjustment_id": "4",
      "repairs_adjustment_id": "4",
      "swap_repair_clearance": {}
    }
  }
}

submitCategoryDocuments

Description

Upload category documents

Response

Returns a String!

Arguments
Name Description
input - SubmitCategoryDocumentsInput!

Example

Query
mutation submitCategoryDocuments($input: SubmitCategoryDocumentsInput!) {
  submitCategoryDocuments(input: $input)
}
Variables
{"input": SubmitCategoryDocumentsInput}
Response
{
  "data": {
    "submitCategoryDocuments": "abc123"
  }
}

submitProductImages

Description

Upload product images

Response

Returns a String!

Arguments
Name Description
input - SubmitProductImagesInput!

Example

Query
mutation submitProductImages($input: SubmitProductImagesInput!) {
  submitProductImages(input: $input)
}
Variables
{"input": SubmitProductImagesInput}
Response
{"data": {"submitProductImages": "abc123"}}

switchReturnsWorkflow

Description

Switch an active request into a new workflow type while preserving lineage

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
id - ID!
input - SwitchReturnsWorkflowInput!

Example

Query
mutation switchReturnsWorkflow(
  $id: ID!,
  $input: SwitchReturnsWorkflowInput!
) {
  switchReturnsWorkflow(
    id: $id,
    input: $input
  ) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{"id": 4, "input": SwitchReturnsWorkflowInput}
Response
{
  "data": {
    "switchReturnsWorkflow": {
      "_id": "4",
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "xyz789",
      "sale_id": "abc123",
      "ticket_id": "abc123",
      "current_device_id": "abc123",
      "target_device_model": "abc123",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "xyz789",
      "cxc_notes": "abc123",
      "submitted_by": "xyz789",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 123.45,
      "current_device_deposit": 987.65,
      "new_device_deposit": 123.45,
      "new_device_price": 987.65,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": false,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "abc123",
      "superseded_by_request_id": "abc123",
      "supersedes_request_id": "xyz789",
      "workflow_switch_reason": "xyz789",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": true,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "abc123",
      "fulfillment_mode": "abc123",
      "mpesa_reference": "abc123",
      "upgrade_policy_mode": "abc123",
      "customer_age_weeks_at_decision": 987,
      "new_credit_sale_id": "4",
      "new_credit_sale_activated_at": "xyz789",
      "topup_confirmed_at": "xyz789",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": false,
      "pending_detach_inventory_id": "4",
      "manual_detach_detached_at": "abc123",
      "manual_detach_inventory_id": 4,
      "linked_application_id": 4
    }
  }
}

syncAllGroups

Response

Returns [GroupObjectType!]!

Arguments
Name Description
realm - String

Example

Query
mutation syncAllGroups($realm: String) {
  syncAllGroups(realm: $realm) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"realm": "abc123"}
Response
{
  "data": {
    "syncAllGroups": [
      {
        "_id": "xyz789",
        "keycloak_id": "xyz789",
        "name": "abc123",
        "realm": "abc123",
        "path": "abc123",
        "description": "abc123",
        "attributes": {},
        "parent_id": "abc123",
        "children": ["xyz789"],
        "level": 123,
        "member_keycloak_ids": ["xyz789"],
        "member_count": 987,
        "synced_at": "2007-12-03T10:15:30Z",
        "is_active": true,
        "created_at": "2007-12-03T10:15:30Z",
        "updated_at": "2007-12-03T10:15:30Z",
        "parent": GroupObjectType,
        "childrenDetails": [GroupObjectType]
      }
    ]
  }
}

syncAllRoles

Response

Returns [RoleObjectType!]!

Arguments
Name Description
realm - String

Example

Query
mutation syncAllRoles($realm: String) {
  syncAllRoles(realm: $realm) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{"realm": "abc123"}
Response
{
  "data": {
    "syncAllRoles": [
      {
        "_id": "xyz789",
        "id": "abc123",
        "name": "abc123",
        "level": 123,
        "permissions": ["xyz789"],
        "description": "abc123",
        "canManage": ["xyz789"],
        "realm": "abc123"
      }
    ]
  }
}

syncGroupFromKeycloak

Response

Returns a GroupObjectType!

Arguments
Name Description
input - SyncGroupInput!

Example

Query
mutation syncGroupFromKeycloak($input: SyncGroupInput!) {
  syncGroupFromKeycloak(input: $input) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{"input": SyncGroupInput}
Response
{
  "data": {
    "syncGroupFromKeycloak": {
      "_id": "xyz789",
      "keycloak_id": "abc123",
      "name": "abc123",
      "realm": "abc123",
      "path": "abc123",
      "description": "abc123",
      "attributes": {},
      "parent_id": "xyz789",
      "children": ["xyz789"],
      "level": 123,
      "member_keycloak_ids": ["abc123"],
      "member_count": 987,
      "synced_at": "2007-12-03T10:15:30Z",
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "parent": GroupObjectType,
      "childrenDetails": [GroupObjectType]
    }
  }
}

syncRoleFromKeycloak

Response

Returns a RoleObjectType!

Arguments
Name Description
realm - String
roleName - String
keycloakRoleId - String

Example

Query
mutation syncRoleFromKeycloak(
  $realm: String,
  $roleName: String,
  $keycloakRoleId: String
) {
  syncRoleFromKeycloak(
    realm: $realm,
    roleName: $roleName,
    keycloakRoleId: $keycloakRoleId
  ) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{
  "realm": "xyz789",
  "roleName": "xyz789",
  "keycloakRoleId": "abc123"
}
Response
{
  "data": {
    "syncRoleFromKeycloak": {
      "_id": "xyz789",
      "id": "xyz789",
      "name": "abc123",
      "level": 123,
      "permissions": ["abc123"],
      "description": "xyz789",
      "canManage": ["xyz789"],
      "realm": "xyz789"
    }
  }
}

syncUserCounts

Response

Returns a Boolean!

Arguments
Name Description
realm - String

Example

Query
mutation syncUserCounts($realm: String) {
  syncUserCounts(realm: $realm)
}
Variables
{"realm": "xyz789"}
Response
{"data": {"syncUserCounts": true}}

syncUserRoles

Response

Returns a Boolean!

Arguments
Name Description
keycloakUserId - String!

Example

Query
mutation syncUserRoles($keycloakUserId: String!) {
  syncUserRoles(keycloakUserId: $keycloakUserId)
}
Variables
{"keycloakUserId": "xyz789"}
Response
{"data": {"syncUserRoles": true}}

syncUserWithKeycloak

Response

Returns a UserObjectType!

Arguments
Name Description
keycloakUserId - String!

Example

Query
mutation syncUserWithKeycloak($keycloakUserId: String!) {
  syncUserWithKeycloak(keycloakUserId: $keycloakUserId) {
    _id
    id
    keycloak_id
    username
    email
    first_name
    surname
    last_name
    phone_number
    role
    enabled
    user_type
    is_internal
    first_login
    last_login
    availability_status
    synced_at
    group_memberships
    permissions
    created_at
    updated_at
  }
}
Variables
{"keycloakUserId": "abc123"}
Response
{
  "data": {
    "syncUserWithKeycloak": {
      "_id": 4,
      "id": "xyz789",
      "keycloak_id": "xyz789",
      "username": "abc123",
      "email": "abc123",
      "first_name": "xyz789",
      "surname": "xyz789",
      "last_name": "abc123",
      "phone_number": "xyz789",
      "role": "abc123",
      "enabled": false,
      "user_type": "SYSTEM_ADMIN",
      "is_internal": true,
      "first_login": "2007-12-03T10:15:30Z",
      "last_login": "2007-12-03T10:15:30Z",
      "availability_status": "AVAILABLE",
      "synced_at": "2007-12-03T10:15:30Z",
      "group_memberships": ["xyz789"],
      "permissions": ["xyz789"],
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

territory_module_mutations

Description

Access territory module operations

Response

Returns a TerritoryModuleNamespace!

Example

Query
mutation territory_module_mutations {
  territory_module_mutations {
    geography {
      countries {
        ...CountryObjectTypeFragment
      }
      country {
        ...CountryObjectTypeFragment
      }
      countryByFilter {
        ...CountryObjectTypeFragment
      }
      regions {
        ...RegionObjectTypeFragment
      }
      regionByIsocode {
        ...RegionObjectTypeFragment
      }
      region {
        ...RegionObjectTypeFragment
      }
      districts {
        ...DistrictObjectTypeFragment
      }
      district {
        ...DistrictObjectTypeFragment
      }
      wards {
        ...WardObjectTypeFragment
      }
      zones {
        ...ZoneObjectTypeFragment
      }
      zone {
        ...ZoneObjectTypeFragment
      }
      zonesByCoordinates {
        ...ZoneObjectTypeFragment
      }
      ward {
        ...WardObjectTypeFragment
      }
      hierarchyPath {
        ...HierarchyPathFragment
      }
      tree {
        ...TerritoryTreeNodeFragment
      }
      countriesCursor {
        ...CursorPaginatedCountriesFragment
      }
      regionsCursor {
        ...CursorPaginatedRegionsFragment
      }
      districtsCursor {
        ...CursorPaginatedDistrictsFragment
      }
      wardsCursor {
        ...CursorPaginatedWardsFragment
      }
      updateRegion {
        ...RegionObjectTypeFragment
      }
      updateZone {
        ...ZoneObjectTypeFragment
      }
      createZone {
        ...ZoneObjectTypeFragment
      }
      toggleRegionInZone {
        ...RegionObjectTypeFragment
      }
    }
    territory {
      list {
        ...TerritoryObjectTypeFragment
      }
      get {
        ...TerritoryObjectTypeFragment
      }
      byRegion {
        ...TerritoryObjectTypeFragment
      }
      byLevel {
        ...TerritoryObjectTypeFragment
      }
      create {
        ...TerritoryObjectTypeFragment
      }
      update {
        ...TerritoryObjectTypeFragment
      }
      deactivate {
        ...TerritoryObjectTypeFragment
      }
      addWards {
        ...TerritoryObjectTypeFragment
      }
      removeWards {
        ...TerritoryObjectTypeFragment
      }
      addZones {
        ...TerritoryObjectTypeFragment
      }
      removeZones {
        ...TerritoryObjectTypeFragment
      }
    }
    territoryAssignment {
      entityTerritories {
        ...TerritoryAssignmentObjectTypeFragment
      }
      territoryEntities {
        ...TerritoryAssignmentObjectTypeFragment
      }
      history {
        ...TerritoryAssignmentObjectTypeFragment
      }
      list {
        ...TerritoryAssignmentObjectTypeFragment
      }
      assign {
        ...TerritoryAssignmentObjectTypeFragment
      }
      unassign {
        ...TerritoryAssignmentObjectTypeFragment
      }
      transfer {
        ...TerritoryTransferResultTypeFragment
      }
    }
    territoryCoverage {
      forTerritory {
        ...TerritoryCoverageObjectTypeFragment
      }
      flagged {
        ...TerritoryCoverageObjectTypeFragment
      }
      gaps {
        ...TerritoryCoverageObjectTypeFragment
      }
      overlaps {
        ...TerritoryCoverageObjectTypeFragment
      }
      resolve {
        ...TerritoryCoverageObjectTypeFragment
      }
    }
  }
}
Response
{
  "data": {
    "territory_module_mutations": {
      "geography": GeographyNamespace,
      "territory": TerritoryNamespace,
      "territoryAssignment": TerritoryAssignmentNamespace,
      "territoryCoverage": TerritoryCoverageNamespace
    }
  }
}

triggerMpesaAnalysisSync

Description

Force a full ANALYSIS_SYNC sweep — re-processes all pending M-Pesa analyses via the financial-statements queue.

Response

Returns a Boolean!

Example

Query
mutation triggerMpesaAnalysisSync {
  triggerMpesaAnalysisSync
}
Response
{"data": {"triggerMpesaAnalysisSync": true}}

updateApplication

Description

Update an existing application

Response

Returns an ApplicationEntityGraphQL!

Arguments
Name Description
id - ID!
input - UpdateApplicationEntityInput!
options - PatchUpdateOptionsInput

Example

Query
mutation updateApplication(
  $id: ID!,
  $input: UpdateApplicationEntityInput!,
  $options: PatchUpdateOptionsInput
) {
  updateApplication(
    id: $id,
    input: $input,
    options: $options
  ) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateApplicationEntityInput,
  "options": PatchUpdateOptionsInput
}
Response
{
  "data": {
    "updateApplication": {
      "_id": "4",
      "customer_id": "abc123",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["xyz789"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "xyz789",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

updateApplicationCallDetail

Description

Update an existing application call detail record

Response

Returns an ApplicationCallDetailsType!

Arguments
Name Description
id - ID!
input - UpdateApplicationCallDetailsInput!

Example

Query
mutation updateApplicationCallDetail(
  $id: ID!,
  $input: UpdateApplicationCallDetailsInput!
) {
  updateApplicationCallDetail(
    id: $id,
    input: $input
  ) {
    _id
    application_id
    status
    notes
    agent_name
    caller_id
    delivery_location_type
    priority
    call_date
    follow_up_required
    customer_location
    employer_info
    employment_details
    delivery_location
    product_choice
    confirmed_price_plan
    geo_address
    delivery_or_collection_location
    other_delivery_notes
    call_type
    call_outcome
    call_notes
    call_ended_at
    call_started_at
    call_duration_seconds
    nok {
      call_status
      notes
      relation
      consent
      idNumber
    }
    customer_general_location
    preferred_delivery_day
    preferred_delivery_slot
    work_location
    work_location_link
    screening_consent
    accept_loan_terms
    extras
    createdAt
    updatedAt
  }
}
Variables
{
  "id": "4",
  "input": UpdateApplicationCallDetailsInput
}
Response
{
  "data": {
    "updateApplicationCallDetail": {
      "_id": 4,
      "application_id": 4,
      "status": "abc123",
      "notes": "abc123",
      "agent_name": "abc123",
      "caller_id": "xyz789",
      "delivery_location_type": "xyz789",
      "priority": "xyz789",
      "call_date": "2007-12-03T10:15:30Z",
      "follow_up_required": false,
      "customer_location": "abc123",
      "employer_info": "xyz789",
      "employment_details": "xyz789",
      "delivery_location": "xyz789",
      "product_choice": "abc123",
      "confirmed_price_plan": "abc123",
      "geo_address": "abc123",
      "delivery_or_collection_location": "abc123",
      "other_delivery_notes": "abc123",
      "call_type": "NOK",
      "call_outcome": "abc123",
      "call_notes": "abc123",
      "call_ended_at": "2007-12-03T10:15:30Z",
      "call_started_at": "2007-12-03T10:15:30Z",
      "call_duration_seconds": 987.65,
      "nok": CallDetailsNokType,
      "customer_general_location": "abc123",
      "preferred_delivery_day": "2007-12-03T10:15:30Z",
      "preferred_delivery_slot": "abc123",
      "work_location": "xyz789",
      "work_location_link": "xyz789",
      "screening_consent": "xyz789",
      "accept_loan_terms": "xyz789",
      "extras": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateCallDisposition

Description

Update an existing call disposition

Response

Returns a CallDispositionType!

Arguments
Name Description
id - ID!
input - UpdateCallDispositionInput!

Example

Query
mutation updateCallDisposition(
  $id: ID!,
  $input: UpdateCallDispositionInput!
) {
  updateCallDisposition(
    id: $id,
    input: $input
  ) {
    _id
    application_id
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    disposition
    notes
    priority
    next_call_date
    createdAt
    updatedAt
  }
}
Variables
{"id": 4, "input": UpdateCallDispositionInput}
Response
{
  "data": {
    "updateCallDisposition": {
      "_id": "4",
      "application_id": 4,
      "application": ApplicationEntityGraphQL,
      "disposition": "abc123",
      "notes": "xyz789",
      "priority": "abc123",
      "next_call_date": "2007-12-03T10:15:30Z",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateCategory

Response

Returns a CategoryObjectType!

Arguments
Name Description
id - ID!
input - UpdateCategoryInput!

Example

Query
mutation updateCategory(
  $id: ID!,
  $input: UpdateCategoryInput!
) {
  updateCategory(
    id: $id,
    input: $input
  ) {
    category_id
    name
    slug
    description
    icon_url
    image_url
    required_attributes
    sku_attributes
    parent_category_id
    level
    path
    sort_order
    is_active
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{
  "id": "4",
  "input": UpdateCategoryInput
}
Response
{
  "data": {
    "updateCategory": {
      "category_id": "4",
      "name": "abc123",
      "slug": "xyz789",
      "description": "abc123",
      "icon_url": "abc123",
      "image_url": "abc123",
      "required_attributes": {},
      "sku_attributes": {},
      "parent_category_id": "abc123",
      "level": 123.45,
      "path": "abc123",
      "sort_order": 987.65,
      "is_active": false,
      "meta_title": "xyz789",
      "meta_description": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateCommission

Response

Returns a CommissionObjectType!

Arguments
Name Description
id - String!
input - UpdateCommissionInput!

Example

Query
mutation updateCommission(
  $id: String!,
  $input: UpdateCommissionInput!
) {
  updateCommission(
    id: $id,
    input: $input
  ) {
    id
    channel_type
    commission_type
    attribute_type
    commission_value_type
    sku_id
    min_price
    max_price
    product_commission
    loan_commission
    cash_commission
    start_date
    end_date
    is_active
    created_at
    updated_at
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    overrides {
      id
      agent_profile_id
      commission_rule_id
      product_commission
      loan_commission
      cash_commission
      commission_value_type
      is_active
      created_at
      updated_at
      agent_profile {
        ...AgentProfileObjectTypeFragment
      }
      commission_rule {
        ...CommissionObjectTypeFragment
      }
    }
  }
}
Variables
{
  "id": "abc123",
  "input": UpdateCommissionInput
}
Response
{
  "data": {
    "updateCommission": {
      "id": 4,
      "channel_type": "ONLINE_AGENT",
      "commission_type": "FLAT",
      "attribute_type": "ALL",
      "commission_value_type": "FLAT",
      "sku_id": "xyz789",
      "min_price": 987.65,
      "max_price": 123.45,
      "product_commission": 987.65,
      "loan_commission": 987.65,
      "cash_commission": 123.45,
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "is_active": true,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sku": SkuObjectType,
      "overrides": [CommissionOverrideObjectType]
    }
  }
}

updateCommissionOverride

Response

Returns a CommissionOverrideObjectType!

Arguments
Name Description
id - String!
input - UpdateCommissionOverrideInput!

Example

Query
mutation updateCommissionOverride(
  $id: String!,
  $input: UpdateCommissionOverrideInput!
) {
  updateCommissionOverride(
    id: $id,
    input: $input
  ) {
    id
    agent_profile_id
    commission_rule_id
    product_commission
    loan_commission
    cash_commission
    commission_value_type
    is_active
    created_at
    updated_at
    agent_profile {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    commission_rule {
      id
      channel_type
      commission_type
      attribute_type
      commission_value_type
      sku_id
      min_price
      max_price
      product_commission
      loan_commission
      cash_commission
      start_date
      end_date
      is_active
      created_at
      updated_at
      sku {
        ...SkuObjectTypeFragment
      }
      overrides {
        ...CommissionOverrideObjectTypeFragment
      }
    }
  }
}
Variables
{
  "id": "xyz789",
  "input": UpdateCommissionOverrideInput
}
Response
{
  "data": {
    "updateCommissionOverride": {
      "id": 4,
      "agent_profile_id": "xyz789",
      "commission_rule_id": "xyz789",
      "product_commission": 123.45,
      "loan_commission": 987.65,
      "cash_commission": 987.65,
      "commission_value_type": "FLAT",
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "agent_profile": AgentProfileObjectType,
      "commission_rule": CommissionObjectType
    }
  }
}

updateCondition

Response

Returns a ConditionObjectType!

Arguments
Name Description
id - ID!
input - UpdateConditionInput!

Example

Query
mutation updateCondition(
  $id: ID!,
  $input: UpdateConditionInput!
) {
  updateCondition(
    id: $id,
    input: $input
  ) {
    condition_id
    grade
    name
    sort_order
    color_hex
    badge_icon
    criteria
    description
    internal_notes
    verification_requirements
    warranty_months
    price_multiplier
    financing_impact
    seller_requirements
    is_active
    available_for_sellers
    created_at
    updated_at
  }
}
Variables
{"id": 4, "input": UpdateConditionInput}
Response
{
  "data": {
    "updateCondition": {
      "condition_id": "4",
      "grade": "xyz789",
      "name": "abc123",
      "sort_order": 123,
      "color_hex": "xyz789",
      "badge_icon": "xyz789",
      "criteria": {},
      "description": "xyz789",
      "internal_notes": "abc123",
      "verification_requirements": {},
      "warranty_months": 987,
      "price_multiplier": 987.65,
      "financing_impact": {},
      "seller_requirements": {},
      "is_active": false,
      "available_for_sellers": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateCostPrice

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
catalogId - ID!
newCostPrice - Float!

Example

Query
mutation updateCostPrice(
  $catalogId: ID!,
  $newCostPrice: Float!
) {
  updateCostPrice(
    catalogId: $catalogId,
    newCostPrice: $newCostPrice
  ) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"catalogId": 4, "newCostPrice": 987.65}
Response
{
  "data": {
    "updateCostPrice": {
      "seller_catalog_id": 4,
      "seller_id": "abc123",
      "sku_id": "xyz789",
      "cost_price": 987.65,
      "retail_price": 987.65,
      "currency": "abc123",
      "stock_on_hand": 987,
      "reserved_stock": 987,
      "is_active": true,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 123,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

updateCreditBureauRecordStatus

Description

Mark a credit bureau record as ACTIVE or STALE

Response

Returns a CreditBureauTransactionDto!

Arguments
Name Description
id - ID!
input - UpdateVerificationRecordStatusInput!

Example

Query
mutation updateCreditBureauRecordStatus(
  $id: ID!,
  $input: UpdateVerificationRecordStatusInput!
) {
  updateCreditBureauRecordStatus(
    id: $id,
    input: $input
  ) {
    id
    _id
    provider
    customer_id
    customer_dob
    customer_age
    customer_name
    recent_loans_crb
    open_loans_count
    past_default_crb
    open_loan_record
    written_off_loans
    settled_default_loans
    closed_default_loans
    open_default_loans
    is_report_empty
    has_no_defaults_and_low_principals
    paid_off_loans_in_time_12_months
    paid_off_loans_in_time_all
    principals_below_5000
    phone_numbers
    system_defined_score
    user_defined_score
    score
    pdf_id
    pdf_url
    rawData
    metadata
    manual_override
    record_status
    crb_analysis {
      scoreExplanation {
        ...CrbScoreExplanationTypeFragment
      }
      creditCheckFields {
        ...CrbCreditCheckFieldsTypeFragment
      }
    }
    createdAt
    updatedAt
  }
}
Variables
{
  "id": "4",
  "input": UpdateVerificationRecordStatusInput
}
Response
{
  "data": {
    "updateCreditBureauRecordStatus": {
      "id": "4",
      "_id": 4,
      "provider": "TRANSUNION",
      "customer_id": "xyz789",
      "customer_dob": "2007-12-03T10:15:30Z",
      "customer_age": 123.45,
      "customer_name": "abc123",
      "recent_loans_crb": 123.45,
      "open_loans_count": 987.65,
      "past_default_crb": 987.65,
      "open_loan_record": 987.65,
      "written_off_loans": 123.45,
      "settled_default_loans": 123.45,
      "closed_default_loans": 123.45,
      "open_default_loans": 987.65,
      "is_report_empty": true,
      "has_no_defaults_and_low_principals": false,
      "paid_off_loans_in_time_12_months": 987.65,
      "paid_off_loans_in_time_all": 987.65,
      "principals_below_5000": 123.45,
      "phone_numbers": ["abc123"],
      "system_defined_score": "xyz789",
      "user_defined_score": "xyz789",
      "score": "abc123",
      "pdf_id": "abc123",
      "pdf_url": "xyz789",
      "rawData": {},
      "metadata": {},
      "manual_override": true,
      "record_status": "ACTIVE",
      "crb_analysis": CrbAnalysisType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateCustomer

Response

Returns a RawCustomersDto!

Arguments
Name Description
id - ID!
input - UpdateRawCustomersInput!

Example

Query
mutation updateCustomer(
  $id: ID!,
  $input: UpdateRawCustomersInput!
) {
  updateCustomer(
    id: $id,
    input: $input
  ) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateRawCustomersInput
}
Response
{
  "data": {
    "updateCustomer": {
      "customer_id": "4",
      "customer_created_at": "2007-12-03T10:15:30Z",
      "customer_type": "INDIVIDUAL",
      "customer_phone_number": "abc123",
      "official_id_number": "abc123",
      "country": "abc123",
      "county": "xyz789",
      "sub_county": "abc123",
      "ward": "xyz789",
      "town": "abc123",
      "landmark": "abc123",
      "customer_email_address": "xyz789",
      "customer_status": "ACTIVE",
      "display_name": "abc123",
      "customer_first_name": "xyz789",
      "customer_surname_name": "abc123",
      "organization_name": "abc123",
      "organization_registration_number": "xyz789",
      "individual_details": IndividualDetailsDto,
      "organization_details": OrganizationDetailsDto,
      "contact_person": ContactPersonDto,
      "kyc_documents": KycDocumentsDto,
      "next_of_kin": NextOfKinDto,
      "total_loans_taken": 123.45,
      "active_loans_count": 987.65,
      "completed_loans_count": 123.45,
      "has_defaulted": true,
      "current_credit_score": "abc123",
      "metadata": {},
      "customer_updated_at": "2007-12-03T10:15:30Z",
      "keycloak_id": "xyz789",
      "referral_code": "xyz789",
      "applications": [ApplicationEntityGraphQL],
      "latestApplication": ApplicationEntityGraphQL
    }
  }
}

updateCustomerWallet

Response

Returns a RawCustomerWalletsDto!

Arguments
Name Description
id - ID!
input - UpdateRawCustomerWalletsInput!

Example

Query
mutation updateCustomerWallet(
  $id: ID!,
  $input: UpdateRawCustomerWalletsInput!
) {
  updateCustomerWallet(
    id: $id,
    input: $input
  ) {
    customer_wallet_id
    customer_id
    customer_wallet_available_balance
    customer_wallet_total_payments
    customer_wallet_total_adjustments
    customer_wallet_total_days_given
    customer_wallet_total_points
    customer_wallet_total_allocated
    customer_wallet_lifetime_credits
    customer_wallet_lifetime_debits
    customer_wallet_currency
    customer_wallet_created_at
    customer_wallet_updated_at
  }
}
Variables
{"id": 4, "input": UpdateRawCustomerWalletsInput}
Response
{
  "data": {
    "updateCustomerWallet": {
      "customer_wallet_id": "4",
      "customer_id": "4",
      "customer_wallet_available_balance": 987.65,
      "customer_wallet_total_payments": 987.65,
      "customer_wallet_total_adjustments": 987.65,
      "customer_wallet_total_days_given": 123.45,
      "customer_wallet_total_points": 987.65,
      "customer_wallet_total_allocated": 123.45,
      "customer_wallet_lifetime_credits": 987.65,
      "customer_wallet_lifetime_debits": 123.45,
      "customer_wallet_currency": "KES",
      "customer_wallet_created_at": "2007-12-03T10:15:30Z",
      "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateDelivery

Response

Returns a DeliveryObjectType!

Arguments
Name Description
id - ID!
input - UpdateDeliveryInput!

Example

Query
mutation updateDelivery(
  $id: ID!,
  $input: UpdateDeliveryInput!
) {
  updateDelivery(
    id: $id,
    input: $input
  ) {
    delivery_id
    order_id
    seller_id
    assigned_rider_id
    delivery_status
    delivery_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...GeoLocationFragment
      }
    }
    tracking_number
    provider_info {
      provider_name
      external_id
      tracking_url
    }
    proof_of_delivery {
      images
      signature
      otp
      submitted_otp
      otp_expiry_time
      match
      payment_reference
      failed_delivery_reason
    }
    delivery_notes
    destination_location {
      lat
      lng
    }
    estimated_arrival
    actual_arrival
    metadata
    assigned_rider {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    calls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    latestAnsweredCall {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
    created_at
    updated_at
    deliveryItems {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
  }
}
Variables
{"id": 4, "input": UpdateDeliveryInput}
Response
{
  "data": {
    "updateDelivery": {
      "delivery_id": 4,
      "order_id": 4,
      "seller_id": 4,
      "assigned_rider_id": 4,
      "delivery_status": "PENDING",
      "delivery_address": DeliveryAddress,
      "tracking_number": "abc123",
      "provider_info": ProviderInfo,
      "proof_of_delivery": ProofOfDelivery,
      "delivery_notes": "abc123",
      "destination_location": GeoLocation,
      "estimated_arrival": "2007-12-03T10:15:30Z",
      "actual_arrival": "2007-12-03T10:15:30Z",
      "metadata": {},
      "assigned_rider": UserObjectType,
      "seller": SellerObjectType,
      "order": OrderObjectType,
      "items": [DeliveryItemObjectType],
      "calls": [DeliveryCallObjectType],
      "latestAnsweredCall": DeliveryCallObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "deliveryItems": [DeliveryItemObjectType]
    }
  }
}

updateDeliveryCall

Response

Returns a DeliveryCallObjectType!

Arguments
Name Description
id - ID!
input - UpdateDeliveryCallInput!

Example

Query
mutation updateDeliveryCall(
  $id: ID!,
  $input: UpdateDeliveryCallInput!
) {
  updateDeliveryCall(
    id: $id,
    input: $input
  ) {
    call_id
    order_id
    called_by
    caller {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    confirmed_delivery_location {
      street
      city
      state
      postal_code
      country
      geo {
        ...DeliveryCallGeoFragment
      }
    }
    spec_preference {
      colour
      sim_card_preference
    }
    confirmed_delivery_date
    confirmed_delivery_slot
    call_time
    outcome
    confirmed_delivery_type
    confirmed_delivery_type_name
    notes
    metadata
    created_at
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
  }
}
Variables
{"id": 4, "input": UpdateDeliveryCallInput}
Response
{
  "data": {
    "updateDeliveryCall": {
      "call_id": 4,
      "order_id": 4,
      "called_by": "4",
      "caller": UserObjectType,
      "confirmed_delivery_location": ConfirmedDeliveryLocationObjectType,
      "spec_preference": SpecPreferenceObjectType,
      "confirmed_delivery_date": "abc123",
      "confirmed_delivery_slot": "MORNING",
      "call_time": "2007-12-03T10:15:30Z",
      "outcome": "CALL_BACK",
      "confirmed_delivery_type": "DELIVERY",
      "confirmed_delivery_type_name": "MO",
      "notes": "xyz789",
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "order": OrderObjectType
    }
  }
}

updateDeliveryCalls

Response

Returns a Float!

Arguments
Name Description
filters - DeliveryCallFilterInput!
input - UpdateDeliveryCallInput!

Example

Query
mutation updateDeliveryCalls(
  $filters: DeliveryCallFilterInput!,
  $input: UpdateDeliveryCallInput!
) {
  updateDeliveryCalls(
    filters: $filters,
    input: $input
  )
}
Variables
{
  "filters": DeliveryCallFilterInput,
  "input": UpdateDeliveryCallInput
}
Response
{"data": {"updateDeliveryCalls": 987.65}}

updateDeliveryItem

Response

Returns a DeliveryItemObjectType!

Arguments
Name Description
id - ID!
input - UpdateDeliveryItemInput!

Example

Query
mutation updateDeliveryItem(
  $id: ID!,
  $input: UpdateDeliveryItemInput!
) {
  updateDeliveryItem(
    id: $id,
    input: $input
  ) {
    id
    delivery_id
    order_item_id
    quantity_shipped
    delivery {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
  }
}
Variables
{"id": 4, "input": UpdateDeliveryItemInput}
Response
{
  "data": {
    "updateDeliveryItem": {
      "id": 4,
      "delivery_id": 4,
      "order_item_id": "4",
      "quantity_shipped": 987.65,
      "delivery": DeliveryObjectType,
      "order_item": OrderItemObjectType
    }
  }
}

updateEstimatedCompletion

Response

Returns a RepairObjectType!

Arguments
Name Description
orderId - ID!
estimatedCompletionAt - DateTime!

Example

Query
mutation updateEstimatedCompletion(
  $orderId: ID!,
  $estimatedCompletionAt: DateTime!
) {
  updateEstimatedCompletion(
    orderId: $orderId,
    estimatedCompletionAt: $estimatedCompletionAt
  ) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{
  "orderId": "4",
  "estimatedCompletionAt": "2007-12-03T10:15:30Z"
}
Response
{
  "data": {
    "updateEstimatedCompletion": {
      "repair_id": 4,
      "repair_display_id": "xyz789",
      "requires_technician": false,
      "inventory_id": "xyz789",
      "customer_id": "xyz789",
      "original_sale_id": "xyz789",
      "provider_seller_id": "abc123",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": true,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "xyz789",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "abc123",
      "billing_type": "WARRANTY",
      "quoted_price": 123.45,
      "spares_cost": 987.65,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

updateFlashSale

Response

Returns a FlashSaleObjectType!

Arguments
Name Description
id - ID!
input - UpdateFlashSaleInput!

Example

Query
mutation updateFlashSale(
  $id: ID!,
  $input: UpdateFlashSaleInput!
) {
  updateFlashSale(
    id: $id,
    input: $input
  ) {
    flash_sale_id
    title
    slug
    description
    start_date
    end_date
    status
    max_quantity
    sold_quantity
    min_discount_percentage
    is_featured
    banner_image
    icon_url
    countdown_display
    priority
    participating_sellers
    performance_metrics
    meta_title
    meta_description
    created_at
    updated_at
  }
}
Variables
{"id": 4, "input": UpdateFlashSaleInput}
Response
{
  "data": {
    "updateFlashSale": {
      "flash_sale_id": "4",
      "title": "abc123",
      "slug": "xyz789",
      "description": "xyz789",
      "start_date": "2007-12-03T10:15:30Z",
      "end_date": "2007-12-03T10:15:30Z",
      "status": "SCHEDULED",
      "max_quantity": 123,
      "sold_quantity": 987,
      "min_discount_percentage": 987.65,
      "is_featured": false,
      "banner_image": "abc123",
      "icon_url": "abc123",
      "countdown_display": true,
      "priority": 123,
      "participating_sellers": ["xyz789"],
      "performance_metrics": {},
      "meta_title": "abc123",
      "meta_description": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateFlashSaleItem

Response

Returns a FlashSaleItemObjectType!

Arguments
Name Description
id - ID!
input - UpdateFlashSaleItemInput!

Example

Query
mutation updateFlashSaleItem(
  $id: ID!,
  $input: UpdateFlashSaleItemInput!
) {
  updateFlashSaleItem(
    id: $id,
    input: $input
  ) {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Variables
{
  "id": "4",
  "input": UpdateFlashSaleItemInput
}
Response
{
  "data": {
    "updateFlashSaleItem": {
      "flash_sale_item_id": "4",
      "flash_sale_id": "abc123",
      "seller_catalog_id": "abc123",
      "product_id": "abc123",
      "sku_id": "xyz789",
      "original_price": 987.65,
      "flash_sale_price": 987.65,
      "discount_percentage": 123.45,
      "stock_allocated": 123,
      "stock_sold": 987,
      "stock_remaining": 123,
      "max_per_customer": 123,
      "display_priority": 987,
      "is_featured": true,
      "badge_text": "xyz789",
      "created_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateFlashSaleItemDiscount

Response

Returns a FlashSaleItemObjectType!

Arguments
Name Description
id - ID!
discountPercentage - Float!

Example

Query
mutation updateFlashSaleItemDiscount(
  $id: ID!,
  $discountPercentage: Float!
) {
  updateFlashSaleItemDiscount(
    id: $id,
    discountPercentage: $discountPercentage
  ) {
    flash_sale_item_id
    flash_sale_id
    seller_catalog_id
    product_id
    sku_id
    original_price
    flash_sale_price
    discount_percentage
    stock_allocated
    stock_sold
    stock_remaining
    max_per_customer
    display_priority
    is_featured
    badge_text
    created_at
  }
}
Variables
{"id": "4", "discountPercentage": 987.65}
Response
{
  "data": {
    "updateFlashSaleItemDiscount": {
      "flash_sale_item_id": "4",
      "flash_sale_id": "abc123",
      "seller_catalog_id": "abc123",
      "product_id": "xyz789",
      "sku_id": "abc123",
      "original_price": 123.45,
      "flash_sale_price": 987.65,
      "discount_percentage": 123.45,
      "stock_allocated": 987,
      "stock_sold": 987,
      "stock_remaining": 123,
      "max_per_customer": 123,
      "display_priority": 987,
      "is_featured": true,
      "badge_text": "abc123",
      "created_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateGroup

Response

Returns a GroupObjectType!

Arguments
Name Description
id - String!
input - UpdateGroupInput!

Example

Query
mutation updateGroup(
  $id: String!,
  $input: UpdateGroupInput!
) {
  updateGroup(
    id: $id,
    input: $input
  ) {
    _id
    keycloak_id
    name
    realm
    path
    description
    attributes
    parent_id
    children
    level
    member_keycloak_ids
    member_count
    synced_at
    is_active
    created_at
    updated_at
    parent {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
    childrenDetails {
      _id
      keycloak_id
      name
      realm
      path
      description
      attributes
      parent_id
      children
      level
      member_keycloak_ids
      member_count
      synced_at
      is_active
      created_at
      updated_at
      parent {
        ...GroupObjectTypeFragment
      }
      childrenDetails {
        ...GroupObjectTypeFragment
      }
    }
  }
}
Variables
{
  "id": "xyz789",
  "input": UpdateGroupInput
}
Response
{
  "data": {
    "updateGroup": {
      "_id": "abc123",
      "keycloak_id": "abc123",
      "name": "abc123",
      "realm": "abc123",
      "path": "abc123",
      "description": "xyz789",
      "attributes": {},
      "parent_id": "xyz789",
      "children": ["abc123"],
      "level": 123,
      "member_keycloak_ids": ["abc123"],
      "member_count": 123,
      "synced_at": "2007-12-03T10:15:30Z",
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "parent": GroupObjectType,
      "childrenDetails": [GroupObjectType]
    }
  }
}

updateIdentityVerificationRecordStatus

Description

Mark an identity verification record as ACTIVE or STALE

Arguments
Name Description
id - ID!
input - UpdateVerificationRecordStatusInput!

Example

Query
mutation updateIdentityVerificationRecordStatus(
  $id: ID!,
  $input: UpdateVerificationRecordStatusInput!
) {
  updateIdentityVerificationRecordStatus(
    id: $id,
    input: $input
  ) {
    _id
    provider
    full_name
    gender
    date_of_birth
    place_of_birth
    kra_pin
    citizenship
    is_alive
    identification_type
    identification_number
    id_serial
    uploaded_photo
    phone
    email
    country
    record_status
    createdAt
  }
}
Variables
{
  "id": "4",
  "input": UpdateVerificationRecordStatusInput
}
Response
{
  "data": {
    "updateIdentityVerificationRecordStatus": {
      "_id": 4,
      "provider": "TRANSUNION",
      "full_name": "xyz789",
      "gender": "xyz789",
      "date_of_birth": "abc123",
      "place_of_birth": "abc123",
      "kra_pin": "abc123",
      "citizenship": "xyz789",
      "is_alive": 123,
      "identification_type": "abc123",
      "identification_number": "xyz789",
      "id_serial": "abc123",
      "uploaded_photo": "abc123",
      "phone": "xyz789",
      "email": "xyz789",
      "country": "abc123",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateIdentityVerificationTransaction

Description

Update an identity verification transaction record

Arguments
Name Description
id - ID!
input - UpdateIdentityVerificationTransactionInput!
justification - String!

Example

Query
mutation updateIdentityVerificationTransaction(
  $id: ID!,
  $input: UpdateIdentityVerificationTransactionInput!,
  $justification: String!
) {
  updateIdentityVerificationTransaction(
    id: $id,
    input: $input,
    justification: $justification
  ) {
    _id
    provider
    full_name
    gender
    date_of_birth
    place_of_birth
    kra_pin
    citizenship
    is_alive
    identification_type
    identification_number
    id_serial
    uploaded_photo
    phone
    email
    country
    record_status
    createdAt
  }
}
Variables
{
  "id": "4",
  "input": UpdateIdentityVerificationTransactionInput,
  "justification": "xyz789"
}
Response
{
  "data": {
    "updateIdentityVerificationTransaction": {
      "_id": "4",
      "provider": "TRANSUNION",
      "full_name": "xyz789",
      "gender": "abc123",
      "date_of_birth": "xyz789",
      "place_of_birth": "xyz789",
      "kra_pin": "abc123",
      "citizenship": "xyz789",
      "is_alive": 123,
      "identification_type": "xyz789",
      "identification_number": "xyz789",
      "id_serial": "xyz789",
      "uploaded_photo": "abc123",
      "phone": "xyz789",
      "email": "xyz789",
      "country": "abc123",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateInventory

Response

Returns an InventoryObjectType!

Arguments
Name Description
id - ID!
input - UpdateInventoryInput!

Example

Query
mutation updateInventory(
  $id: ID!,
  $input: UpdateInventoryInput!
) {
  updateInventory(
    id: $id,
    input: $input
  ) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateInventoryInput
}
Response
{
  "data": {
    "updateInventory": {
      "inventory_id": 4,
      "product_id": "xyz789",
      "sku_id": "xyz789",
      "condition_id": "xyz789",
      "seller_catalog_id": "xyz789",
      "seller_id": "xyz789",
      "serial_number": "abc123",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": true,
      "qc_report": QCReportType,
      "qc_report_link": "xyz789",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 123.45,
      "contract_id": "xyz789",
      "mdm_status": {},
      "batch_number": "xyz789",
      "location_id": "abc123",
      "inspection_report": "abc123",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "xyz789",
      "supplier_code": "xyz789",
      "supplier_order_reference": "xyz789",
      "customer_id": "xyz789",
      "sale_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

updateInventoryAllocation

Response

Returns an InventoryAllocationObjectType!

Arguments
Name Description
id - ID!
input - UpdateInventoryAllocationInput!

Example

Query
mutation updateInventoryAllocation(
  $id: ID!,
  $input: UpdateInventoryAllocationInput!
) {
  updateInventoryAllocation(
    id: $id,
    input: $input
  ) {
    inventory_allocation_id
    order_item_id
    inventory_id
    quantity_allocated
    allocation_status
    allocation_date
    expiry_date
    metadata
    order_item {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    created_at
    updated_at
  }
}
Variables
{"id": 4, "input": UpdateInventoryAllocationInput}
Response
{
  "data": {
    "updateInventoryAllocation": {
      "inventory_allocation_id": 4,
      "order_item_id": "4",
      "inventory_id": "4",
      "quantity_allocated": 123.45,
      "allocation_status": "RESERVED",
      "allocation_date": "2007-12-03T10:15:30Z",
      "expiry_date": "2007-12-03T10:15:30Z",
      "metadata": {},
      "order_item": OrderItemObjectType,
      "inventory": InventoryObjectType,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateInventoryEnrollmentStatus

Response

Returns an InventoryObjectType!

Arguments
Name Description
inventoryId - ID!
newStatus - MdmEnrollmentStatusEnum!

Example

Query
mutation updateInventoryEnrollmentStatus(
  $inventoryId: ID!,
  $newStatus: MdmEnrollmentStatusEnum!
) {
  updateInventoryEnrollmentStatus(
    inventoryId: $inventoryId,
    newStatus: $newStatus
  ) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"inventoryId": 4, "newStatus": "PENDING"}
Response
{
  "data": {
    "updateInventoryEnrollmentStatus": {
      "inventory_id": 4,
      "product_id": "abc123",
      "sku_id": "xyz789",
      "condition_id": "xyz789",
      "seller_catalog_id": "abc123",
      "seller_id": "abc123",
      "serial_number": "xyz789",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": true,
      "qc_report": QCReportType,
      "qc_report_link": "xyz789",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 123.45,
      "contract_id": "xyz789",
      "mdm_status": {},
      "batch_number": "xyz789",
      "location_id": "xyz789",
      "inspection_report": "abc123",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "xyz789",
      "supplier_code": "xyz789",
      "supplier_order_reference": "abc123",
      "customer_id": "xyz789",
      "sale_id": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

updateInventoryLocation

Response

Returns an InventoryLocationObjectType!

Arguments
Name Description
id - ID!
input - UpdateInventoryLocationInput!

Example

Query
mutation updateInventoryLocation(
  $id: ID!,
  $input: UpdateInventoryLocationInput!
) {
  updateInventoryLocation(
    id: $id,
    input: $input
  ) {
    inventory_location_id
    location_name
    location_type
    location_code
    address
    city
    region
    coordinates {
      lat
      lng
    }
    location_details {
      country
      county
      sub_county
      ward
      town
      landmark
      gps_coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
    }
    user_id
    manager_id
    capacity
    current_stock
    is_active
    operating_hours
    seller_id
    created_at
    updated_at
  }
}
Variables
{
  "id": "4",
  "input": UpdateInventoryLocationInput
}
Response
{
  "data": {
    "updateInventoryLocation": {
      "inventory_location_id": 4,
      "location_name": "abc123",
      "location_type": "TRANSIT_INBOUND",
      "location_code": "xyz789",
      "address": "xyz789",
      "city": "xyz789",
      "region": "abc123",
      "coordinates": InventoryCoordinatesObjectType,
      "location_details": InventoryLocationDetailsObjectType,
      "user_id": "abc123",
      "manager_id": "xyz789",
      "capacity": 123,
      "current_stock": 123,
      "is_active": false,
      "operating_hours": {},
      "seller_id": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateInventoryMdmEnrollment

Response

Returns an InventoryObjectType!

Arguments
Name Description
inventoryId - ID!
newStatus - MdmEnrollmentStatusEnum!

Example

Query
mutation updateInventoryMdmEnrollment(
  $inventoryId: ID!,
  $newStatus: MdmEnrollmentStatusEnum!
) {
  updateInventoryMdmEnrollment(
    inventoryId: $inventoryId,
    newStatus: $newStatus
  ) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"inventoryId": "4", "newStatus": "PENDING"}
Response
{
  "data": {
    "updateInventoryMdmEnrollment": {
      "inventory_id": 4,
      "product_id": "xyz789",
      "sku_id": "abc123",
      "condition_id": "abc123",
      "seller_catalog_id": "abc123",
      "seller_id": "abc123",
      "serial_number": "xyz789",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": true,
      "qc_report": QCReportType,
      "qc_report_link": "xyz789",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 987.65,
      "contract_id": "abc123",
      "mdm_status": {},
      "batch_number": "xyz789",
      "location_id": "abc123",
      "inspection_report": "xyz789",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "abc123",
      "supplier_code": "abc123",
      "supplier_order_reference": "xyz789",
      "customer_id": "xyz789",
      "sale_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

updateInventoryPhysicalState

Response

Returns an InventoryObjectType!

Arguments
Name Description
inventoryId - ID!
newState - PhysicalState!

Example

Query
mutation updateInventoryPhysicalState(
  $inventoryId: ID!,
  $newState: PhysicalState!
) {
  updateInventoryPhysicalState(
    inventoryId: $inventoryId,
    newState: $newState
  ) {
    inventory_id
    product_id
    sku_id
    condition_id
    seller_catalog_id
    seller_id
    serial_number
    identifiers
    physical_state
    mdm_enrollment
    enrollment_status
    stock_status_type
    stock_status_name
    stock_origin
    stock_type
    b2b
    qc_report {
      make
      model
      model_number
      serial
      imei
      imei2
      color
      memory
      carrier
      unlock_status
      os_version
      grade
      battery_health_percentage
      battery_charge_percentage
      battery_cycle_count
      battery_current_max_capacity
      battery_design_max_capacity
      battery_health_grade
      working_status
      passed
      failed
      pending
      glass_condition
      cosmetics
      notes
      tester_name
      user_id
      test_plan_name
      added_date
      updated_date
      device_lock
      mdm_status
      knox
      apple_id
      rooted
      erased
      eraser_type
      eraser_start
      eraser_end
      eraser_total_time
      erased_notes
      swappa_qualified
      swappa_rejection
      back_market_qualified
      back_market_rejection
      amazon_renewed
      amazon_renewed_rejection
      ebay_refurbished
      ebay_rejection
      a4_certificate_link
      erasure_certificate_link
      device_history_report_link
      a4_report_id
      raw_csv_data
      upload_date
      upload_notes
    }
    qc_report_link
    qc_status
    qc_status_type
    unit_cost
    contract_id
    mdm_status
    batch_number
    location_id
    inspection_report
    warranty
    acquisition_date
    first_sale_date
    supplier_name
    supplier_code
    supplier_order_reference
    customer_id
    sale_id
    created_at
    updated_at
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    location {
      inventory_location_id
      location_name
      location_type
      location_code
      address
      city
      region
      coordinates {
        ...InventoryCoordinatesObjectTypeFragment
      }
      location_details {
        ...InventoryLocationDetailsObjectTypeFragment
      }
      user_id
      manager_id
      capacity
      current_stock
      is_active
      operating_hours
      seller_id
      created_at
      updated_at
    }
  }
}
Variables
{"inventoryId": 4, "newState": "IN_STOCK"}
Response
{
  "data": {
    "updateInventoryPhysicalState": {
      "inventory_id": 4,
      "product_id": "xyz789",
      "sku_id": "abc123",
      "condition_id": "abc123",
      "seller_catalog_id": "xyz789",
      "seller_id": "xyz789",
      "serial_number": "abc123",
      "identifiers": {},
      "physical_state": "IN_STOCK",
      "mdm_enrollment": "PENDING",
      "enrollment_status": "PENDING",
      "stock_status_type": "INBOUND",
      "stock_status_name": "ORDERED",
      "stock_origin": "INTERNATIONAL",
      "stock_type": "ONE_P",
      "b2b": false,
      "qc_report": QCReportType,
      "qc_report_link": "abc123",
      "qc_status": "PENDING",
      "qc_status_type": "INBOUND",
      "unit_cost": 987.65,
      "contract_id": "abc123",
      "mdm_status": {},
      "batch_number": "abc123",
      "location_id": "xyz789",
      "inspection_report": "abc123",
      "warranty": {},
      "acquisition_date": "2007-12-03T10:15:30Z",
      "first_sale_date": "2007-12-03T10:15:30Z",
      "supplier_name": "abc123",
      "supplier_code": "xyz789",
      "supplier_order_reference": "abc123",
      "customer_id": "xyz789",
      "sale_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType,
      "condition": ConditionObjectType,
      "sellerCatalog": SellerCatalogObjectType,
      "location": InventoryLocationObjectType
    }
  }
}

updateKycDocuments

Description

Update specific KYC documents for an existing customer. Only updates the documents provided.

Response

Returns a RawCustomersDto!

Arguments
Name Description
id - ID!
input - UploadKycDocumentsInput!

Example

Query
mutation updateKycDocuments(
  $id: ID!,
  $input: UploadKycDocumentsInput!
) {
  updateKycDocuments(
    id: $id,
    input: $input
  ) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"id": 4, "input": UploadKycDocumentsInput}
Response
{
  "data": {
    "updateKycDocuments": {
      "customer_id": "4",
      "customer_created_at": "2007-12-03T10:15:30Z",
      "customer_type": "INDIVIDUAL",
      "customer_phone_number": "abc123",
      "official_id_number": "xyz789",
      "country": "abc123",
      "county": "xyz789",
      "sub_county": "xyz789",
      "ward": "abc123",
      "town": "abc123",
      "landmark": "abc123",
      "customer_email_address": "xyz789",
      "customer_status": "ACTIVE",
      "display_name": "xyz789",
      "customer_first_name": "xyz789",
      "customer_surname_name": "abc123",
      "organization_name": "abc123",
      "organization_registration_number": "abc123",
      "individual_details": IndividualDetailsDto,
      "organization_details": OrganizationDetailsDto,
      "contact_person": ContactPersonDto,
      "kyc_documents": KycDocumentsDto,
      "next_of_kin": NextOfKinDto,
      "total_loans_taken": 123.45,
      "active_loans_count": 987.65,
      "completed_loans_count": 123.45,
      "has_defaulted": true,
      "current_credit_score": "xyz789",
      "metadata": {},
      "customer_updated_at": "2007-12-03T10:15:30Z",
      "keycloak_id": "abc123",
      "referral_code": "abc123",
      "applications": [ApplicationEntityGraphQL],
      "latestApplication": ApplicationEntityGraphQL
    }
  }
}

updateManyDelivery

Response

Returns a Float!

Arguments
Name Description
filters - DeliveryFilterInput!
input - UpdateDeliveryInput!

Example

Query
mutation updateManyDelivery(
  $filters: DeliveryFilterInput!,
  $input: UpdateDeliveryInput!
) {
  updateManyDelivery(
    filters: $filters,
    input: $input
  )
}
Variables
{
  "filters": DeliveryFilterInput,
  "input": UpdateDeliveryInput
}
Response
{"data": {"updateManyDelivery": 123.45}}

updateManyDeliveryItems

Response

Returns a Float!

Arguments
Name Description
filters - DeliveryItemFilterInput!
input - UpdateDeliveryItemInput!

Example

Query
mutation updateManyDeliveryItems(
  $filters: DeliveryItemFilterInput!,
  $input: UpdateDeliveryItemInput!
) {
  updateManyDeliveryItems(
    filters: $filters,
    input: $input
  )
}
Variables
{
  "filters": DeliveryItemFilterInput,
  "input": UpdateDeliveryItemInput
}
Response
{"data": {"updateManyDeliveryItems": 987.65}}

updateManyOrderItems

Response

Returns a Float!

Arguments
Name Description
filters - OrderFilterInput!
input - UpdateOrderItemInput!

Example

Query
mutation updateManyOrderItems(
  $filters: OrderFilterInput!,
  $input: UpdateOrderItemInput!
) {
  updateManyOrderItems(
    filters: $filters,
    input: $input
  )
}
Variables
{
  "filters": OrderFilterInput,
  "input": UpdateOrderItemInput
}
Response
{"data": {"updateManyOrderItems": 987.65}}

updateManyUsers

Response

Returns an Int!

Arguments
Name Description
filters - UserFilterInput!
input - UpdateUserInput!

Example

Query
mutation updateManyUsers(
  $filters: UserFilterInput!,
  $input: UpdateUserInput!
) {
  updateManyUsers(
    filters: $filters,
    input: $input
  )
}
Variables
{
  "filters": UserFilterInput,
  "input": UpdateUserInput
}
Response
{"data": {"updateManyUsers": 123}}

updateOfferDiscount

Response

Returns a ProductOfferObjectType!

Arguments
Name Description
offerId - ID!
discountPercentage - Float!

Example

Query
mutation updateOfferDiscount(
  $offerId: ID!,
  $discountPercentage: Float!
) {
  updateOfferDiscount(
    offerId: $offerId,
    discountPercentage: $discountPercentage
  ) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{"offerId": 4, "discountPercentage": 123.45}
Response
{
  "data": {
    "updateOfferDiscount": {
      "product_offer_id": "4",
      "sku_id": 4,
      "description": "abc123",
      "status": "DRAFT",
      "type": "PERCENTAGE",
      "discount_value": 123.45,
      "minimum_purchase_amount": 987.65,
      "maximum_discount_amount": 123.45,
      "usage_limit": 123,
      "usage_count": 987,
      "usage_limit_per_customer": 987,
      "promo_code": "xyz789",
      "category_filters": ["abc123"],
      "brand_filters": ["abc123"],
      "applicable_channels": ["abc123"],
      "active": false,
      "starts_at": "2007-12-03T10:15:30Z",
      "ends_at": "2007-12-03T10:15:30Z",
      "seller_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateOrder

Response

Returns an OrderObjectType!

Arguments
Name Description
id - ID!
input - UpdateOrderInput!

Example

Query
mutation updateOrder(
  $id: ID!,
  $input: UpdateOrderInput!
) {
  updateOrder(
    id: $id,
    input: $input
  ) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateOrderInput
}
Response
{
  "data": {
    "updateOrder": {
      "order_id": 4,
      "customer_id": 4,
      "order_status": "PENDING",
      "payment_status": "UNPAID",
      "shipping_address": ShippingAddress,
      "currency": "xyz789",
      "sub_total": 123.45,
      "total_discount": 123.45,
      "delivery_fee": 123.45,
      "service_fee": 123.45,
      "tax_amount": 987.65,
      "total_amount": 987.65,
      "application_id": "abc123",
      "sale_agent_id": "abc123",
      "submitting_agent_id": "xyz789",
      "manual_override": false,
      "order_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "application": ApplicationEntityGraphQL,
      "orderItems": [OrderItemObjectType],
      "deliveries": [DeliveryObjectType],
      "sales": [SalesObjectType],
      "deliveryCalls": [DeliveryCallObjectType]
    }
  }
}

updateOrderItem

Response

Returns an OrderItemObjectType!

Arguments
Name Description
id - ID!
input - UpdateOrderItemInput!

Example

Query
mutation updateOrderItem(
  $id: ID!,
  $input: UpdateOrderItemInput!
) {
  updateOrderItem(
    id: $id,
    input: $input
  ) {
    order_item_id
    order_id
    seller_id
    item_type
    catalog_id
    quantity
    unit_price
    discount_amount
    adjustments
    subtotal
    purchase_type
    status
    metadata
    created_at
    updated_at
    sellerCatalog {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    delivery_items {
      id
      delivery_id
      order_item_id
      quantity_shipped
      delivery {
        ...DeliveryObjectTypeFragment
      }
      order_item {
        ...OrderItemObjectTypeFragment
      }
    }
    inventory_allocations {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
    inventory_allocation {
      inventory_allocation_id
      order_item_id
      inventory_id
      quantity_allocated
      allocation_status
      allocation_date
      expiry_date
      metadata
      order_item {
        ...OrderItemObjectTypeFragment
      }
      inventory {
        ...InventoryObjectTypeFragment
      }
      created_at
      updated_at
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateOrderItemInput
}
Response
{
  "data": {
    "updateOrderItem": {
      "order_item_id": 4,
      "order_id": 4,
      "seller_id": "4",
      "item_type": "PRODUCT",
      "catalog_id": "4",
      "quantity": 123.45,
      "unit_price": 987.65,
      "discount_amount": 123.45,
      "adjustments": {},
      "subtotal": 123.45,
      "purchase_type": "CASH",
      "status": "abc123",
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "sellerCatalog": SellerCatalogObjectType,
      "order": OrderObjectType,
      "delivery_items": [DeliveryItemObjectType],
      "inventory_allocations": [
        InventoryAllocationObjectType
      ],
      "inventory_allocation": InventoryAllocationObjectType
    }
  }
}

updateOrders

Response

Returns a Float!

Arguments
Name Description
filters - SalesFilterInput!
input - UpdateSalesInput!

Example

Query
mutation updateOrders(
  $filters: SalesFilterInput!,
  $input: UpdateSalesInput!
) {
  updateOrders(
    filters: $filters,
    input: $input
  )
}
Variables
{
  "filters": SalesFilterInput,
  "input": UpdateSalesInput
}
Response
{"data": {"updateOrders": 987.65}}

updatePerformanceMetrics

Response

Returns a SellerObjectType!

Arguments
Name Description
sellerId - ID!
metrics - PerformanceMetricsInput!

Example

Query
mutation updatePerformanceMetrics(
  $sellerId: ID!,
  $metrics: PerformanceMetricsInput!
) {
  updatePerformanceMetrics(
    sellerId: $sellerId,
    metrics: $metrics
  ) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{"sellerId": 4, "metrics": PerformanceMetricsInput}
Response
{
  "data": {
    "updatePerformanceMetrics": {
      "seller_id": 4,
      "commission_type_id": "abc123",
      "tier_id": "xyz789",
      "seller_type": "INTERNAL",
      "payment_details": {},
      "capabilities": {},
      "performance_metrics": {},
      "overall_rating": 987.65,
      "total_reviews": 123,
      "total_sales": 987,
      "total_orders_365_days": 987,
      "badges": ["abc123"],
      "suspension_reason": "abc123",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "joined_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "partner_profile_id": "xyz789",
      "platform_owner": true,
      "partner_profile": PartnerProfileObjectType
    }
  }
}

updatePhoneVerificationRecordStatus

Description

Mark a phone verification record as ACTIVE or STALE

Arguments
Name Description
id - ID!
input - UpdateVerificationRecordStatusInput!

Example

Query
mutation updatePhoneVerificationRecordStatus(
  $id: ID!,
  $input: UpdateVerificationRecordStatusInput!
) {
  updatePhoneVerificationRecordStatus(
    id: $id,
    input: $input
  ) {
    _id
    status
    country_iso
    provider
    phone_number
    target_id
    customer_name
    transaction_id
    failure_reason
    registered
    failed_at
    completed_at
    manual
    check
    record_status
    createdAt
  }
}
Variables
{"id": 4, "input": UpdateVerificationRecordStatusInput}
Response
{
  "data": {
    "updatePhoneVerificationRecordStatus": {
      "_id": "4",
      "status": false,
      "country_iso": "xyz789",
      "provider": "MPESA",
      "phone_number": "xyz789",
      "target_id": "xyz789",
      "customer_name": "abc123",
      "transaction_id": "xyz789",
      "failure_reason": "xyz789",
      "registered": false,
      "failed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "manual": true,
      "check": "UNKNOWN",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

updatePhoneVerificationTransaction

Description

Update a phone verification transaction record

Arguments
Name Description
id - ID!
input - UpdatePhoneVerificationTransactionInput!
justification - String!

Example

Query
mutation updatePhoneVerificationTransaction(
  $id: ID!,
  $input: UpdatePhoneVerificationTransactionInput!,
  $justification: String!
) {
  updatePhoneVerificationTransaction(
    id: $id,
    input: $input,
    justification: $justification
  ) {
    _id
    status
    country_iso
    provider
    phone_number
    target_id
    customer_name
    transaction_id
    failure_reason
    registered
    failed_at
    completed_at
    manual
    check
    record_status
    createdAt
  }
}
Variables
{
  "id": "4",
  "input": UpdatePhoneVerificationTransactionInput,
  "justification": "xyz789"
}
Response
{
  "data": {
    "updatePhoneVerificationTransaction": {
      "_id": "4",
      "status": false,
      "country_iso": "xyz789",
      "provider": "MPESA",
      "phone_number": "xyz789",
      "target_id": "abc123",
      "customer_name": "abc123",
      "transaction_id": "abc123",
      "failure_reason": "xyz789",
      "registered": true,
      "failed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "manual": false,
      "check": "UNKNOWN",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

updatePricePlan

Response

Returns a PricePlanObjectType!

Arguments
Name Description
id - String!
input - UpdatePricePlanInput!

Example

Query
mutation updatePricePlan(
  $id: String!,
  $input: UpdatePricePlanInput!
) {
  updatePricePlan(
    id: $id,
    input: $input
  ) {
    id
    tier_id
    parent_plan_id
    code
    name
    min_device_value
    max_device_value
    deposit_percent
    deposit_percent_high
    subsequent_loan_discount_percent
    loan_multiplier
    loan_multiplier_high
    mocare_percent
    duration_months
    duration_months_high
    payment_frequency
    effective_from
    effective_to
    early_payoff_discounts {
      within_months
      discount_percent
    }
    status
    is_private
    version
    metadata
    created_at
    updated_at
    tier {
      id
      name
      description
      priority
      is_active
      created_at
      updated_at
      price_plans {
        ...PricePlanObjectTypeFragment
      }
    }
    versions {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{
  "id": "xyz789",
  "input": UpdatePricePlanInput
}
Response
{
  "data": {
    "updatePricePlan": {
      "id": "4",
      "tier_id": "xyz789",
      "parent_plan_id": "xyz789",
      "code": "abc123",
      "name": "xyz789",
      "min_device_value": 123.45,
      "max_device_value": 123.45,
      "deposit_percent": 987.65,
      "deposit_percent_high": 987.65,
      "subsequent_loan_discount_percent": 123.45,
      "loan_multiplier": 123.45,
      "loan_multiplier_high": 123.45,
      "mocare_percent": 987.65,
      "duration_months": 987,
      "duration_months_high": 987,
      "payment_frequency": "DAILY",
      "effective_from": "2007-12-03T10:15:30Z",
      "effective_to": "2007-12-03T10:15:30Z",
      "early_payoff_discounts": [
        EarlyPayoffDiscountObjectType
      ],
      "status": "ACTIVE",
      "is_private": true,
      "version": 987,
      "metadata": {},
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "tier": SellerTierObjectType,
      "versions": [PricePlanObjectType]
    }
  }
}

updateProduct

Response

Returns a ProductObjectType!

Arguments
Name Description
id - ID!
input - UpdateProductInput!

Example

Query
mutation updateProduct(
  $id: ID!,
  $input: UpdateProductInput!
) {
  updateProduct(
    id: $id,
    input: $input
  ) {
    product_id
    name
    slug
    brand
    model
    category_id
    category {
      category_id
      name
      slug
      description
      icon_url
      image_url
      required_attributes
      sku_attributes
      parent_category_id
      level
      path
      sort_order
      is_active
      meta_title
      meta_description
      created_at
      updated_at
    }
    description
    long_description
    base_specifications
    primary_image_url
    images
    video_url
    meta_title
    meta_description
    keywords
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
  }
}
Variables
{"id": 4, "input": UpdateProductInput}
Response
{
  "data": {
    "updateProduct": {
      "product_id": "4",
      "name": "xyz789",
      "slug": "xyz789",
      "brand": "xyz789",
      "model": "abc123",
      "category_id": "abc123",
      "category": CategoryObjectType,
      "description": "xyz789",
      "long_description": "abc123",
      "base_specifications": {},
      "primary_image_url": "abc123",
      "images": ["xyz789"],
      "video_url": "abc123",
      "meta_title": "abc123",
      "meta_description": "abc123",
      "keywords": ["abc123"],
      "is_active": true,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "abc123",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "abc123",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateProductOffer

Response

Returns a ProductOfferObjectType!

Arguments
Name Description
id - ID!
input - UpdateProductOfferInput!

Example

Query
mutation updateProductOffer(
  $id: ID!,
  $input: UpdateProductOfferInput!
) {
  updateProductOffer(
    id: $id,
    input: $input
  ) {
    product_offer_id
    sku_id
    description
    status
    type
    discount_value
    minimum_purchase_amount
    maximum_discount_amount
    usage_limit
    usage_count
    usage_limit_per_customer
    promo_code
    category_filters
    brand_filters
    applicable_channels
    active
    starts_at
    ends_at
    seller_id
    created_at
    updated_at
  }
}
Variables
{
  "id": "4",
  "input": UpdateProductOfferInput
}
Response
{
  "data": {
    "updateProductOffer": {
      "product_offer_id": "4",
      "sku_id": 4,
      "description": "abc123",
      "status": "DRAFT",
      "type": "PERCENTAGE",
      "discount_value": 987.65,
      "minimum_purchase_amount": 987.65,
      "maximum_discount_amount": 987.65,
      "usage_limit": 123,
      "usage_count": 123,
      "usage_limit_per_customer": 987,
      "promo_code": "abc123",
      "category_filters": ["abc123"],
      "brand_filters": ["xyz789"],
      "applicable_channels": ["abc123"],
      "active": false,
      "starts_at": "2007-12-03T10:15:30Z",
      "ends_at": "2007-12-03T10:15:30Z",
      "seller_id": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateRating

Response

Returns a SellerObjectType!

Arguments
Name Description
sellerId - ID!
newRating - Float!
totalReviews - Float!

Example

Query
mutation updateRating(
  $sellerId: ID!,
  $newRating: Float!,
  $totalReviews: Float!
) {
  updateRating(
    sellerId: $sellerId,
    newRating: $newRating,
    totalReviews: $totalReviews
  ) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{
  "sellerId": "4",
  "newRating": 123.45,
  "totalReviews": 123.45
}
Response
{
  "data": {
    "updateRating": {
      "seller_id": "4",
      "commission_type_id": "abc123",
      "tier_id": "abc123",
      "seller_type": "INTERNAL",
      "payment_details": {},
      "capabilities": {},
      "performance_metrics": {},
      "overall_rating": 987.65,
      "total_reviews": 987,
      "total_sales": 987,
      "total_orders_365_days": 987,
      "badges": ["abc123"],
      "suspension_reason": "xyz789",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "joined_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "partner_profile_id": "xyz789",
      "platform_owner": true,
      "partner_profile": PartnerProfileObjectType
    }
  }
}

updateReferralStatus

Response

Returns a CustomerReferralDto!

Arguments
Name Description
referral_id - ID!
status - ReferralStatusEnum!
updated_by - String!

Example

Query
mutation updateReferralStatus(
  $referral_id: ID!,
  $status: ReferralStatusEnum!,
  $updated_by: String!
) {
  updateReferralStatus(
    referral_id: $referral_id,
    status: $status,
    updated_by: $updated_by
  ) {
    referral_id
    referrer_customer_id
    referee_customer_id
    referee_customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    referral_code_used
    referral_status
    validation_due_date
    validated_at
    rewards_processed_at
    referee_loan_contract_id
    referee_opening_date
    payment_adjustment_id
    referrer_airtime_transaction_id
    referee_airtime_transaction_id
    created_by
    created_at
    updated_by
    updated_at
  }
}
Variables
{
  "referral_id": "4",
  "status": "INCOMPLETE",
  "updated_by": "abc123"
}
Response
{
  "data": {
    "updateReferralStatus": {
      "referral_id": "4",
      "referrer_customer_id": 4,
      "referee_customer_id": 4,
      "referee_customer": RawCustomersDto,
      "referral_code_used": "abc123",
      "referral_status": "INCOMPLETE",
      "validation_due_date": "2007-12-03T10:15:30Z",
      "validated_at": "2007-12-03T10:15:30Z",
      "rewards_processed_at": "2007-12-03T10:15:30Z",
      "referee_loan_contract_id": "xyz789",
      "referee_opening_date": "2007-12-03T10:15:30Z",
      "payment_adjustment_id": "abc123",
      "referrer_airtime_transaction_id": "abc123",
      "referee_airtime_transaction_id": "abc123",
      "created_by": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_by": "xyz789",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateRefund

Description

Update a refund record (status, method, notes)

Response

Returns a RefundGraphQL!

Arguments
Name Description
id - ID!
input - UpdateRefundInput!

Example

Query
mutation updateRefund(
  $id: ID!,
  $input: UpdateRefundInput!
) {
  updateRefund(
    id: $id,
    input: $input
  ) {
    refund_id
    customer_id
    sale_id
    returns_request_id
    order_id
    loan_contract_id
    source_payment_id
    adjustment_id
    refund_workflow_type
    refund_amount
    status
    refund_method
    transaction_reference
    submitted_by
    submitted_by_name
    actor_id
    approved_by
    approved_by_name
    customer_name
    customer_phone
    customer_official_id
    approved_at
    processed_at
    completed_at
    notes
    rejection_reason
    returns_request_type
    created_at
    updated_at
  }
}
Variables
{"id": 4, "input": UpdateRefundInput}
Response
{
  "data": {
    "updateRefund": {
      "refund_id": "4",
      "customer_id": "abc123",
      "sale_id": "abc123",
      "returns_request_id": "abc123",
      "order_id": "xyz789",
      "loan_contract_id": "abc123",
      "source_payment_id": "xyz789",
      "adjustment_id": "abc123",
      "refund_workflow_type": "RETURN",
      "refund_amount": 123.45,
      "status": "PENDING",
      "refund_method": "MPESA",
      "transaction_reference": "xyz789",
      "submitted_by": "abc123",
      "submitted_by_name": "xyz789",
      "actor_id": "xyz789",
      "approved_by": "abc123",
      "approved_by_name": "abc123",
      "customer_name": "abc123",
      "customer_phone": "abc123",
      "customer_official_id": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "processed_at": "2007-12-03T10:15:30Z",
      "completed_at": "2007-12-03T10:15:30Z",
      "notes": "abc123",
      "rejection_reason": "xyz789",
      "returns_request_type": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateRepair

Response

Returns a RepairObjectType!

Arguments
Name Description
id - ID!
input - UpdateRepairInput!

Example

Query
mutation updateRepair(
  $id: ID!,
  $input: UpdateRepairInput!
) {
  updateRepair(
    id: $id,
    input: $input
  ) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateRepairInput
}
Response
{
  "data": {
    "updateRepair": {
      "repair_id": "4",
      "repair_display_id": "abc123",
      "requires_technician": false,
      "inventory_id": "xyz789",
      "customer_id": "abc123",
      "original_sale_id": "xyz789",
      "provider_seller_id": "abc123",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": true,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "abc123",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "xyz789",
      "billing_type": "WARRANTY",
      "quoted_price": 123.45,
      "spares_cost": 987.65,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

updateRepairPriority

Response

Returns a RepairObjectType!

Arguments
Name Description
orderId - ID!
priority - RepairPriorityEnum!

Example

Query
mutation updateRepairPriority(
  $orderId: ID!,
  $priority: RepairPriorityEnum!
) {
  updateRepairPriority(
    orderId: $orderId,
    priority: $priority
  ) {
    repair_id
    repair_display_id
    requires_technician
    inventory_id
    customer_id
    original_sale_id
    provider_seller_id
    location_status
    status
    priority
    is_left_at_shop
    intake_details
    outtake_details
    security
    issue_tag
    customer_complaint
    hq_diagnostic_notes
    billing_type
    quoted_price
    spares_cost
    estimated_completion_at
    actual_completion_at
    created_at
    updated_at
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
  }
}
Variables
{"orderId": "4", "priority": "LOW"}
Response
{
  "data": {
    "updateRepairPriority": {
      "repair_id": "4",
      "repair_display_id": "xyz789",
      "requires_technician": true,
      "inventory_id": "xyz789",
      "customer_id": "xyz789",
      "original_sale_id": "xyz789",
      "provider_seller_id": "xyz789",
      "location_status": "FRONT_DESK",
      "status": "PENDING",
      "priority": "LOW",
      "is_left_at_shop": true,
      "intake_details": {},
      "outtake_details": {},
      "security": {},
      "issue_tag": "abc123",
      "customer_complaint": "abc123",
      "hq_diagnostic_notes": "xyz789",
      "billing_type": "WARRANTY",
      "quoted_price": 123.45,
      "spares_cost": 987.65,
      "estimated_completion_at": "2007-12-03T10:15:30Z",
      "actual_completion_at": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "inventory": InventoryObjectType,
      "seller": SellerObjectType
    }
  }
}

updateReservedStock

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
catalogId - ID!
newReservedStock - Float!

Example

Query
mutation updateReservedStock(
  $catalogId: ID!,
  $newReservedStock: Float!
) {
  updateReservedStock(
    catalogId: $catalogId,
    newReservedStock: $newReservedStock
  ) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{
  "catalogId": "4",
  "newReservedStock": 987.65
}
Response
{
  "data": {
    "updateReservedStock": {
      "seller_catalog_id": 4,
      "seller_id": "abc123",
      "sku_id": "xyz789",
      "cost_price": 987.65,
      "retail_price": 123.45,
      "currency": "abc123",
      "stock_on_hand": 987,
      "reserved_stock": 123,
      "is_active": false,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 123,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

updateRetailPrice

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
catalogId - ID!
newPrice - Float!

Example

Query
mutation updateRetailPrice(
  $catalogId: ID!,
  $newPrice: Float!
) {
  updateRetailPrice(
    catalogId: $catalogId,
    newPrice: $newPrice
  ) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"catalogId": "4", "newPrice": 123.45}
Response
{
  "data": {
    "updateRetailPrice": {
      "seller_catalog_id": "4",
      "seller_id": "xyz789",
      "sku_id": "abc123",
      "cost_price": 987.65,
      "retail_price": 123.45,
      "currency": "xyz789",
      "stock_on_hand": 123,
      "reserved_stock": 987,
      "is_active": true,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 987,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

updateReturnsRequest

Description

Update non-status fields on a returns request. Status changes must use performReturnsAction instead.

Response

Returns a ReturnsGraphQL!

Arguments
Name Description
id - ID!
input - UpdateReturnsInput!

Example

Query
mutation updateReturnsRequest(
  $id: ID!,
  $input: UpdateReturnsInput!
) {
  updateReturnsRequest(
    id: $id,
    input: $input
  ) {
    _id
    request_type
    status
    customer_id
    sale_id
    ticket_id
    current_device_id
    target_device_model
    return_reason
    customer_notes
    cxc_notes
    submitted_by
    customer {
      display_name
      customer_phone_number
    }
    current_device {
      serial_number
      product_id
      sku_id
    }
    submitted_by_user {
      name
      email
    }
    operations_user {
      name
      email
    }
    decisioner_user {
      name
      email
    }
    submitted_at
    return_policy
    current_device_balance
    amount_paid_to_date
    current_device_deposit
    new_device_deposit
    new_device_price
    device_allocation_details {
      new_device_assigned_at
      new_device_assigned_by
      new_device_id
      new_device_serial_number
      new_device_name
    }
    operations_details {
      operations_user_id
      status
      operations_notes
      repair_cost
      device_condition
      locking_system_condition
      device_unlock_password
      decided_at
    }
    decisioner_details {
      decisioner_id
      status
      decisioner_notes
      confirmed_price_plan
      confirmed_price_plan_name
      confirmed_target_device_model
      confirmed_target_device_model_name
      confirmed_cash_price
      confirmed_topup_amount
      confirmed_refund_amount
      calculated_deposit_amount
      calculated_weekly_instalment_amount
      calculated_topup_amount
      calculated_refund_amount
      arrears_amount_at_escalation
      required_arrears_payment_amount
      new_loan_term_months
      decided_at
    }
    consent_records {
      stage
      consent_type
      verified_at
      status
      created_at
      is_bypassed
      bypass_reason
      bypassed_by
    }
    refund_applicable
    repossession_details {
      repossession_date
      repossession_method
      repossession_notes
    }
    status_history {
      from
      to
      action
      actor
      actor_name
      actor_email
      timestamp
    }
    notes_history {
      _id
      text
      author_id
      author_name
      lane
      source_action
      source_field
      created_at
    }
    price_plan
    lane_owner
    superseded_by_request_id
    supersedes_request_id
    workflow_switch_reason
    workflow_switch {
      from_type
      to_type
      switched_at
      switched_by
      reason
      force_switch
      source_status
      child_request_id
    }
    reverse_progress
    no_stock_at_request
    old_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    new_product_snapshot {
      inventory_id
      imei
      sku_id
      sku_code
      sku_name
      stock_location
      stock_type_1p_3p
      captured_at
      captured_by
    }
    createdAt
    updatedAt
    intake_return_type_label
    fulfillment_mode
    mpesa_reference
    upgrade_policy_mode
    customer_age_weeks_at_decision
    new_credit_sale_id
    new_credit_sale_activated_at
    topup_confirmed_at
    swap_repair_mpesa_clearance
    inventory_sync
    pending_manual_detach
    pending_detach_inventory_id
    manual_detach_detached_at
    manual_detach_inventory_id
    linked_application_id
  }
}
Variables
{
  "id": "4",
  "input": UpdateReturnsInput
}
Response
{
  "data": {
    "updateReturnsRequest": {
      "_id": 4,
      "request_type": "SWAP",
      "status": "PENDING",
      "customer_id": "xyz789",
      "sale_id": "xyz789",
      "ticket_id": "xyz789",
      "current_device_id": "xyz789",
      "target_device_model": "abc123",
      "return_reason": "FUNCTIONAL_ISSUES",
      "customer_notes": "xyz789",
      "cxc_notes": "abc123",
      "submitted_by": "xyz789",
      "customer": ResolvedCustomerType,
      "current_device": ResolvedDeviceType,
      "submitted_by_user": ResolvedUserType,
      "operations_user": ResolvedUserType,
      "decisioner_user": ResolvedUserType,
      "submitted_at": "2007-12-03T10:15:30Z",
      "return_policy": "WITHIN_POLICY",
      "current_device_balance": 123.45,
      "amount_paid_to_date": 987.65,
      "current_device_deposit": 123.45,
      "new_device_deposit": 987.65,
      "new_device_price": 123.45,
      "device_allocation_details": DeviceAllocationDetailsType,
      "operations_details": OperationsDetailsType,
      "decisioner_details": DecisionerDetailsType,
      "consent_records": [ConsentRecordType],
      "refund_applicable": true,
      "repossession_details": RepossessionDetailsType,
      "status_history": [StatusHistoryEntryType],
      "notes_history": [ReturnsNoteEntryType],
      "price_plan": "xyz789",
      "lane_owner": "xyz789",
      "superseded_by_request_id": "abc123",
      "supersedes_request_id": "abc123",
      "workflow_switch_reason": "xyz789",
      "workflow_switch": WorkflowSwitchType,
      "reverse_progress": "TO_BE_PICKED_UP",
      "no_stock_at_request": false,
      "old_product_snapshot": ProductSnapshotType,
      "new_product_snapshot": ProductSnapshotType,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "intake_return_type_label": "xyz789",
      "fulfillment_mode": "xyz789",
      "mpesa_reference": "xyz789",
      "upgrade_policy_mode": "xyz789",
      "customer_age_weeks_at_decision": 987,
      "new_credit_sale_id": "4",
      "new_credit_sale_activated_at": "xyz789",
      "topup_confirmed_at": "xyz789",
      "swap_repair_mpesa_clearance": {},
      "inventory_sync": {},
      "pending_manual_detach": true,
      "pending_detach_inventory_id": "4",
      "manual_detach_detached_at": "abc123",
      "manual_detach_inventory_id": 4,
      "linked_application_id": "4"
    }
  }
}

updateRole

Response

Returns a RoleObjectType!

Arguments
Name Description
id - ID!
input - UpdateRoleInput!

Example

Query
mutation updateRole(
  $id: ID!,
  $input: UpdateRoleInput!
) {
  updateRole(
    id: $id,
    input: $input
  ) {
    _id
    id
    name
    level
    permissions
    description
    canManage
    realm
  }
}
Variables
{
  "id": "4",
  "input": UpdateRoleInput
}
Response
{
  "data": {
    "updateRole": {
      "_id": "abc123",
      "id": "xyz789",
      "name": "xyz789",
      "level": 123,
      "permissions": ["abc123"],
      "description": "abc123",
      "canManage": ["abc123"],
      "realm": "abc123"
    }
  }
}

updateSale

Response

Returns a SalesObjectType!

Arguments
Name Description
id - ID!
input - UpdateSalesInput!

Example

Query
mutation updateSale(
  $id: ID!,
  $input: UpdateSalesInput!
) {
  updateSale(
    id: $id,
    input: $input
  ) {
    sale_id
    sale_date
    order_id
    customer_id
    sale_agent_id
    submitting_agent_id
    sfm_id
    price_plan_id
    pricePlan {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
    inventory_id
    inventory {
      inventory_id
      product_id
      sku_id
      condition_id
      seller_catalog_id
      seller_id
      serial_number
      identifiers
      physical_state
      mdm_enrollment
      enrollment_status
      stock_status_type
      stock_status_name
      stock_origin
      stock_type
      b2b
      qc_report {
        ...QCReportTypeFragment
      }
      qc_report_link
      qc_status
      qc_status_type
      unit_cost
      contract_id
      mdm_status
      batch_number
      location_id
      inspection_report
      warranty
      acquisition_date
      first_sale_date
      supplier_name
      supplier_code
      supplier_order_reference
      customer_id
      sale_id
      created_at
      updated_at
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      location {
        ...InventoryLocationObjectTypeFragment
      }
    }
    payment_type
    payment_status
    normal_high_deposit
    final_sale_price
    upfront_payment
    gross_loan_amount
    marketplace_fee
    seller_payout
    invoice_number
    status
    return_date
    created_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    order {
      order_id
      customer_id
      order_status
      payment_status
      shipping_address {
        ...ShippingAddressFragment
      }
      currency
      sub_total
      total_discount
      delivery_fee
      service_fee
      tax_amount
      total_amount
      application_id
      sale_agent_id
      submitting_agent_id
      manual_override
      order_date
      created_at
      updated_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      application {
        ...ApplicationEntityGraphQLFragment
      }
      orderItems {
        ...OrderItemObjectTypeFragment
      }
      deliveries {
        ...DeliveryObjectTypeFragment
      }
      sales {
        ...SalesObjectTypeFragment
      }
      deliveryCalls {
        ...DeliveryCallObjectTypeFragment
      }
    }
    loan_contract {
      contract_id
      loan_id
      sale_id
      customer_id
      customer {
        ...RawCustomersDtoFragment
      }
      opening_date
      duration
      upfront_payment
      deposit
      repayment_type
      gross_loan_amount
      net_loan_amount
      interest_rate
      repayment_rate
      interest_calculation_method
      payment_allocation_method
      disbursement_date
      maturity_date
      first_payment_due_date
      grace_period_days
      penalty_rate_per_day
      is_restructured
      original_contract_id
      loan_product_code
      loan_status_override
      early_payoff_discounts {
        ...LoanEarlyPayoffDiscountTypeFragment
      }
      metadata
      created_at
      updated_at
      installments {
        ...LoanInstallmentDtoFragment
      }
      overdueInstallments {
        ...LoanInstallmentDtoFragment
      }
      nextDueInstallment {
        ...LoanInstallmentDtoFragment
      }
      ledgerEntries {
        ...LoanLedgerDtoFragment
      }
      delinquencyTracking {
        ...LoanDelinquencyTrackingDtoFragment
      }
      paymentAllocations {
        ...PaymentAllocationDtoFragment
      }
      latest_ledger_id
      grace_period_status
      grace_period_category
      grace_period_credit_expiry
      grace_period_last_trigger_source
      returned_date
      is_lost
      latest_ledger {
        ...LoanLedgerDtoFragment
      }
      contract {
        ...LoanContractDtoFragment
      }
    }
    commission {
      product_commission
      loan_commission
      cash_commission
      channel_type
      commission_type
      commission_rule_id
      commission_override_id
      is_override
    }
    cash_price
    reporting {
      loan_id
      business_model
      is_3p_sale
      partner_name
      credit_check_done
      cash_price
      loan_price
      loan_period
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateSalesInput
}
Response
{
  "data": {
    "updateSale": {
      "sale_id": 4,
      "sale_date": "2007-12-03T10:15:30Z",
      "order_id": "4",
      "customer_id": "4",
      "sale_agent_id": "4",
      "submitting_agent_id": "4",
      "sfm_id": "4",
      "price_plan_id": "4",
      "pricePlan": PricePlanObjectType,
      "inventory_id": 4,
      "inventory": InventoryObjectType,
      "payment_type": "REPAIR",
      "payment_status": "UNPAID",
      "normal_high_deposit": "NORMAL",
      "final_sale_price": 123.45,
      "upfront_payment": 123.45,
      "gross_loan_amount": 123.45,
      "marketplace_fee": 987.65,
      "seller_payout": 123.45,
      "invoice_number": "xyz789",
      "status": "ACTIVE",
      "return_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "order": OrderObjectType,
      "loan_contract": LoanContractDto,
      "commission": CommissionSnapshotType,
      "cash_price": 123.45,
      "reporting": SaleReportingType
    }
  }
}

updateSeller

Response

Returns a SellerObjectType!

Arguments
Name Description
id - ID!
input - UpdateSellerInput!

Example

Query
mutation updateSeller(
  $id: ID!,
  $input: UpdateSellerInput!
) {
  updateSeller(
    id: $id,
    input: $input
  ) {
    seller_id
    commission_type_id
    tier_id
    seller_type
    payment_details
    capabilities
    performance_metrics
    overall_rating
    total_reviews
    total_sales
    total_orders_365_days
    badges
    suspension_reason
    approved_by
    approved_at
    joined_at
    updated_at
    partner_profile_id
    platform_owner
    partner_profile {
      _id
      id
      channel_type
      channel_category
      partner_track
      entity_type
      is_owner
      platform_owner
      is_active
      is_deleted
      owner_user_id
      staff_user_ids {
        ...UserObjectTypeFragment
      }
      reports_to_id {
        ...PartnerProfileObjectTypeFragment
      }
      hierarchy_depth
      hierarchy_path
      downline_partner_ids
      whatsapp_number
      secondary_number
      location_details {
        ...LocationDetailsObjectTypeFragment
      }
      partner_status
      assignment_status
      training_status
      current_cohort_id {
        ...CohortObjectTypeFragment
      }
      assigned_trainer_id
      assigned_sfm_id
      assigned_sfm {
        ...InternalStaffProfileObjectTypeFragment
      }
      assigned_promoter_id
      assigned_promoter {
        ...InternalStaffProfileObjectTypeFragment
      }
      graduation_date
      cohort_history {
        ...CohortEnrollmentObjectTypeFragment
      }
      assigned_shop_id
      shop_based
      outlets {
        ...RetailerOutletObjectTypeFragment
      }
      shop_metadata {
        ...StaticShopMetadataObjectTypeFragment
      }
      kyc_metadata {
        ...KYCMetadataObjectTypeFragment
      }
      activation_date
      reactivation_date
      deactivation_date
      created_by {
        ...UserObjectTypeFragment
      }
      agent_profile_id {
        ...AgentProfileObjectTypeFragment
      }
      shop_manager_id {
        ...InternalStaffProfileObjectTypeFragment
      }
      seller_id {
        ...SellerObjectTypeFragment
      }
      createdAt
      updatedAt
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateSellerInput
}
Response
{
  "data": {
    "updateSeller": {
      "seller_id": "4",
      "commission_type_id": "xyz789",
      "tier_id": "xyz789",
      "seller_type": "INTERNAL",
      "payment_details": {},
      "capabilities": {},
      "performance_metrics": {},
      "overall_rating": 987.65,
      "total_reviews": 987,
      "total_sales": 987,
      "total_orders_365_days": 987,
      "badges": ["xyz789"],
      "suspension_reason": "xyz789",
      "approved_by": "abc123",
      "approved_at": "2007-12-03T10:15:30Z",
      "joined_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "partner_profile_id": "abc123",
      "platform_owner": false,
      "partner_profile": PartnerProfileObjectType
    }
  }
}

updateSellerCatalog

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
id - ID!
input - UpdateSellerCatalogInput!

Example

Query
mutation updateSellerCatalog(
  $id: ID!,
  $input: UpdateSellerCatalogInput!
) {
  updateSellerCatalog(
    id: $id,
    input: $input
  ) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateSellerCatalogInput
}
Response
{
  "data": {
    "updateSellerCatalog": {
      "seller_catalog_id": "4",
      "seller_id": "xyz789",
      "sku_id": "abc123",
      "cost_price": 123.45,
      "retail_price": 123.45,
      "currency": "abc123",
      "stock_on_hand": 987,
      "reserved_stock": 987,
      "is_active": true,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 987,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

updateSellerTier

Response

Returns a SellerTierObjectType!

Arguments
Name Description
id - String!
input - UpdateSellerTierInput!

Example

Query
mutation updateSellerTier(
  $id: String!,
  $input: UpdateSellerTierInput!
) {
  updateSellerTier(
    id: $id,
    input: $input
  ) {
    id
    name
    description
    priority
    is_active
    created_at
    updated_at
    price_plans {
      id
      tier_id
      parent_plan_id
      code
      name
      min_device_value
      max_device_value
      deposit_percent
      deposit_percent_high
      subsequent_loan_discount_percent
      loan_multiplier
      loan_multiplier_high
      mocare_percent
      duration_months
      duration_months_high
      payment_frequency
      effective_from
      effective_to
      early_payoff_discounts {
        ...EarlyPayoffDiscountObjectTypeFragment
      }
      status
      is_private
      version
      metadata
      created_at
      updated_at
      tier {
        ...SellerTierObjectTypeFragment
      }
      versions {
        ...PricePlanObjectTypeFragment
      }
    }
  }
}
Variables
{
  "id": "xyz789",
  "input": UpdateSellerTierInput
}
Response
{
  "data": {
    "updateSellerTier": {
      "id": "4",
      "name": "abc123",
      "description": "xyz789",
      "priority": 123,
      "is_active": false,
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "price_plans": [PricePlanObjectType]
    }
  }
}

updateSku

Response

Returns a SkuObjectType!

Arguments
Name Description
id - ID!
input - UpdateSkuInput!

Example

Query
mutation updateSku(
  $id: ID!,
  $input: UpdateSkuInput!
) {
  updateSku(
    id: $id,
    input: $input
  ) {
    sku_id
    product_id
    condition_id
    parent_sku_id
    level
    level_attribute_key
    level_attribute_value
    sku_code
    name
    attributes
    variant_specifications
    msrp_price
    min_seller_price
    max_seller_price
    suggested_retail_price
    effective_price
    images
    weight_grams
    dimensions_mm
    is_active
    approval_status
    submitted_by_seller_id
    approved_by
    approved_at
    rejection_reason
    created_at
    updated_at
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
    condition {
      condition_id
      grade
      name
      sort_order
      color_hex
      badge_icon
      criteria
      description
      internal_notes
      verification_requirements
      warranty_months
      price_multiplier
      financing_impact
      seller_requirements
      is_active
      available_for_sellers
      created_at
      updated_at
    }
  }
}
Variables
{"id": 4, "input": UpdateSkuInput}
Response
{
  "data": {
    "updateSku": {
      "sku_id": "4",
      "product_id": "abc123",
      "condition_id": "xyz789",
      "parent_sku_id": "abc123",
      "level": 123,
      "level_attribute_key": "abc123",
      "level_attribute_value": "abc123",
      "sku_code": "xyz789",
      "name": "abc123",
      "attributes": {},
      "variant_specifications": {},
      "msrp_price": 987.65,
      "min_seller_price": 987.65,
      "max_seller_price": 123.45,
      "suggested_retail_price": 123.45,
      "effective_price": 987.65,
      "images": ["abc123"],
      "weight_grams": 123,
      "dimensions_mm": "abc123",
      "is_active": true,
      "approval_status": "APPROVED",
      "submitted_by_seller_id": "abc123",
      "approved_by": "xyz789",
      "approved_at": "2007-12-03T10:15:30Z",
      "rejection_reason": "xyz789",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "product": ProductObjectType,
      "condition": ConditionObjectType
    }
  }
}

updateStockOnHand

Response

Returns a SellerCatalogObjectType!

Arguments
Name Description
catalogId - ID!
newStock - Float!

Example

Query
mutation updateStockOnHand(
  $catalogId: ID!,
  $newStock: Float!
) {
  updateStockOnHand(
    catalogId: $catalogId,
    newStock: $newStock
  ) {
    seller_catalog_id
    seller_id
    sku_id
    cost_price
    retail_price
    currency
    stock_on_hand
    reserved_stock
    is_active
    listed_at
    updated_at
    available_stock
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    sku {
      sku_id
      product_id
      condition_id
      parent_sku_id
      level
      level_attribute_key
      level_attribute_value
      sku_code
      name
      attributes
      variant_specifications
      msrp_price
      min_seller_price
      max_seller_price
      suggested_retail_price
      effective_price
      images
      weight_grams
      dimensions_mm
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
      product {
        ...ProductObjectTypeFragment
      }
      condition {
        ...ConditionObjectTypeFragment
      }
    }
    product {
      product_id
      name
      slug
      brand
      model
      category_id
      category {
        ...CategoryObjectTypeFragment
      }
      description
      long_description
      base_specifications
      primary_image_url
      images
      video_url
      meta_title
      meta_description
      keywords
      is_active
      approval_status
      submitted_by_seller_id
      approved_by
      approved_at
      rejection_reason
      created_at
      updated_at
    }
  }
}
Variables
{"catalogId": 4, "newStock": 123.45}
Response
{
  "data": {
    "updateStockOnHand": {
      "seller_catalog_id": "4",
      "seller_id": "abc123",
      "sku_id": "xyz789",
      "cost_price": 987.65,
      "retail_price": 123.45,
      "currency": "abc123",
      "stock_on_hand": 123,
      "reserved_stock": 123,
      "is_active": true,
      "listed_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "available_stock": 123,
      "seller": SellerObjectType,
      "sku": SkuObjectType,
      "product": ProductObjectType
    }
  }
}

updateTaxVerificationRecordStatus

Description

Mark a tax verification record as ACTIVE or STALE

Response

Returns a TaxVerificationTransactionDto!

Arguments
Name Description
id - ID!
input - UpdateVerificationRecordStatusInput!

Example

Query
mutation updateTaxVerificationRecordStatus(
  $id: ID!,
  $input: UpdateVerificationRecordStatusInput!
) {
  updateTaxVerificationRecordStatus(
    id: $id,
    input: $input
  ) {
    id
    provider
    full_name
    identification_type
    pin_number
    expiration_date
    issuance_date
    phone
    gender
    date_of_birth
    place_of_birth
    kra_pin
    citizenship
    is_pin_active
    email
    country
    record_status
    createdAt
  }
}
Variables
{"id": 4, "input": UpdateVerificationRecordStatusInput}
Response
{
  "data": {
    "updateTaxVerificationRecordStatus": {
      "id": 4,
      "provider": "BOT",
      "full_name": "abc123",
      "identification_type": "abc123",
      "pin_number": "xyz789",
      "expiration_date": "xyz789",
      "issuance_date": "abc123",
      "phone": "xyz789",
      "gender": "abc123",
      "date_of_birth": "xyz789",
      "place_of_birth": "xyz789",
      "kra_pin": "xyz789",
      "citizenship": "xyz789",
      "is_pin_active": 987,
      "email": "xyz789",
      "country": "abc123",
      "record_status": "ACTIVE",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

updateUser

Response

Returns a UserObjectType!

Arguments
Name Description
id - ID!
input - UpdateUserInput!

Example

Query
mutation updateUser(
  $id: ID!,
  $input: UpdateUserInput!
) {
  updateUser(
    id: $id,
    input: $input
  ) {
    _id
    id
    keycloak_id
    username
    email
    first_name
    surname
    last_name
    phone_number
    role
    enabled
    user_type
    is_internal
    first_login
    last_login
    availability_status
    synced_at
    group_memberships
    permissions
    created_at
    updated_at
  }
}
Variables
{
  "id": "4",
  "input": UpdateUserInput
}
Response
{
  "data": {
    "updateUser": {
      "_id": "4",
      "id": "xyz789",
      "keycloak_id": "xyz789",
      "username": "abc123",
      "email": "xyz789",
      "first_name": "abc123",
      "surname": "abc123",
      "last_name": "xyz789",
      "phone_number": "abc123",
      "role": "abc123",
      "enabled": false,
      "user_type": "SYSTEM_ADMIN",
      "is_internal": true,
      "first_login": "2007-12-03T10:15:30Z",
      "last_login": "2007-12-03T10:15:30Z",
      "availability_status": "AVAILABLE",
      "synced_at": "2007-12-03T10:15:30Z",
      "group_memberships": ["xyz789"],
      "permissions": ["xyz789"],
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z"
    }
  }
}

updateWalletTransaction

Response

Returns a RawWalletTransactionsDto!

Arguments
Name Description
id - ID!
input - UpdateRawWalletTransactionsInput!

Example

Query
mutation updateWalletTransaction(
  $id: ID!,
  $input: UpdateRawWalletTransactionsInput!
) {
  updateWalletTransaction(
    id: $id,
    input: $input
  ) {
    wallet_transaction_id
    wallet_id
    customer_id
    sale_id
    wallet_transaction_ref_id
    wallet_transaction_type
    wallet_transaction_sub_type
    wallet_transaction_amount
    wallet_transaction_balance_before
    wallet_transaction_balance_after
    wallet_transaction_days_value
    wallet_transaction_points_value
    wallet_transaction_status
    reference
    wallet_transaction_description
    wallet_transaction_metadata
    wallet_transaction_created_at
    wallet_transaction_updated_at
    wallet_transaction_completed_at
  }
}
Variables
{"id": 4, "input": UpdateRawWalletTransactionsInput}
Response
{
  "data": {
    "updateWalletTransaction": {
      "wallet_transaction_id": 4,
      "wallet_id": 4,
      "customer_id": 4,
      "sale_id": "4",
      "wallet_transaction_ref_id": 4,
      "wallet_transaction_type": "PAYMENT",
      "wallet_transaction_sub_type": "MPESA",
      "wallet_transaction_amount": 987.65,
      "wallet_transaction_balance_before": 123.45,
      "wallet_transaction_balance_after": 123.45,
      "wallet_transaction_days_value": 123.45,
      "wallet_transaction_points_value": 987.65,
      "wallet_transaction_status": "PENDING",
      "reference": "abc123",
      "wallet_transaction_description": "xyz789",
      "wallet_transaction_metadata": {},
      "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
      "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
    }
  }
}

uploadKycDocuments

Description

Upload KYC documents for an existing customer.

Response

Returns a RawCustomersDto!

Arguments
Name Description
id - ID!
input - UploadKycDocumentsInput!

Example

Query
mutation uploadKycDocuments(
  $id: ID!,
  $input: UploadKycDocumentsInput!
) {
  uploadKycDocuments(
    id: $id,
    input: $input
  ) {
    customer_id
    customer_created_at
    customer_type
    customer_phone_number
    official_id_number
    country
    county
    sub_county
    ward
    town
    landmark
    customer_email_address
    customer_status
    display_name
    customer_first_name
    customer_surname_name
    organization_name
    organization_registration_number
    individual_details {
      middle_name
      gender
      date_of_birth
      secondary_phone
      marital_status
      application_id
      customer_source
      customer_source_id
    }
    organization_details {
      trading_name
      organization_type
      registration_date
      tax_id
      industry_sector
      number_of_employees
      application_id
      customer_source
      customer_source_id
    }
    contact_person {
      name
      title
      phone
      email
    }
    kyc_documents {
      selfie_url
      id_front_url
      id_back_url
      certificate_of_incorporation_url
      tax_certificate_url
      business_permit_url
      associated_phone_numbers
    }
    next_of_kin {
      first_name
      other_name
      relationship
      id_type
      id_number
      phone_primary
      phone_secondary
      primary_on_whatsapp
    }
    total_loans_taken
    active_loans_count
    completed_loans_count
    has_defaulted
    current_credit_score
    metadata
    customer_updated_at
    keycloak_id
    referral_code
    applications {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    latestApplication {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
  }
}
Variables
{"id": 4, "input": UploadKycDocumentsInput}
Response
{
  "data": {
    "uploadKycDocuments": {
      "customer_id": 4,
      "customer_created_at": "2007-12-03T10:15:30Z",
      "customer_type": "INDIVIDUAL",
      "customer_phone_number": "xyz789",
      "official_id_number": "abc123",
      "country": "abc123",
      "county": "abc123",
      "sub_county": "xyz789",
      "ward": "abc123",
      "town": "xyz789",
      "landmark": "xyz789",
      "customer_email_address": "xyz789",
      "customer_status": "ACTIVE",
      "display_name": "abc123",
      "customer_first_name": "xyz789",
      "customer_surname_name": "xyz789",
      "organization_name": "abc123",
      "organization_registration_number": "xyz789",
      "individual_details": IndividualDetailsDto,
      "organization_details": OrganizationDetailsDto,
      "contact_person": ContactPersonDto,
      "kyc_documents": KycDocumentsDto,
      "next_of_kin": NextOfKinDto,
      "total_loans_taken": 987.65,
      "active_loans_count": 987.65,
      "completed_loans_count": 123.45,
      "has_defaulted": true,
      "current_credit_score": "abc123",
      "metadata": {},
      "customer_updated_at": "2007-12-03T10:15:30Z",
      "keycloak_id": "abc123",
      "referral_code": "abc123",
      "applications": [ApplicationEntityGraphQL],
      "latestApplication": ApplicationEntityGraphQL
    }
  }
}

uploadQCReport

Description

Upload QC report

Response

Returns a String!

Arguments
Name Description
input - UploadQCReportInput!

Example

Query
mutation uploadQCReport($input: UploadQCReportInput!) {
  uploadQCReport(input: $input)
}
Variables
{"input": UploadQCReportInput}
Response
{"data": {"uploadQCReport": "abc123"}}

verifyApplicationOtp

Description

Verify the OTP for an application consent

Response

Returns an ApplicationEntityGraphQL!

Arguments
Name Description
applicationId - ID!
otp - String!

Example

Query
mutation verifyApplicationOtp(
  $applicationId: ID!,
  $otp: String!
) {
  verifyApplicationOtp(
    applicationId: $applicationId,
    otp: $otp
  ) {
    _id
    customer_id
    application_state
    credit_state
    prospect_stage
    application_channel
    kyc_documents
    active_kyc_documents {
      mpesa_statement
      bank_statement
      back_id
      front_id
      selfie
    }
    customer {
      personal_info {
        ...ApplicationPersonalInfoGraphQLFragment
      }
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      location {
        ...ApplicationLocationGraphQLFragment
      }
      employment {
        ...ApplicationEmploymentGraphQLFragment
      }
      credit_history {
        ...ApplicationCreditHistoryGraphQLFragment
      }
      product {
        ...ApplicationProductGraphQLFragment
      }
    }
    next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    previous_next_of_kin {
      first_name
      other_name
      relationship
      identification {
        ...ApplicationIdentificationGraphQLFragment
      }
      phone_primary
      primary_on_whatsapp
      phone_secondary
      full_name
    }
    credit {
      credit
      credit_process
      pending_kyc_tags
      system_crb_score
      user_crb_score
      final_risk_score
      status
      prospect_status
      resubmission_pending_review
      customer_bucket
      customer_tag
      prospect_model
      check_by_risk_model
      fate_guide
      risk_flag
      combined_risk_flag
      deposit_requirement
      advice_customer
      customer_credit_fate_reason
      last_modified_credit_status
      approved_at
      product_id
      product_name
      product_inventory_id
      price_plan_id
      price_plan_code
      price_plan_name
      product_cash_price
      resubmission_link
      initial_weeks
      risk_model
      validity {
        ...ApplicationValidityGraphQLFragment
      }
      metadata
      exemption_record {
        ...ApplicationExemptionRecordGraphQLFragment
      }
    }
    risk {
      risk_flag
      previous_loans
      high_deposit_overide
    }
    delivery {
      delivery_id
      rider_id
      mpesa_code
      delivery_code
      rider_submitted_otp
      otp_expiry_time
      location {
        ...ApplicationLocationGraphQLFragment
      }
      front_id
      back_id
      delivery_status
      notes
      order_processing {
        ...SalesProcessingJobStatusGraphQLFragment
      }
      sale_creation {
        ...SalesProcessingJobStatusGraphQLFragment
      }
    }
    legacy_references {
      lead_id
      prospect_id
      application_id
    }
    metadata
    timeline {
      lead_created
      lead_updated
      prospect_created
      prospect_updated
      customer_created
      ready_for_scoring
      ready_for_calling
      ready_for_decision
      called_at
      scored_at
      decisioned_at
      device_needed
      liveness_created_date
      ready_for_screening
      screened_at
      paused_financial_statement_at
      prospect_submitted_at
      resubmission_submitted_at
      scoring_started_at
      first_scored_at
      calling_started_at
      first_called_at
      decision_started_at
      first_decisioned_at
      last_modified_credit_status_at
    }
    references {
      lead_id
      prospect_id
      customer_id
      crb_transaction_id
      resubmission_id
      fate_guide_id
      final_fate_guide_id
      order_id
    }
    validation_references {
      customer_iprs
      customer_kra
      customer_mpesa
      customer_duplicate
      nok_iprs
      nok_mpesa
      nok_duplicate
      risk
      mpesa_statement
      liveness
      pre_screening
    }
    application_type
    normal_high_deposit
    activeValidationRecords {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    credit_call {
      call_details_id
      call_type
      credit_call_link
    }
    call_disposition_id
    submission_source
    leads_screens {
      customer
      product
      consent
      termsAndConditions
      kycDocuments
      creditQuestions
    }
    prospects_screens {
      liveness
      nextOfKin
      product
      images
    }
    liveness_check {
      method
      link
    }
    consent {
      sales_approval
      terms_and_conditions
      source_of_information
      verified
      verification_phone
      referrer_name
      created_at
      otp
      verified_at
    }
    staff {
      scorer {
        ...ApplicationStaffMemberGraphQLFragment
      }
      caller {
        ...ApplicationStaffMemberGraphQLFragment
      }
      decisioner {
        ...ApplicationStaffMemberGraphQLFragment
      }
      sales_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      submitting_agent {
        ...ApplicationSalesAgentGraphQLFragment
      }
      screener {
        ...ApplicationSalesAgentGraphQLFragment
      }
      seller {
        ...ApplicationSalesAgentGraphQLFragment
      }
      sfm {
        ...ApplicationSalesAgentGraphQLFragment
      }
    }
    creditProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    customerProduct {
      seller_catalog_id
      seller_id
      sku_id
      cost_price
      retail_price
      currency
      stock_on_hand
      reserved_stock
      is_active
      listed_at
      updated_at
      available_stock
      seller {
        ...SellerObjectTypeFragment
      }
      sku {
        ...SkuObjectTypeFragment
      }
      product {
        ...ProductObjectTypeFragment
      }
    }
    seller {
      seller_id
      commission_type_id
      tier_id
      seller_type
      payment_details
      capabilities
      performance_metrics
      overall_rating
      total_reviews
      total_sales
      total_orders_365_days
      badges
      suspension_reason
      approved_by
      approved_at
      joined_at
      updated_at
      partner_profile_id
      platform_owner
      partner_profile {
        ...PartnerProfileObjectTypeFragment
      }
    }
    salesAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    submittingAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    sfmAgent {
      _id
      agent_profile_id
      user_id {
        ...UserObjectTypeFragment
      }
      agent_category
      agent_type
      agent_status
      kyc_status
      staff_document_ref {
        ...InternalStaffProfileObjectTypeFragment
      }
      partner_document_ref {
        ...PartnerProfileObjectTypeFragment
      }
      is_deleted
      created_by {
        ...UserObjectTypeFragment
      }
      createdAt
      updatedAt
      permissions {
        ...ResourcePermissionTypeFragment
      }
    }
    active_resubmission {
      _id
      prospect_id
      lead_id
      application_id
      changes {
        ...ResubmissionChangesGraphQLFragment
      }
      journey
      status
      submitted_by
      validations_to_run
      valid_data {
        ...ResubmissionValidDataGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      validations {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      full_name
      createdAt
      updatedAt
    }
    createdAt
    updatedAt
    callDisposition {
      _id
      application_id
      application {
        ...ApplicationEntityGraphQLFragment
      }
      disposition
      notes
      priority
      next_call_date
      createdAt
      updatedAt
    }
    validation_records {
      _id
      target
      target_id
      type
      status
      action
      result
      attempts_count
      max_attempts
      data {
        ...ValidationDataGraphQLFragment
      }
      createdAt
      updatedAt
      application {
        ...ApplicationEntityGraphQLFragment
      }
    }
    active_validation_records {
      customer_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_kra {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      customer_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_iprs {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_mpesa {
        ...ValidationRecordGraphQLEntityFragment
      }
      nok_duplicate {
        ...ValidationRecordGraphQLEntityFragment
      }
      risk {
        ...ValidationRecordGraphQLEntityFragment
      }
      mpesa_statement {
        ...ValidationRecordGraphQLEntityFragment
      }
      liveness {
        ...ValidationRecordGraphQLEntityFragment
      }
      pre_screening {
        ...ValidationRecordGraphQLEntityFragment
      }
    }
    creditCallDetails {
      _id
      application_id
      status
      notes
      agent_name
      caller_id
      delivery_location_type
      priority
      call_date
      follow_up_required
      customer_location
      employer_info
      employment_details
      delivery_location
      product_choice
      confirmed_price_plan
      geo_address
      delivery_or_collection_location
      other_delivery_notes
      call_type
      call_outcome
      call_notes
      call_ended_at
      call_started_at
      call_duration_seconds
      nok {
        ...CallDetailsNokTypeFragment
      }
      customer_general_location
      preferred_delivery_day
      preferred_delivery_slot
      work_location
      work_location_link
      screening_consent
      accept_loan_terms
      extras
      createdAt
      updatedAt
    }
    activeCreditPricePlan {
      cash_price
      deposit_amount
      deposit_amount_high
      subsequent_loan_discount_percent
      subsequent_loan_initial_pay
      subsequent_loan_total_customer_pays
      loan_principal
      loan_principal_high
      total_loan_amount
      total_loan_amount_high
      outstanding_loan
      outstanding_loan_high
      mocare_value
      total_customer_pays
      total_customer_pays_high
      accurate_total_customer_pays
      accurate_total_customer_pays_high
      instalment_amount
      instalment_amount_high
      daily_instalment_amount
      daily_instalment_amount_high
      weekly_instalment_amount
      weekly_instalment_amount_high
      monthly_instalment_amount
      monthly_instalment_amount_high
      weekly_installment_count_high
      duration_months
      duration_months_high
      payment_frequency
      plan_code
      plan_id
      plan_name
      early_payoff_discounts {
        ...EarlyPayoffDiscountTypeFragment
      }
    }
  }
}
Variables
{"applicationId": 4, "otp": "abc123"}
Response
{
  "data": {
    "verifyApplicationOtp": {
      "_id": 4,
      "customer_id": "xyz789",
      "application_state": "partial_lead",
      "credit_state": "UNKNOWN",
      "prospect_stage": "UNKNOWN",
      "application_channel": "SALES_APP",
      "kyc_documents": ["abc123"],
      "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
      "customer": ApplicationCustomerGraphQL,
      "next_of_kin": ApplicationNextOfKinGraphQL,
      "previous_next_of_kin": ApplicationNextOfKinGraphQL,
      "credit": ApplicationCreditGraphQL,
      "risk": ApplicationRiskGraphQL,
      "delivery": ApplicationDeliveryGraphQL,
      "legacy_references": ApplicationLegacyReferencesGraphQL,
      "metadata": {},
      "timeline": ApplicationTimelineGraphQL,
      "references": ApplicationReferencesGraphQL,
      "validation_references": ApplicationValidationReferencesGraphQL,
      "application_type": "FIRST_LOAN",
      "normal_high_deposit": "NORMAL",
      "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
      "credit_call": ApplicationCreditCallGraphQL,
      "call_disposition_id": "abc123",
      "submission_source": "AGENT_DIRECT",
      "leads_screens": LeadsScreensGraphQL,
      "prospects_screens": ProspectsScreensGraphQL,
      "liveness_check": ApplicationLivenessCheckGraphQL,
      "consent": ApplicationConsentGraphQL,
      "staff": ApplicationStaffGraphQL,
      "creditProduct": SellerCatalogObjectType,
      "customerProduct": SellerCatalogObjectType,
      "seller": SellerObjectType,
      "salesAgent": AgentProfileObjectType,
      "submittingAgent": AgentProfileObjectType,
      "sfmAgent": AgentProfileObjectType,
      "active_resubmission": ApplicationResubmissionGraphQL,
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "callDisposition": CallDispositionType,
      "validation_records": [
        ValidationRecordGraphQLEntity
      ],
      "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
      "creditCallDetails": ApplicationCallDetailsType,
      "activeCreditPricePlan": PricingCalculationType
    }
  }
}

verifyOtp

Response

Returns an AuthResponse!

Arguments
Name Description
input - VerifyOtpInput!

Example

Query
mutation verifyOtp($input: VerifyOtpInput!) {
  verifyOtp(input: $input) {
    access_token
    refresh_token
    expires_in
    refresh_expires_in
    token_type
    user {
      _id
      id
      keycloak_id
      username
      email
      first_name
      surname
      last_name
      phone_number
      role
      enabled
      user_type
      is_internal
      first_login
      last_login
      availability_status
      synced_at
      group_memberships
      permissions
      created_at
      updated_at
    }
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
  }
}
Variables
{"input": VerifyOtpInput}
Response
{
  "data": {
    "verifyOtp": {
      "access_token": "abc123",
      "refresh_token": "abc123",
      "expires_in": 123,
      "refresh_expires_in": 123,
      "token_type": "abc123",
      "user": UserObjectType,
      "customer": RawCustomersDto
    }
  }
}

Subscriptions

applicationUpdate

Description

Subscribe to application state updates

Response

Returns an ApplicationUpdatePayload!

Arguments
Name Description
applicationId - ID

Example

Query
subscription applicationUpdate($applicationId: ID) {
  applicationUpdate(applicationId: $applicationId) {
    applicationId
    applicationState
    creditState
    prospectStage
    changes
    timestamp
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "applicationUpdate": {
      "applicationId": "4",
      "applicationState": "abc123",
      "creditState": "abc123",
      "prospectStage": "xyz789",
      "changes": {},
      "timestamp": "2007-12-03T10:15:30Z"
    }
  }
}

configUpdate

Description

Subscribe to config updates

Response

Returns a ConfigUpdatePayload!

Arguments
Name Description
key - String Filter by specific config key
category - String Filter by config category
clientId - String Filter by client/tenant ID

Example

Query
subscription configUpdate(
  $key: String,
  $category: String,
  $clientId: String
) {
  configUpdate(
    key: $key,
    category: $category,
    clientId: $clientId
  ) {
    key
    value
    category
    clientId
    timestamp
  }
}
Variables
{
  "key": "xyz789",
  "category": "abc123",
  "clientId": "abc123"
}
Response
{
  "data": {
    "configUpdate": {
      "key": "xyz789",
      "value": {},
      "category": "xyz789",
      "clientId": "abc123",
      "timestamp": "2007-12-03T10:15:30Z"
    }
  }
}

gateStatusUpdate

Description

Subscribe to gate status updates

Response

Returns a GateStatusPayload!

Arguments
Name Description
gate - String Filter by specific gate name

Example

Query
subscription gateStatusUpdate($gate: String) {
  gateStatusUpdate(gate: $gate) {
    gate
    status
    message
    timestamp
  }
}
Variables
{"gate": "abc123"}
Response
{
  "data": {
    "gateStatusUpdate": {
      "gate": "abc123",
      "status": "xyz789",
      "message": "abc123",
      "timestamp": "2007-12-03T10:15:30Z"
    }
  }
}

orderStatusChanged

Response

Returns an OrderObjectType!

Arguments
Name Description
customerId - ID!

Example

Query
subscription orderStatusChanged($customerId: ID!) {
  orderStatusChanged(customerId: $customerId) {
    order_id
    customer_id
    order_status
    payment_status
    shipping_address {
      street
      city
      state
      postal_code
      country
      geo {
        ...OrderGeoFragment
      }
    }
    currency
    sub_total
    total_discount
    delivery_fee
    service_fee
    tax_amount
    total_amount
    application_id
    sale_agent_id
    submitting_agent_id
    manual_override
    order_date
    created_at
    updated_at
    metadata
    customer {
      customer_id
      customer_created_at
      customer_type
      customer_phone_number
      official_id_number
      country
      county
      sub_county
      ward
      town
      landmark
      customer_email_address
      customer_status
      display_name
      customer_first_name
      customer_surname_name
      organization_name
      organization_registration_number
      individual_details {
        ...IndividualDetailsDtoFragment
      }
      organization_details {
        ...OrganizationDetailsDtoFragment
      }
      contact_person {
        ...ContactPersonDtoFragment
      }
      kyc_documents {
        ...KycDocumentsDtoFragment
      }
      next_of_kin {
        ...NextOfKinDtoFragment
      }
      total_loans_taken
      active_loans_count
      completed_loans_count
      has_defaulted
      current_credit_score
      metadata
      customer_updated_at
      keycloak_id
      referral_code
      applications {
        ...ApplicationEntityGraphQLFragment
      }
      latestApplication {
        ...ApplicationEntityGraphQLFragment
      }
    }
    application {
      _id
      customer_id
      application_state
      credit_state
      prospect_stage
      application_channel
      kyc_documents
      active_kyc_documents {
        ...ApplicationActiveKycDocumentsGraphQLFragment
      }
      customer {
        ...ApplicationCustomerGraphQLFragment
      }
      next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      previous_next_of_kin {
        ...ApplicationNextOfKinGraphQLFragment
      }
      credit {
        ...ApplicationCreditGraphQLFragment
      }
      risk {
        ...ApplicationRiskGraphQLFragment
      }
      delivery {
        ...ApplicationDeliveryGraphQLFragment
      }
      legacy_references {
        ...ApplicationLegacyReferencesGraphQLFragment
      }
      metadata
      timeline {
        ...ApplicationTimelineGraphQLFragment
      }
      references {
        ...ApplicationReferencesGraphQLFragment
      }
      validation_references {
        ...ApplicationValidationReferencesGraphQLFragment
      }
      application_type
      normal_high_deposit
      activeValidationRecords {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      credit_call {
        ...ApplicationCreditCallGraphQLFragment
      }
      call_disposition_id
      submission_source
      leads_screens {
        ...LeadsScreensGraphQLFragment
      }
      prospects_screens {
        ...ProspectsScreensGraphQLFragment
      }
      liveness_check {
        ...ApplicationLivenessCheckGraphQLFragment
      }
      consent {
        ...ApplicationConsentGraphQLFragment
      }
      staff {
        ...ApplicationStaffGraphQLFragment
      }
      creditProduct {
        ...SellerCatalogObjectTypeFragment
      }
      customerProduct {
        ...SellerCatalogObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      salesAgent {
        ...AgentProfileObjectTypeFragment
      }
      submittingAgent {
        ...AgentProfileObjectTypeFragment
      }
      sfmAgent {
        ...AgentProfileObjectTypeFragment
      }
      active_resubmission {
        ...ApplicationResubmissionGraphQLFragment
      }
      createdAt
      updatedAt
      callDisposition {
        ...CallDispositionTypeFragment
      }
      validation_records {
        ...ValidationRecordGraphQLEntityFragment
      }
      active_validation_records {
        ...ApplicationActiveValidationReferencesGraphQLFragment
      }
      creditCallDetails {
        ...ApplicationCallDetailsTypeFragment
      }
      activeCreditPricePlan {
        ...PricingCalculationTypeFragment
      }
    }
    orderItems {
      order_item_id
      order_id
      seller_id
      item_type
      catalog_id
      quantity
      unit_price
      discount_amount
      adjustments
      subtotal
      purchase_type
      status
      metadata
      created_at
      updated_at
      sellerCatalog {
        ...SellerCatalogObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      delivery_items {
        ...DeliveryItemObjectTypeFragment
      }
      inventory_allocations {
        ...InventoryAllocationObjectTypeFragment
      }
      inventory_allocation {
        ...InventoryAllocationObjectTypeFragment
      }
    }
    deliveries {
      delivery_id
      order_id
      seller_id
      assigned_rider_id
      delivery_status
      delivery_address {
        ...DeliveryAddressFragment
      }
      tracking_number
      provider_info {
        ...ProviderInfoFragment
      }
      proof_of_delivery {
        ...ProofOfDeliveryFragment
      }
      delivery_notes
      destination_location {
        ...GeoLocationFragment
      }
      estimated_arrival
      actual_arrival
      metadata
      assigned_rider {
        ...UserObjectTypeFragment
      }
      seller {
        ...SellerObjectTypeFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      items {
        ...DeliveryItemObjectTypeFragment
      }
      calls {
        ...DeliveryCallObjectTypeFragment
      }
      latestAnsweredCall {
        ...DeliveryCallObjectTypeFragment
      }
      created_at
      updated_at
      deliveryItems {
        ...DeliveryItemObjectTypeFragment
      }
    }
    sales {
      sale_id
      sale_date
      order_id
      customer_id
      sale_agent_id
      submitting_agent_id
      sfm_id
      price_plan_id
      pricePlan {
        ...PricePlanObjectTypeFragment
      }
      inventory_id
      inventory {
        ...InventoryObjectTypeFragment
      }
      payment_type
      payment_status
      normal_high_deposit
      final_sale_price
      upfront_payment
      gross_loan_amount
      marketplace_fee
      seller_payout
      invoice_number
      status
      return_date
      created_at
      metadata
      customer {
        ...RawCustomersDtoFragment
      }
      order {
        ...OrderObjectTypeFragment
      }
      loan_contract {
        ...LoanContractDtoFragment
      }
      commission {
        ...CommissionSnapshotTypeFragment
      }
      cash_price
      reporting {
        ...SaleReportingTypeFragment
      }
    }
    deliveryCalls {
      call_id
      order_id
      called_by
      caller {
        ...UserObjectTypeFragment
      }
      confirmed_delivery_location {
        ...ConfirmedDeliveryLocationObjectTypeFragment
      }
      spec_preference {
        ...SpecPreferenceObjectTypeFragment
      }
      confirmed_delivery_date
      confirmed_delivery_slot
      call_time
      outcome
      confirmed_delivery_type
      confirmed_delivery_type_name
      notes
      metadata
      created_at
      order {
        ...OrderObjectTypeFragment
      }
    }
  }
}
Variables
{"customerId": "4"}
Response
{
  "data": {
    "orderStatusChanged": {
      "order_id": "4",
      "customer_id": "4",
      "order_status": "PENDING",
      "payment_status": "UNPAID",
      "shipping_address": ShippingAddress,
      "currency": "abc123",
      "sub_total": 987.65,
      "total_discount": 987.65,
      "delivery_fee": 123.45,
      "service_fee": 123.45,
      "tax_amount": 987.65,
      "total_amount": 123.45,
      "application_id": "abc123",
      "sale_agent_id": "abc123",
      "submitting_agent_id": "abc123",
      "manual_override": false,
      "order_date": "2007-12-03T10:15:30Z",
      "created_at": "2007-12-03T10:15:30Z",
      "updated_at": "2007-12-03T10:15:30Z",
      "metadata": {},
      "customer": RawCustomersDto,
      "application": ApplicationEntityGraphQL,
      "orderItems": [OrderItemObjectType],
      "deliveries": [DeliveryObjectType],
      "sales": [SalesObjectType],
      "deliveryCalls": [DeliveryCallObjectType]
    }
  }
}

pushRoleNotificationCreated

Description

Subscribe to push notifications created for a specific role

Response

Returns a CommunicationObjectType!

Arguments
Name Description
roleId - String! The role ID to subscribe to push notifications for

Example

Query
subscription pushRoleNotificationCreated($roleId: String!) {
  pushRoleNotificationCreated(roleId: $roleId) {
    _id
    id
    userId
    channel
    status
    type
    message {
      title
      body
      subject
    }
    emailData {
      to
      from
      cc
      bcc
      replyTo
      attachments {
        ...EmailAttachmentObjectTypeFragment
      }
      html
      text
      templateId
      templateData
    }
    smsData {
      to
      from
      message
      shortcode
      campaignId
    }
    pushData {
      targetType
      targetId
      title
      body
      image
      clickAction
      data
    }
    inAppData {
      actionUrl
      actionButtonText
      priority
      category
    }
    delivery {
      sentAt
      deliveredAt
      failedAt
      readAt
      clickedAt
      error
      externalId
      provider
      providerResponse
    }
    retryCount
    maxRetries
    campaignId
    campaignName
    tags
    scheduledFor
    timezone
    queueJobId
    queueName
    priority
    metadata
    createdAt
    updatedAt
  }
}
Variables
{"roleId": "xyz789"}
Response
{
  "data": {
    "pushRoleNotificationCreated": {
      "_id": "4",
      "id": "abc123",
      "userId": "abc123",
      "channel": "PUSH",
      "status": "PENDING",
      "type": "INFO",
      "message": BaseMessageObjectType,
      "emailData": EmailDataObjectType,
      "smsData": SmsDataObjectType,
      "pushData": PushDataObjectType,
      "inAppData": InAppDataObjectType,
      "delivery": DeliveryInfoObjectType,
      "retryCount": 987,
      "maxRetries": 987,
      "campaignId": "abc123",
      "campaignName": "abc123",
      "tags": ["xyz789"],
      "scheduledFor": "2007-12-03T10:15:30Z",
      "timezone": "xyz789",
      "queueJobId": "xyz789",
      "queueName": "xyz789",
      "priority": 123,
      "metadata": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

pushUserNotificationCreated

Description

Subscribe to push notifications created for a specific user

Response

Returns a CommunicationObjectType!

Arguments
Name Description
userId - String! The user ID to subscribe to push notifications for

Example

Query
subscription pushUserNotificationCreated($userId: String!) {
  pushUserNotificationCreated(userId: $userId) {
    _id
    id
    userId
    channel
    status
    type
    message {
      title
      body
      subject
    }
    emailData {
      to
      from
      cc
      bcc
      replyTo
      attachments {
        ...EmailAttachmentObjectTypeFragment
      }
      html
      text
      templateId
      templateData
    }
    smsData {
      to
      from
      message
      shortcode
      campaignId
    }
    pushData {
      targetType
      targetId
      title
      body
      image
      clickAction
      data
    }
    inAppData {
      actionUrl
      actionButtonText
      priority
      category
    }
    delivery {
      sentAt
      deliveredAt
      failedAt
      readAt
      clickedAt
      error
      externalId
      provider
      providerResponse
    }
    retryCount
    maxRetries
    campaignId
    campaignName
    tags
    scheduledFor
    timezone
    queueJobId
    queueName
    priority
    metadata
    createdAt
    updatedAt
  }
}
Variables
{"userId": "xyz789"}
Response
{
  "data": {
    "pushUserNotificationCreated": {
      "_id": 4,
      "id": "abc123",
      "userId": "xyz789",
      "channel": "PUSH",
      "status": "PENDING",
      "type": "INFO",
      "message": BaseMessageObjectType,
      "emailData": EmailDataObjectType,
      "smsData": SmsDataObjectType,
      "pushData": PushDataObjectType,
      "inAppData": InAppDataObjectType,
      "delivery": DeliveryInfoObjectType,
      "retryCount": 987,
      "maxRetries": 987,
      "campaignId": "xyz789",
      "campaignName": "xyz789",
      "tags": ["abc123"],
      "scheduledFor": "2007-12-03T10:15:30Z",
      "timezone": "xyz789",
      "queueJobId": "abc123",
      "queueName": "xyz789",
      "priority": 123,
      "metadata": {},
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z"
    }
  }
}

resubmissionValidationUpdate

Description

Subscribe to validation updates for a resubmission

Response

Returns a ValidationUpdatePayload!

Arguments
Name Description
resubmissionId - ID

Example

Query
subscription resubmissionValidationUpdate($resubmissionId: ID) {
  resubmissionValidationUpdate(resubmissionId: $resubmissionId) {
    targetId
    type
    status
    result
    data
    timestamp
  }
}
Variables
{"resubmissionId": 4}
Response
{
  "data": {
    "resubmissionValidationUpdate": {
      "targetId": 4,
      "type": "CUSTOMER_IPRS",
      "status": "RUNNING",
      "result": true,
      "data": {},
      "timestamp": "2007-12-03T10:15:30Z"
    }
  }
}

validationUpdate

Description

Subscribe to validation updates for an application

Response

Returns a ValidationUpdatePayload!

Arguments
Name Description
applicationId - ID!

Example

Query
subscription validationUpdate($applicationId: ID!) {
  validationUpdate(applicationId: $applicationId) {
    targetId
    type
    status
    result
    data
    timestamp
  }
}
Variables
{"applicationId": "4"}
Response
{
  "data": {
    "validationUpdate": {
      "targetId": 4,
      "type": "CUSTOMER_IPRS",
      "status": "RUNNING",
      "result": false,
      "data": {},
      "timestamp": "2007-12-03T10:15:30Z"
    }
  }
}

Customer

ApplicationActiveKycDocumentsGraphQL

Fields
Field Name Description
mpesa_statement - String M-Pesa statement document ID
bank_statement - String Bank statement document ID
back_id - String Back ID document ID
front_id - String Front ID document ID
selfie - String Selfie document ID
Example
{
  "mpesa_statement": "abc123",
  "bank_statement": "abc123",
  "back_id": "abc123",
  "front_id": "xyz789",
  "selfie": "xyz789"
}

ApplicationActiveKycDocumentsInput

Fields
Input Field Description
mpesa_statement - String M-Pesa statement document ID
bank_statement - String Bank statement document ID
back_id - String Back ID document ID
front_id - String Front ID document ID
selfie - String Selfie document ID
Example
{
  "mpesa_statement": "abc123",
  "bank_statement": "abc123",
  "back_id": "abc123",
  "front_id": "xyz789",
  "selfie": "xyz789"
}

ApplicationActiveKycMediaAssetsGraphQL

Fields
Field Name Description
mpesa_statement - MediaAssetDto M-Pesa statement document
bank_statement - MediaAssetDto Bank statement document
front_id - MediaAssetDto Front ID document
back_id - MediaAssetDto Back ID document
selfie - MediaAssetDto Selfie document
Example
{
  "mpesa_statement": MediaAssetDto,
  "bank_statement": MediaAssetDto,
  "front_id": MediaAssetDto,
  "back_id": MediaAssetDto,
  "selfie": MediaAssetDto
}

ApplicationActiveValidationReferencesGraphQL

Fields
Field Name Description
customer_iprs - ValidationRecordGraphQLEntity Customer IPRS validation record
customer_kra - ValidationRecordGraphQLEntity Customer KRA validation record
customer_mpesa - ValidationRecordGraphQLEntity Customer MPESA validation record
customer_duplicate - ValidationRecordGraphQLEntity Customer duplicate validation record
nok_iprs - ValidationRecordGraphQLEntity NOK IPRS validation record
nok_mpesa - ValidationRecordGraphQLEntity NOK MPESA validation record
nok_duplicate - ValidationRecordGraphQLEntity NOK duplicate validation record
risk - ValidationRecordGraphQLEntity Risk validation record
mpesa_statement - ValidationRecordGraphQLEntity MPESA statement validation record
liveness - ValidationRecordGraphQLEntity Liveness validation record
pre_screening - ValidationRecordGraphQLEntity Pre screening validation record
Example
{
  "customer_iprs": ValidationRecordGraphQLEntity,
  "customer_kra": ValidationRecordGraphQLEntity,
  "customer_mpesa": ValidationRecordGraphQLEntity,
  "customer_duplicate": ValidationRecordGraphQLEntity,
  "nok_iprs": ValidationRecordGraphQLEntity,
  "nok_mpesa": ValidationRecordGraphQLEntity,
  "nok_duplicate": ValidationRecordGraphQLEntity,
  "risk": ValidationRecordGraphQLEntity,
  "mpesa_statement": ValidationRecordGraphQLEntity,
  "liveness": ValidationRecordGraphQLEntity,
  "pre_screening": ValidationRecordGraphQLEntity
}

ApplicationCallDetailsFilterInput

Description

Filter input for application call detail queries

Fields
Input Field Description
application_id - ID Filter by application ID
call_type - CreditCallTypeEnum Filter by call type
status - StringFilterInput Filter by status
agent_name - StringFilterInput Filter by agent name
caller_id - StringFilterInput Filter by caller ID
call_outcome - StringFilterInput Filter by call outcome
call_date - DateFilterInput Filter by call date
call_started_at - DateFilterInput Filter by call started at
and - [ApplicationCallDetailsFilterInput!] All conditions must match
or - [ApplicationCallDetailsFilterInput!] At least one condition must match
Example
{
  "application_id": 4,
  "call_type": "NOK",
  "status": StringFilterInput,
  "agent_name": StringFilterInput,
  "caller_id": StringFilterInput,
  "call_outcome": StringFilterInput,
  "call_date": DateFilterInput,
  "call_started_at": DateFilterInput,
  "and": [ApplicationCallDetailsFilterInput],
  "or": [ApplicationCallDetailsFilterInput]
}

ApplicationCallDetailsType

Fields
Field Name Description
_id - ID!
application_id - ID!
status - String
notes - String
agent_name - String
caller_id - String
delivery_location_type - String
priority - String
call_date - DateTime
follow_up_required - Boolean
customer_location - String
employer_info - String
employment_details - String
delivery_location - String
product_choice - String
confirmed_price_plan - String
geo_address - String
delivery_or_collection_location - String
other_delivery_notes - String
call_type - CreditCallTypeEnum
call_outcome - String
call_notes - String
call_ended_at - DateTime
call_started_at - DateTime
call_duration_seconds - Float
nok - CallDetailsNokType
customer_general_location - String
preferred_delivery_day - DateTime
preferred_delivery_slot - String
work_location - String
work_location_link - String
screening_consent - String
accept_loan_terms - String
extras - JSON
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "_id": "4",
  "application_id": 4,
  "status": "abc123",
  "notes": "xyz789",
  "agent_name": "xyz789",
  "caller_id": "abc123",
  "delivery_location_type": "xyz789",
  "priority": "abc123",
  "call_date": "2007-12-03T10:15:30Z",
  "follow_up_required": false,
  "customer_location": "abc123",
  "employer_info": "xyz789",
  "employment_details": "xyz789",
  "delivery_location": "xyz789",
  "product_choice": "abc123",
  "confirmed_price_plan": "abc123",
  "geo_address": "xyz789",
  "delivery_or_collection_location": "xyz789",
  "other_delivery_notes": "xyz789",
  "call_type": "NOK",
  "call_outcome": "abc123",
  "call_notes": "abc123",
  "call_ended_at": "2007-12-03T10:15:30Z",
  "call_started_at": "2007-12-03T10:15:30Z",
  "call_duration_seconds": 987.65,
  "nok": CallDetailsNokType,
  "customer_general_location": "xyz789",
  "preferred_delivery_day": "2007-12-03T10:15:30Z",
  "preferred_delivery_slot": "xyz789",
  "work_location": "xyz789",
  "work_location_link": "abc123",
  "screening_consent": "abc123",
  "accept_loan_terms": "xyz789",
  "extras": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ApplicationChannelEnum

Description

Channel through which application was submitted

Values
Enum Value Description

SALES_APP

MAIN_WEBSITE

PARTNER_WEBSITE

WHATSAPP

AGENTS_TALLY_FORM

PARTNER_TALLY_FORM

MO_APP

Example
"SALES_APP"

ApplicationChannelFilterInput

Example
{
  "eq": "SALES_APP",
  "ne": "SALES_APP",
  "in": ["SALES_APP"],
  "notIn": ["SALES_APP"]
}

ApplicationConsentGraphQL

Fields
Field Name Description
sales_approval - Boolean Sales agent approval
terms_and_conditions - Boolean Terms and conditions accepted
source_of_information - String Source of information
verified - Boolean Whether consent was verified via OTP
verification_phone - String Phone used for OTP verification
referrer_name - String Referrer name
created_at - DateTime Consent creation timestamp
otp - String OTP for consent verification
verified_at - DateTime Consent verification timestamp
Example
{
  "sales_approval": true,
  "terms_and_conditions": false,
  "source_of_information": "xyz789",
  "verified": true,
  "verification_phone": "abc123",
  "referrer_name": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "otp": "xyz789",
  "verified_at": "2007-12-03T10:15:30Z"
}

ApplicationConsentInput

Fields
Input Field Description
sales_approval - Boolean Sales approval consent
terms_and_conditions - Boolean Terms and conditions acceptance
source_of_information - String Source of information
verified - Boolean Whether consent is verified
verification_phone - String Verification phone number
otp - String OTP for verification
created_at - DateTime Consent creation timestamp
verified_at - DateTime Verification timestamp
referrer_name - String Referrer name
Example
{
  "sales_approval": false,
  "terms_and_conditions": true,
  "source_of_information": "abc123",
  "verified": false,
  "verification_phone": "abc123",
  "otp": "abc123",
  "created_at": "2007-12-03T10:15:30Z",
  "verified_at": "2007-12-03T10:15:30Z",
  "referrer_name": "abc123"
}

ApplicationCreditCallGraphQL

Fields
Field Name Description
call_details_id - String Call details document ID
call_type - CreditCallTypeEnum Type of credit call — NOK or NO_NOK
credit_call_link - String Link to the credit call recording
Example
{
  "call_details_id": "abc123",
  "call_type": "NOK",
  "credit_call_link": "xyz789"
}

ApplicationCreditCallInput

Fields
Input Field Description
call_details_id - String Call details document ID
call_type - CreditCallTypeEnum Type of credit call — NOK or NO_NOK
credit_call_link - String Link to the credit call recording
Example
{
  "call_details_id": "abc123",
  "call_type": "NOK",
  "credit_call_link": "xyz789"
}

ApplicationCreditFilterInput

Description

Filter by credit fields

Fields
Input Field Description
status - StringFilterInput
prospect_status - StringFilterInput
combined_risk_flag - StringFilterInput
customer_bucket - StringFilterInput
customer_tag - StringFilterInput
product_id - StringFilterInput
risk_model - StringFilterInput
credit - StringFilterInput
risk_flag - StringFilterInput
approved_at - DateFilterInput
last_modified_credit_status - DateFilterInput
price_plan_id - StringFilterInput
price_plan_code - StringFilterInput
price_plan_name - StringFilterInput
product_name - StringFilterInput
prospect_model - StringFilterInput
deposit_requirement - StringFilterInput
exemption_record - ApplicationExemptionRecordFilterInput
resubmission_pending_review - BooleanFilterInput Filter by whether agent committed resubmission and scorer must re-review
Example
{
  "status": StringFilterInput,
  "prospect_status": StringFilterInput,
  "combined_risk_flag": StringFilterInput,
  "customer_bucket": StringFilterInput,
  "customer_tag": StringFilterInput,
  "product_id": StringFilterInput,
  "risk_model": StringFilterInput,
  "credit": StringFilterInput,
  "risk_flag": StringFilterInput,
  "approved_at": DateFilterInput,
  "last_modified_credit_status": DateFilterInput,
  "price_plan_id": StringFilterInput,
  "price_plan_code": StringFilterInput,
  "price_plan_name": StringFilterInput,
  "product_name": StringFilterInput,
  "prospect_model": StringFilterInput,
  "deposit_requirement": StringFilterInput,
  "exemption_record": ApplicationExemptionRecordFilterInput,
  "resubmission_pending_review": BooleanFilterInput
}

ApplicationCreditGraphQL

Fields
Field Name Description
credit - String Credit decision status
credit_process - [String!] Credit process steps Deprecated
pending_kyc_tags - [String!] Pending KYC tags
system_crb_score - String System CRB score
user_crb_score - String User CRB score
final_risk_score - String Final risk score
status - CallStatus Credit call status
prospect_status - String Prospect status
resubmission_pending_review - Boolean True when agent committed resubmission corrections and scorer must re-review
customer_bucket - String Customer bucket classification
customer_tag - String Customer tag
prospect_model - String Prospect model
check_by_risk_model - [String!] Check by risk model Deprecated
fate_guide - String Fate guide
risk_flag - String Risk flag
combined_risk_flag - String Combined risk flag
deposit_requirement - String Deposit requirement
advice_customer - String Advice for customer
customer_credit_fate_reason - String Customer credit fate reason
last_modified_credit_status - DateTime Last modified credit status timestamp
approved_at - DateTime Approval timestamp
product_id - String Product ID
product_name - String Product name
product_inventory_id - String Product inventory ID
price_plan_id - String Price plan ID
price_plan_code - String Price plan code
price_plan_name - String Price plan name
product_cash_price - Float Cash price of the product
resubmission_link - String Resubmission link
initial_weeks - Int Initial weeks
risk_model - String Risk model
validity - ApplicationValidityGraphQL Document validity information
metadata - JSON Credit metadata
exemption_record - ApplicationExemptionRecordGraphQL
Example
{
  "credit": "abc123",
  "credit_process": ["abc123"],
  "pending_kyc_tags": ["xyz789"],
  "system_crb_score": "xyz789",
  "user_crb_score": "abc123",
  "final_risk_score": "xyz789",
  "status": "ready",
  "prospect_status": "xyz789",
  "resubmission_pending_review": false,
  "customer_bucket": "abc123",
  "customer_tag": "xyz789",
  "prospect_model": "xyz789",
  "check_by_risk_model": ["xyz789"],
  "fate_guide": "xyz789",
  "risk_flag": "xyz789",
  "combined_risk_flag": "xyz789",
  "deposit_requirement": "xyz789",
  "advice_customer": "abc123",
  "customer_credit_fate_reason": "xyz789",
  "last_modified_credit_status": "2007-12-03T10:15:30Z",
  "approved_at": "2007-12-03T10:15:30Z",
  "product_id": "abc123",
  "product_name": "abc123",
  "product_inventory_id": "xyz789",
  "price_plan_id": "xyz789",
  "price_plan_code": "xyz789",
  "price_plan_name": "xyz789",
  "product_cash_price": 987.65,
  "resubmission_link": "xyz789",
  "initial_weeks": 987,
  "risk_model": "xyz789",
  "validity": ApplicationValidityGraphQL,
  "metadata": {},
  "exemption_record": ApplicationExemptionRecordGraphQL
}

ApplicationCreditHistoryGraphQL

Fields
Field Name Description
active_loans - Boolean Whether applicant has active loans
defaulted_loans - Boolean Whether applicant has defaulted loans
loan_denials - Boolean Whether applicant has loan denials
last_income_date - DateTime Date of last income
previous_loans - Boolean Whether applicant has previous loans
next_income_date - DateTime Date of next expected income
previous_device - String Previous device owned
Example
{
  "active_loans": true,
  "defaulted_loans": false,
  "loan_denials": true,
  "last_income_date": "2007-12-03T10:15:30Z",
  "previous_loans": false,
  "next_income_date": "2007-12-03T10:15:30Z",
  "previous_device": "abc123"
}

ApplicationCreditHistoryInput

Fields
Input Field Description
active_loans - Boolean Whether applicant has active loans
defaulted_loans - Boolean Whether applicant has defaulted loans
previous_device - String Previous device owned
Example
{
  "active_loans": true,
  "defaulted_loans": false,
  "previous_device": "xyz789"
}

ApplicationCreditInput

Fields
Input Field Description
credit - String Credit decision
credit_process - [String!] Credit process steps
pending_kyc_tags - [String!] Pending KYC tags
system_crb_score - String System CRB score
user_crb_score - String User CRB score
final_risk_score - String Final Risk score
status - String Application status
prospect_status - String Prospect status
resubmission_pending_review - Boolean True when agent committed resubmission corrections and scorer must re-review
prospect_model - String Prospect model
customer_bucket - String Customer bucket
customer_tag - String Customer tag
check_by_risk_model - [String!] Risk model checks
fate_guide - String Fate guide
combined_risk_flag - String Combined risk flag
risk_flag - String Risk flag
deposit_requirement - String Deposit requirement
advice_customer - String Customer advice
customer_credit_fate_reason - String Credit fate reason
last_modified_credit_status - DateTime Last modified credit status timestamp
approved_at - DateTime Approval timestamp
product_id - String Product ID
product_name - String Product name
product_inventory_id - String Product inventory ID
price_plan_id - String Price plan ID
price_plan_code - String Price plan code
price_plan_name - String Price plan name
product_cash_price - Float Cash price of the product
resubmission_link - String Resubmission link
initial_weeks - Float Initial weeks
metadata - JSON Additional metadata
validity - ApplicationValidityInput Validity information
exemption_record - ApplicationExemptionRecordInput
Example
{
  "credit": "abc123",
  "credit_process": ["abc123"],
  "pending_kyc_tags": ["abc123"],
  "system_crb_score": "abc123",
  "user_crb_score": "xyz789",
  "final_risk_score": "xyz789",
  "status": "abc123",
  "prospect_status": "abc123",
  "resubmission_pending_review": false,
  "prospect_model": "abc123",
  "customer_bucket": "xyz789",
  "customer_tag": "xyz789",
  "check_by_risk_model": ["abc123"],
  "fate_guide": "xyz789",
  "combined_risk_flag": "xyz789",
  "risk_flag": "abc123",
  "deposit_requirement": "abc123",
  "advice_customer": "abc123",
  "customer_credit_fate_reason": "xyz789",
  "last_modified_credit_status": "2007-12-03T10:15:30Z",
  "approved_at": "2007-12-03T10:15:30Z",
  "product_id": "xyz789",
  "product_name": "xyz789",
  "product_inventory_id": "xyz789",
  "price_plan_id": "xyz789",
  "price_plan_code": "abc123",
  "price_plan_name": "abc123",
  "product_cash_price": 123.45,
  "resubmission_link": "xyz789",
  "initial_weeks": 987.65,
  "metadata": {},
  "validity": ApplicationValidityInput,
  "exemption_record": ApplicationExemptionRecordInput
}

ApplicationCustomerFilterInput

Description

Filter by customer fields

Example
{
  "personal_info": ApplicationPersonalInfoFilterInput,
  "identification": ApplicationIdentificationFilterInput,
  "location": ApplicationLocationFilterInput,
  "product": ApplicationProductFilterInput,
  "employment": ApplicationEmploymentFilterInput
}

ApplicationCustomerGraphQL

Fields
Field Name Description
personal_info - ApplicationPersonalInfoGraphQL Personal information
identification - ApplicationIdentificationGraphQL Identification details
location - ApplicationLocationGraphQL Location information
employment - ApplicationEmploymentGraphQL Employment details
credit_history - ApplicationCreditHistoryGraphQL Credit history
product - ApplicationProductGraphQL Product information
Example
{
  "personal_info": ApplicationPersonalInfoGraphQL,
  "identification": ApplicationIdentificationGraphQL,
  "location": ApplicationLocationGraphQL,
  "employment": ApplicationEmploymentGraphQL,
  "credit_history": ApplicationCreditHistoryGraphQL,
  "product": ApplicationProductGraphQL
}

ApplicationCustomerInput

Fields
Input Field Description
personal_info - ApplicationPersonalInfoInput Personal information
identification - ApplicationIdentificationInput Identification details
location - ApplicationLocationInput Location information
employment - ApplicationEmploymentInput Employment details
credit_history - ApplicationCreditHistoryInput Credit history
product - ApplicationProductInput Product information
Example
{
  "personal_info": ApplicationPersonalInfoInput,
  "identification": ApplicationIdentificationInput,
  "location": ApplicationLocationInput,
  "employment": ApplicationEmploymentInput,
  "credit_history": ApplicationCreditHistoryInput,
  "product": ApplicationProductInput
}

ApplicationDeliveryFilterInput

Description

Filter by delivery fields

Fields
Input Field Description
rider_id - StringFilterInput
delivery_status - StringFilterInput
Example
{
  "rider_id": StringFilterInput,
  "delivery_status": StringFilterInput
}

ApplicationDeliveryGraphQL

Fields
Field Name Description
delivery_id - String Delivery ID
rider_id - String Rider ID
mpesa_code - String M-Pesa payment code
delivery_code - String Delivery code
rider_submitted_otp - String OTP submitted by rider
otp_expiry_time - DateTime OTP expiry time
location - ApplicationLocationGraphQL Delivery location
front_id - String Front ID document reference
back_id - String Back ID document reference
delivery_status - String Delivery status
notes - String Delivery notes
order_processing - SalesProcessingJobStatusGraphQL Background job status for order creation (deposit & delivery)
sale_creation - SalesProcessingJobStatusGraphQL Background job status for sale creation (loan)
Example
{
  "delivery_id": "xyz789",
  "rider_id": "abc123",
  "mpesa_code": "abc123",
  "delivery_code": "xyz789",
  "rider_submitted_otp": "xyz789",
  "otp_expiry_time": "2007-12-03T10:15:30Z",
  "location": ApplicationLocationGraphQL,
  "front_id": "xyz789",
  "back_id": "abc123",
  "delivery_status": "xyz789",
  "notes": "xyz789",
  "order_processing": SalesProcessingJobStatusGraphQL,
  "sale_creation": SalesProcessingJobStatusGraphQL
}

ApplicationDeliveryInput

Fields
Input Field Description
rider_id - String Rider ID
mpesa_code - String M-Pesa confirmation code
delivery_code - String Delivery code
rider_submitted_otp - String OTP submitted by rider
otp_expiry_time - DateTime OTP expiry time
location - ApplicationLocationInput Delivery location
front_id - String Front ID photo
back_id - String Back ID photo
delivery_status - String Delivery status
notes - String Delivery notes
Example
{
  "rider_id": "xyz789",
  "mpesa_code": "xyz789",
  "delivery_code": "abc123",
  "rider_submitted_otp": "xyz789",
  "otp_expiry_time": "2007-12-03T10:15:30Z",
  "location": ApplicationLocationInput,
  "front_id": "abc123",
  "back_id": "abc123",
  "delivery_status": "abc123",
  "notes": "xyz789"
}

ApplicationDocumentValidityGraphQL

Fields
Field Name Description
document_id - String Document ID
status - ValidationDetailStatus Validation status
validated_at - DateTime Validation timestamp
validator_id - String Validator ID
mpesa_recent_airtime - String M-Pesa recent airtime analysis
mpesa_gaps_analysis - String M-Pesa gaps analysis
Example
{
  "document_id": "abc123",
  "status": "VALID",
  "validated_at": "2007-12-03T10:15:30Z",
  "validator_id": "abc123",
  "mpesa_recent_airtime": "abc123",
  "mpesa_gaps_analysis": "abc123"
}

ApplicationDocumentValidityInput

Fields
Input Field Description
document_id - String Document ID
status - String Validation status
validated_at - DateTime Validation timestamp
validator_id - String Validator ID
mpesa_recent_airtime - String M-Pesa recent airtime
mpesa_gaps_analysis - String M-Pesa gaps
Example
{
  "document_id": "xyz789",
  "status": "abc123",
  "validated_at": "2007-12-03T10:15:30Z",
  "validator_id": "abc123",
  "mpesa_recent_airtime": "abc123",
  "mpesa_gaps_analysis": "xyz789"
}

ApplicationEmploymentFilterInput

Description

Filter by employment fields

Fields
Input Field Description
status - StringFilterInput
title - StringFilterInput
location - StringFilterInput
duration - StringFilterInput
Example
{
  "status": StringFilterInput,
  "title": StringFilterInput,
  "location": StringFilterInput,
  "duration": StringFilterInput
}

ApplicationEmploymentGraphQL

Fields
Field Name Description
status - String Employment status
title - String Job title
location - String Work location
duration - String Employment duration
Example
{
  "status": "abc123",
  "title": "xyz789",
  "location": "abc123",
  "duration": "abc123"
}

ApplicationEmploymentInput

Fields
Input Field Description
status - String Employment status
title - String Job title
location - String Work location
duration - String Employment duration
Example
{
  "status": "abc123",
  "title": "abc123",
  "location": "abc123",
  "duration": "xyz789"
}

ApplicationEntityGraphQL

Fields
Field Name Description
_id - ID! Unique application identifier
customer_id - String Customer ID associated with the application
application_state - ApplicationState Current state of the application
credit_state - LoanApplicationStatus! Current credit state
prospect_stage - ProspectStage! Current prospect stage
application_channel - ApplicationChannelEnum! Channel through which application was submitted
kyc_documents - [String!] List of KYC documents
active_kyc_documents - ApplicationActiveKycDocumentsGraphQL Active KYC documents
customer - ApplicationCustomerGraphQL Customer information
next_of_kin - ApplicationNextOfKinGraphQL Next of kin information
previous_next_of_kin - ApplicationNextOfKinGraphQL Previous next of kin information
credit - ApplicationCreditGraphQL Credit information
risk - ApplicationRiskGraphQL Risk information
delivery - ApplicationDeliveryGraphQL Delivery information
legacy_references - ApplicationLegacyReferencesGraphQL Legacy reference IDs from previous systems
metadata - JSON Application metadata
timeline - ApplicationTimelineGraphQL Application timeline
references - ApplicationReferencesGraphQL Reference IDs
validation_references - ApplicationValidationReferencesGraphQL Validation record reference IDs
application_type - ApplicationType Whether this is a first loan or a subsequent loan application
normal_high_deposit - NormalHighDepositEnum Whether this application uses a normal or high deposit
activeValidationRecords - ApplicationActiveValidationReferencesGraphQL Resolved validation records keyed by check type
credit_call - ApplicationCreditCallGraphQL Credit call details
call_disposition_id - String Call disposition ID reference
submission_source - SubmissionSourceEnum Channel through which the application was submitted
leads_screens - LeadsScreensGraphQL Completion status of each leads screen
prospects_screens - ProspectsScreensGraphQL Completion status of each prospects screen
liveness_check - ApplicationLivenessCheckGraphQL Liveness check details
consent - ApplicationConsentGraphQL Customer consent details
staff - ApplicationStaffGraphQL Staff members assigned to this application
creditProduct - SellerCatalogObjectType Seller catalog item for the credit product ID
customerProduct - SellerCatalogObjectType Seller catalog item for the customer product ID
seller - SellerObjectType Seller associated with this application
salesAgent - AgentProfileObjectType Sales agent profile associated with this application
submittingAgent - AgentProfileObjectType Submitting agent profile associated with this application
sfmAgent - AgentProfileObjectType SFM agent profile associated with this application
active_resubmission - ApplicationResubmissionGraphQL Current active (non-submitted) resubmission for this application
createdAt - DateTime! Application creation timestamp
updatedAt - DateTime! Application last update timestamp
callDisposition - CallDispositionType The call disposition associated with this application
validation_records - [ValidationRecordGraphQLEntity!] Validation records associated with this application
active_validation_records - ApplicationActiveValidationReferencesGraphQL Resolved validation records keyed by check type from validation_references
creditCallDetails - ApplicationCallDetailsType The call details record for the current credit call
activeCreditPricePlan - PricingCalculationType The active credit price plan for this application
Example
{
  "_id": "4",
  "customer_id": "xyz789",
  "application_state": "partial_lead",
  "credit_state": "UNKNOWN",
  "prospect_stage": "UNKNOWN",
  "application_channel": "SALES_APP",
  "kyc_documents": ["xyz789"],
  "active_kyc_documents": ApplicationActiveKycDocumentsGraphQL,
  "customer": ApplicationCustomerGraphQL,
  "next_of_kin": ApplicationNextOfKinGraphQL,
  "previous_next_of_kin": ApplicationNextOfKinGraphQL,
  "credit": ApplicationCreditGraphQL,
  "risk": ApplicationRiskGraphQL,
  "delivery": ApplicationDeliveryGraphQL,
  "legacy_references": ApplicationLegacyReferencesGraphQL,
  "metadata": {},
  "timeline": ApplicationTimelineGraphQL,
  "references": ApplicationReferencesGraphQL,
  "validation_references": ApplicationValidationReferencesGraphQL,
  "application_type": "FIRST_LOAN",
  "normal_high_deposit": "NORMAL",
  "activeValidationRecords": ApplicationActiveValidationReferencesGraphQL,
  "credit_call": ApplicationCreditCallGraphQL,
  "call_disposition_id": "xyz789",
  "submission_source": "AGENT_DIRECT",
  "leads_screens": LeadsScreensGraphQL,
  "prospects_screens": ProspectsScreensGraphQL,
  "liveness_check": ApplicationLivenessCheckGraphQL,
  "consent": ApplicationConsentGraphQL,
  "staff": ApplicationStaffGraphQL,
  "creditProduct": SellerCatalogObjectType,
  "customerProduct": SellerCatalogObjectType,
  "seller": SellerObjectType,
  "salesAgent": AgentProfileObjectType,
  "submittingAgent": AgentProfileObjectType,
  "sfmAgent": AgentProfileObjectType,
  "active_resubmission": ApplicationResubmissionGraphQL,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "callDisposition": CallDispositionType,
  "validation_records": [ValidationRecordGraphQLEntity],
  "active_validation_records": ApplicationActiveValidationReferencesGraphQL,
  "creditCallDetails": ApplicationCallDetailsType,
  "activeCreditPricePlan": PricingCalculationType
}

ApplicationEntityInput

Fields
Input Field Description
application_id - String Application ID
customer_id - String Customer ID associated with the application
application_state - String Current state of the application
credit_state - String Current credit state
prospect_stage - ProspectStage Current prospect stage
application_channel - String Channel through which application was submitted
kyc_documents - [String!] List of KYC documents
active_kyc_documents - ApplicationActiveKycDocumentsInput Active KYC documents
customer - ApplicationCustomerInput Customer information
next_of_kin - ApplicationNextOfKinInput Next of kin information
previous_next_of_kin - ApplicationNextOfKinInput Previous next of kin information
credit - ApplicationCreditInput Credit information
risk - ApplicationRiskInput Risk assessment
delivery - ApplicationDeliveryInput Delivery information
liveness_check - ApplicationLivenessCheckInput Liveness check information
consent - ApplicationConsentInput Consent information
timeline - ApplicationTimelineInput Application timeline
staff - ApplicationStaffInput Staff assignments
references - ApplicationReferencesInput Reference IDs
legacy_references - ApplicationLegacyReferencesInput Legacy reference IDs
validation_references - ApplicationValidationReferencesInput Validation reference IDs
metadata - JSON Additional metadata
normal_high_deposit - NormalHighDepositEnum Whether this application uses a normal or high deposit
credit_call - ApplicationCreditCallInput Credit call details
Example
{
  "application_id": "abc123",
  "customer_id": "abc123",
  "application_state": "xyz789",
  "credit_state": "xyz789",
  "prospect_stage": "UNKNOWN",
  "application_channel": "xyz789",
  "kyc_documents": ["abc123"],
  "active_kyc_documents": ApplicationActiveKycDocumentsInput,
  "customer": ApplicationCustomerInput,
  "next_of_kin": ApplicationNextOfKinInput,
  "previous_next_of_kin": ApplicationNextOfKinInput,
  "credit": ApplicationCreditInput,
  "risk": ApplicationRiskInput,
  "delivery": ApplicationDeliveryInput,
  "liveness_check": ApplicationLivenessCheckInput,
  "consent": ApplicationConsentInput,
  "timeline": ApplicationTimelineInput,
  "staff": ApplicationStaffInput,
  "references": ApplicationReferencesInput,
  "legacy_references": ApplicationLegacyReferencesInput,
  "validation_references": ApplicationValidationReferencesInput,
  "metadata": {},
  "normal_high_deposit": "NORMAL",
  "credit_call": ApplicationCreditCallInput
}

ApplicationExemptionRecordFilterInput

Fields
Input Field Description
exemption_type - StringFilterInput
applied_by - StringFilterInput
applied_by_name - StringFilterInput
applied_at - DateFilterInput
Example
{
  "exemption_type": StringFilterInput,
  "applied_by": StringFilterInput,
  "applied_by_name": StringFilterInput,
  "applied_at": DateFilterInput
}

ApplicationExemptionRecordGraphQL

Fields
Field Name Description
exemption_type - ExemptionTypeEnum
justification - String
applied_by - String
applied_by_name - String
applied_at - DateTime
Example
{
  "exemption_type": "TERMS_ACCEPTANCE",
  "justification": "xyz789",
  "applied_by": "xyz789",
  "applied_by_name": "xyz789",
  "applied_at": "2007-12-03T10:15:30Z"
}

ApplicationExemptionRecordInput

Fields
Input Field Description
exemption_type - ExemptionTypeEnum
justification - String
applied_by - String
applied_by_name - String
applied_at - DateTime
Example
{
  "exemption_type": "TERMS_ACCEPTANCE",
  "justification": "xyz789",
  "applied_by": "abc123",
  "applied_by_name": "xyz789",
  "applied_at": "2007-12-03T10:15:30Z"
}

ApplicationFilterInput

Description

Filter input for application queries

Fields
Input Field Description
_id - StringFilterInput Filter by application ID
callDisposition - CallDispositionFilterInput Filter by related call disposition fields
application_state - ApplicationStateFilterInput Filter by application state
credit_state - LoanApplicationStatusFilterInput Filter by credit state
prospect_stage - ProspectStageFilterInput Filter by prospect stage
customer_id - StringFilterInput Filter by customer ID
application_channel - ApplicationChannelFilterInput Filter by application channel
customer - ApplicationCustomerFilterInput Filter by customer fields
credit - ApplicationCreditFilterInput Filter by credit fields
risk - ApplicationRiskFilterInput Filter by risk fields
staff - ApplicationStaffFilterInput Filter by staff fields
delivery - ApplicationDeliveryFilterInput Filter by delivery fields
references - ApplicationReferencesFilterInput Filter by reference fields
application_type - StringFilterInput Filter by application type — accepts ApplicationType enum values (FIRST_LOAN, SUBSEQUENT_LOAN)
normal_high_deposit - NormalHighDepositFilterInput Filter by normal or high deposit application classification
timeline - ApplicationTimelineFilterInput Filter by timeline date fields
createdAt - DateFilterInput Filter by creation date
updatedAt - DateFilterInput Filter by last update date
or - [ApplicationFilterInput!] Logical OR — match documents satisfying any of the given filters
and - [ApplicationFilterInput!] Logical AND — match documents satisfying all of the given filters
Example
{
  "_id": StringFilterInput,
  "callDisposition": CallDispositionFilterInput,
  "application_state": ApplicationStateFilterInput,
  "credit_state": LoanApplicationStatusFilterInput,
  "prospect_stage": ProspectStageFilterInput,
  "customer_id": StringFilterInput,
  "application_channel": ApplicationChannelFilterInput,
  "customer": ApplicationCustomerFilterInput,
  "credit": ApplicationCreditFilterInput,
  "risk": ApplicationRiskFilterInput,
  "staff": ApplicationStaffFilterInput,
  "delivery": ApplicationDeliveryFilterInput,
  "references": ApplicationReferencesFilterInput,
  "application_type": StringFilterInput,
  "normal_high_deposit": NormalHighDepositFilterInput,
  "timeline": ApplicationTimelineFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput,
  "or": [ApplicationFilterInput],
  "and": [ApplicationFilterInput]
}

ApplicationIdentificationFilterInput

Description

Filter by identification fields

Fields
Input Field Description
type - IdTypeFilterInput
number - StringFilterInput
Example
{
  "type": IdTypeFilterInput,
  "number": StringFilterInput
}

ApplicationIdentificationGraphQL

Fields
Field Name Description
type - IdType Type of identification document
number - String Identification document number
Example
{"type": "NATIONAL_ID", "number": "xyz789"}

ApplicationIdentificationInput

Fields
Input Field Description
type - IdType Type of identification document
number - String Identification document number
Example
{"type": "NATIONAL_ID", "number": "abc123"}

ApplicationLegacyReferencesGraphQL

Fields
Field Name Description
lead_id - String Legacy lead ID
prospect_id - String Legacy prospect ID
application_id - String Legacy application ID
Example
{
  "lead_id": "xyz789",
  "prospect_id": "xyz789",
  "application_id": "abc123"
}

ApplicationLegacyReferencesInput

Fields
Input Field Description
lead_id - String Legacy lead ID
prospect_id - String Legacy prospect ID
application_id - String Legacy application ID
Example
{
  "lead_id": "xyz789",
  "prospect_id": "abc123",
  "application_id": "abc123"
}

ApplicationLivenessCheckGraphQL

Fields
Field Name Description
method - String Liveness check method
link - String Liveness check link
Example
{
  "method": "xyz789",
  "link": "xyz789"
}

ApplicationLivenessCheckInput

Fields
Input Field Description
method - String Liveness check method
link - String Liveness check link
Example
{
  "method": "abc123",
  "link": "xyz789"
}

ApplicationLocationFilterInput

Description

Filter by location fields

Fields
Input Field Description
county - StringFilterInput
country - StringFilterInput
Example
{
  "county": StringFilterInput,
  "country": StringFilterInput
}

ApplicationLocationGraphQL

Fields
Field Name Description
county - String County of residence
country - String Country of residence
latitude - Float Latitude coordinate
longitude - Float Longitude coordinate
coordinates - [Float!] Coordinates array [longitude, latitude]
address - String Physical address
Example
{
  "county": "xyz789",
  "country": "xyz789",
  "latitude": 123.45,
  "longitude": 123.45,
  "coordinates": [987.65],
  "address": "abc123"
}

ApplicationLocationInput

Fields
Input Field Description
county - String County of residence
country - String Country of residence
latitude - Float Latitude coordinate
longitude - Float Longitude coordinate
coordinates - [Float!] Coordinates in [longitude, latitude] order
address - String Physical address
Example
{
  "county": "xyz789",
  "country": "abc123",
  "latitude": 123.45,
  "longitude": 987.65,
  "coordinates": [987.65],
  "address": "abc123"
}

ApplicationNextOfKinGraphQL

Fields
Field Name Description
first_name - String First name of next of kin
other_name - String Other name(s) of next of kin
relationship - String Relationship to applicant
identification - ApplicationIdentificationGraphQL Identification details
phone_primary - String Primary phone number
primary_on_whatsapp - Boolean Whether primary phone is on WhatsApp
phone_secondary - String Secondary phone number
full_name - String Full name (computed field)
Example
{
  "first_name": "xyz789",
  "other_name": "xyz789",
  "relationship": "xyz789",
  "identification": ApplicationIdentificationGraphQL,
  "phone_primary": "abc123",
  "primary_on_whatsapp": true,
  "phone_secondary": "abc123",
  "full_name": "xyz789"
}

ApplicationNextOfKinInput

Fields
Input Field Description
first_name - String First name of next of kin
middle_name - String Middle name of next of kin
other_name - String Last name of next of kin
relationship - String Relationship to applicant
identification - ApplicationIdentificationInput Identification details
phone_primary - String Primary phone number
phone_secondary - String Secondary phone number
primary_on_whatsapp - Boolean Whether primary phone is on whatsapp
Example
{
  "first_name": "xyz789",
  "middle_name": "xyz789",
  "other_name": "abc123",
  "relationship": "abc123",
  "identification": ApplicationIdentificationInput,
  "phone_primary": "xyz789",
  "phone_secondary": "xyz789",
  "primary_on_whatsapp": false
}

ApplicationNokValidityGraphQL

Fields
Field Name Description
status - ValidationDetailStatus NOK validation status
validatedAt - DateTime NOK validation timestamp
validatorId - String NOK validator ID
Example
{
  "status": "VALID",
  "validatedAt": "2007-12-03T10:15:30Z",
  "validatorId": "abc123"
}

ApplicationNokValidityInput

Fields
Input Field Description
status - String Validation status
validatedAt - DateTime Validation timestamp
validatorId - String Validator ID
Example
{
  "status": "xyz789",
  "validatedAt": "2007-12-03T10:15:30Z",
  "validatorId": "abc123"
}

ApplicationPersonalInfoFilterInput

Description

Filter by personal info fields

Fields
Input Field Description
first_name - StringFilterInput
other_name - StringFilterInput
email - StringFilterInput
phone_primary - StringFilterInput
phone_secondary - StringFilterInput
kra_pin - StringFilterInput
Example
{
  "first_name": StringFilterInput,
  "other_name": StringFilterInput,
  "email": StringFilterInput,
  "phone_primary": StringFilterInput,
  "phone_secondary": StringFilterInput,
  "kra_pin": StringFilterInput
}

ApplicationPersonalInfoGraphQL

Fields
Field Name Description
first_name - String First name of the applicant
other_name - String Other name(s) of the applicant
email - String Email address of the applicant
phone_primary - String Primary phone number of the applicant
phone_secondary - String Secondary phone number of the applicant
primary_on_whatsapp - Boolean Whether primary phone is on WhatsApp
kra_pin - String KRA PIN
full_name - String Full name (computed field)
Example
{
  "first_name": "abc123",
  "other_name": "xyz789",
  "email": "abc123",
  "phone_primary": "abc123",
  "phone_secondary": "xyz789",
  "primary_on_whatsapp": true,
  "kra_pin": "xyz789",
  "full_name": "abc123"
}

ApplicationPersonalInfoInput

Fields
Input Field Description
first_name - String First name of the applicant
other_name - String Other name(s) of the applicant
email - String Email address of the applicant
phone_primary - String Primary phone number of the applicant
primary_on_whatsapp - Boolean Whether primary phone is on whatsapp
phone_secondary - String Secondary phone number of the applicant
kra_pin - String KRA PIN
Example
{
  "first_name": "abc123",
  "other_name": "abc123",
  "email": "abc123",
  "phone_primary": "xyz789",
  "primary_on_whatsapp": false,
  "phone_secondary": "abc123",
  "kra_pin": "xyz789"
}

ApplicationProductFilterInput

Description

Filter by product fields

Fields
Input Field Description
id - StringFilterInput
name - StringFilterInput
purchase_mode - PurchaseModeFilterInput
Example
{
  "id": StringFilterInput,
  "name": StringFilterInput,
  "purchase_mode": PurchaseModeFilterInput
}

ApplicationProductGraphQL

Fields
Field Name Description
id - String Product ID
name - String Product name
delivery_location - String Delivery location
purchase_mode - PurchaseMode Purchase mode
product_repayment_period - String Product repayment period
inventory_id - String Inventory ID
cash_price - Float Cash price of the product
price_plan_id - String Price plan ID
price_plan_code - String Price plan code
Example
{
  "id": "abc123",
  "name": "xyz789",
  "delivery_location": "xyz789",
  "purchase_mode": "CASH",
  "product_repayment_period": "xyz789",
  "inventory_id": "xyz789",
  "cash_price": 987.65,
  "price_plan_id": "xyz789",
  "price_plan_code": "abc123"
}

ApplicationProductInput

Fields
Input Field Description
id - String Product ID
name - String Product name
delivery_location - String Delivery location
purchase_mode - String Purchase mode
product_repayment_period - String Product repayment period
inventory_id - String Inventory ID
cash_price - Float Cash price of the product
price_plan_id - String Price plan ID
price_plan_code - String Price plan code
Example
{
  "id": "abc123",
  "name": "xyz789",
  "delivery_location": "abc123",
  "purchase_mode": "xyz789",
  "product_repayment_period": "abc123",
  "inventory_id": "abc123",
  "cash_price": 123.45,
  "price_plan_id": "xyz789",
  "price_plan_code": "xyz789"
}

ApplicationReferencesFilterInput

Description

Filter by reference fields

Fields
Input Field Description
lead_id - StringFilterInput
prospect_id - StringFilterInput
customer_id - StringFilterInput
fate_guide_id - StringFilterInput
final_fate_guide_id - StringFilterInput
order_id - StringFilterInput
Example
{
  "lead_id": StringFilterInput,
  "prospect_id": StringFilterInput,
  "customer_id": StringFilterInput,
  "fate_guide_id": StringFilterInput,
  "final_fate_guide_id": StringFilterInput,
  "order_id": StringFilterInput
}

ApplicationReferencesGraphQL

Fields
Field Name Description
lead_id - String Lead ID
prospect_id - String Prospect ID
customer_id - String Customer ID
crb_transaction_id - String CRB transaction ID
resubmission_id - String Resubmission ID
fate_guide_id - String Fate guide ID
final_fate_guide_id - String Final fate guide ID
order_id - String Fragile hint: order ID set after D&D order creation. Not a source of truth — always verify with findActiveByApplicationId.
Example
{
  "lead_id": "xyz789",
  "prospect_id": "xyz789",
  "customer_id": "xyz789",
  "crb_transaction_id": "xyz789",
  "resubmission_id": "abc123",
  "fate_guide_id": "abc123",
  "final_fate_guide_id": "xyz789",
  "order_id": "abc123"
}

ApplicationReferencesInput

Fields
Input Field Description
lead_id - String Lead ID
prospect_id - String Prospect ID
customer_id - String Customer ID
crb_transaction_id - String CRB transaction ID
resubmission_id - String Resubmission ID
fate_guide_id - String Fate guide ID
final_fate_guide_id - String Final fate guide ID
order_id - String Fragile hint: order ID to use when creating the loan sale. Not a source of truth — always verify with findActiveByApplicationId.
Example
{
  "lead_id": "abc123",
  "prospect_id": "xyz789",
  "customer_id": "xyz789",
  "crb_transaction_id": "abc123",
  "resubmission_id": "xyz789",
  "fate_guide_id": "xyz789",
  "final_fate_guide_id": "abc123",
  "order_id": "xyz789"
}

ApplicationResubmissionGraphQL

Fields
Field Name Description
_id - ID!
prospect_id - ID
lead_id - ID
application_id - ID
changes - ResubmissionChangesGraphQL
journey - ResubmissionJourneyType!
status - ResubmissionStatusEnum!
submitted_by - String
validations_to_run - [String!]
valid_data - ResubmissionValidDataGraphQL
next_of_kin - ApplicationNextOfKinGraphQL
validations - ApplicationActiveValidationReferencesGraphQL
full_name - String
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": 4,
  "prospect_id": "4",
  "lead_id": 4,
  "application_id": "4",
  "changes": ResubmissionChangesGraphQL,
  "journey": "CREDIT",
  "status": "PENDING",
  "submitted_by": "abc123",
  "validations_to_run": ["xyz789"],
  "valid_data": ResubmissionValidDataGraphQL,
  "next_of_kin": ApplicationNextOfKinGraphQL,
  "validations": ApplicationActiveValidationReferencesGraphQL,
  "full_name": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ApplicationRiskFilterInput

Description

Filter by risk fields

Fields
Input Field Description
risk_flag - StringFilterInput
previous_loans - StringFilterInput
high_deposit_overide - StringFilterInput
Example
{
  "risk_flag": StringFilterInput,
  "previous_loans": StringFilterInput,
  "high_deposit_overide": StringFilterInput
}

ApplicationRiskGraphQL

Fields
Field Name Description
risk_flag - String Risk flag
previous_loans - String Previous loans status
high_deposit_overide - String High deposit override
Example
{
  "risk_flag": "xyz789",
  "previous_loans": "xyz789",
  "high_deposit_overide": "xyz789"
}

ApplicationRiskInput

Fields
Input Field Description
risk_flag - String Risk flag
previous_loans - String Previous loans
high_deposit_overide - String High deposit override
Example
{
  "risk_flag": "abc123",
  "previous_loans": "xyz789",
  "high_deposit_overide": "abc123"
}

ApplicationSalesAgentFilterInput

Description

Filter by sales agent fields

Fields
Input Field Description
id - StringFilterInput
dsr_id - StringFilterInput
Example
{
  "id": StringFilterInput,
  "dsr_id": StringFilterInput
}

ApplicationSalesAgentGraphQL

Fields
Field Name Description
id - String
dsr_id - String
name - String
Example
{
  "id": "xyz789",
  "dsr_id": "xyz789",
  "name": "xyz789"
}

ApplicationSalesAgentInput

Fields
Input Field Description
dsr_id - String DSR ID
id - ID Sales agent ObjectId
Example
{
  "dsr_id": "abc123",
  "id": "4"
}

ApplicationStaffFilterInput

Example
{
  "scorer": ApplicationStaffMemberFilterInput,
  "caller": ApplicationStaffMemberFilterInput,
  "decisioner": ApplicationStaffMemberFilterInput,
  "sales_agent": ApplicationSalesAgentFilterInput,
  "submitting_agent": ApplicationSalesAgentFilterInput,
  "seller": ApplicationSalesAgentFilterInput,
  "screener": ApplicationSalesAgentFilterInput,
  "sfm": ApplicationSalesAgentFilterInput
}

ApplicationStaffGraphQL

Example
{
  "scorer": ApplicationStaffMemberGraphQL,
  "caller": ApplicationStaffMemberGraphQL,
  "decisioner": ApplicationStaffMemberGraphQL,
  "sales_agent": ApplicationSalesAgentGraphQL,
  "submitting_agent": ApplicationSalesAgentGraphQL,
  "screener": ApplicationSalesAgentGraphQL,
  "seller": ApplicationSalesAgentGraphQL,
  "sfm": ApplicationSalesAgentGraphQL
}

ApplicationStaffInput

Fields
Input Field Description
scorer - ApplicationStaffMemberInput Scorer details
caller - ApplicationStaffMemberInput Caller details
decisioner - ApplicationStaffMemberInput Decision maker details
sales_agent - ApplicationSalesAgentInput Sales agent details
submitting_agent - ApplicationSalesAgentInput Submitting agent details
seller - ApplicationSalesAgentInput Submitting agent details
sfm - ApplicationSalesAgentInput SFM staff member details
Example
{
  "scorer": ApplicationStaffMemberInput,
  "caller": ApplicationStaffMemberInput,
  "decisioner": ApplicationStaffMemberInput,
  "sales_agent": ApplicationSalesAgentInput,
  "submitting_agent": ApplicationSalesAgentInput,
  "seller": ApplicationSalesAgentInput,
  "sfm": ApplicationSalesAgentInput
}

ApplicationStaffMemberFilterInput

Description

Filter by staff member fields

Fields
Input Field Description
id - StringFilterInput
name - StringFilterInput
Example
{
  "id": StringFilterInput,
  "name": StringFilterInput
}

ApplicationStaffMemberGraphQL

Fields
Field Name Description
id - String
name - String
Example
{
  "id": "abc123",
  "name": "abc123"
}

ApplicationStaffMemberInput

Fields
Input Field Description
id - String Staff member ID
name - String Staff member name
Example
{
  "id": "abc123",
  "name": "abc123"
}

ApplicationState

Description

Lifecycle state of the application

Values
Enum Value Description

partial_lead

unconverted_lead

converted_lead

prospect

unknown

Example
"partial_lead"

ApplicationStateFilterInput

Fields
Input Field Description
eq - ApplicationState
ne - ApplicationState
in - [ApplicationState!]
notIn - [ApplicationState!]
Example
{
  "eq": "partial_lead",
  "ne": "partial_lead",
  "in": ["partial_lead"],
  "notIn": ["partial_lead"]
}

ApplicationTimelineFilterInput

Description

Filter by timeline date fields

Fields
Input Field Description
lead_created - DateFilterInput
lead_updated - DateFilterInput
prospect_created - DateFilterInput
prospect_updated - DateFilterInput
customer_created - DateFilterInput
ready_for_scoring - DateFilterInput
ready_for_calling - DateFilterInput
ready_for_decision - DateFilterInput
called_at - DateFilterInput
scored_at - DateFilterInput
decisioned_at - DateFilterInput
ready_for_screening - DateFilterInput
screened_at - DateFilterInput
prospect_submitted_at - DateFilterInput
resubmission_submitted_at - DateFilterInput When agent last committed resubmission corrections
liveness_created_date - DateFilterInput
paused_financial_statement_at - DateFilterInput
scoring_started_at - DateFilterInput
first_scored_at - DateFilterInput
calling_started_at - DateFilterInput
first_called_at - DateFilterInput
decision_started_at - DateFilterInput
first_decisioned_at - DateFilterInput
last_modified_credit_status_at - DateFilterInput
Example
{
  "lead_created": DateFilterInput,
  "lead_updated": DateFilterInput,
  "prospect_created": DateFilterInput,
  "prospect_updated": DateFilterInput,
  "customer_created": DateFilterInput,
  "ready_for_scoring": DateFilterInput,
  "ready_for_calling": DateFilterInput,
  "ready_for_decision": DateFilterInput,
  "called_at": DateFilterInput,
  "scored_at": DateFilterInput,
  "decisioned_at": DateFilterInput,
  "ready_for_screening": DateFilterInput,
  "screened_at": DateFilterInput,
  "prospect_submitted_at": DateFilterInput,
  "resubmission_submitted_at": DateFilterInput,
  "liveness_created_date": DateFilterInput,
  "paused_financial_statement_at": DateFilterInput,
  "scoring_started_at": DateFilterInput,
  "first_scored_at": DateFilterInput,
  "calling_started_at": DateFilterInput,
  "first_called_at": DateFilterInput,
  "decision_started_at": DateFilterInput,
  "first_decisioned_at": DateFilterInput,
  "last_modified_credit_status_at": DateFilterInput
}

ApplicationTimelineGraphQL

Fields
Field Name Description
lead_created - DateTime Lead creation timestamp
lead_updated - DateTime Lead update timestamp
prospect_created - DateTime Prospect creation timestamp
prospect_updated - DateTime Prospect update timestamp
customer_created - DateTime Customer creation timestamp
ready_for_scoring - DateTime Ready for scoring timestamp
ready_for_calling - DateTime Ready for calling timestamp
ready_for_decision - DateTime Ready for decision timestamp
called_at - DateTime Called timestamp
scored_at - DateTime Scored timestamp
decisioned_at - DateTime Decision timestamp
device_needed - DateTime Device needed timestamp
liveness_created_date - DateTime Liveness creation timestamp
ready_for_screening - DateTime Ready for screening timestamp
screened_at - DateTime Screened timestamp
paused_financial_statement_at - DateTime Paused financial statement timestamp
prospect_submitted_at - DateTime Prospect submitted to credit pipeline timestamp
resubmission_submitted_at - DateTime When agent last committed resubmission corrections
scoring_started_at - DateTime When scoring agent started working
first_scored_at - DateTime First time scoring was completed
calling_started_at - DateTime When calling agent started working
first_called_at - DateTime First time calling was completed
decision_started_at - DateTime When decision agent started working
first_decisioned_at - DateTime First time decisioning was completed
last_modified_credit_status_at - DateTime Last time credit.credit status was modified
Example
{
  "lead_created": "2007-12-03T10:15:30Z",
  "lead_updated": "2007-12-03T10:15:30Z",
  "prospect_created": "2007-12-03T10:15:30Z",
  "prospect_updated": "2007-12-03T10:15:30Z",
  "customer_created": "2007-12-03T10:15:30Z",
  "ready_for_scoring": "2007-12-03T10:15:30Z",
  "ready_for_calling": "2007-12-03T10:15:30Z",
  "ready_for_decision": "2007-12-03T10:15:30Z",
  "called_at": "2007-12-03T10:15:30Z",
  "scored_at": "2007-12-03T10:15:30Z",
  "decisioned_at": "2007-12-03T10:15:30Z",
  "device_needed": "2007-12-03T10:15:30Z",
  "liveness_created_date": "2007-12-03T10:15:30Z",
  "ready_for_screening": "2007-12-03T10:15:30Z",
  "screened_at": "2007-12-03T10:15:30Z",
  "paused_financial_statement_at": "2007-12-03T10:15:30Z",
  "prospect_submitted_at": "2007-12-03T10:15:30Z",
  "resubmission_submitted_at": "2007-12-03T10:15:30Z",
  "scoring_started_at": "2007-12-03T10:15:30Z",
  "first_scored_at": "2007-12-03T10:15:30Z",
  "calling_started_at": "2007-12-03T10:15:30Z",
  "first_called_at": "2007-12-03T10:15:30Z",
  "decision_started_at": "2007-12-03T10:15:30Z",
  "first_decisioned_at": "2007-12-03T10:15:30Z",
  "last_modified_credit_status_at": "2007-12-03T10:15:30Z"
}

ApplicationTimelineInput

Fields
Input Field Description
lead_created - DateTime Lead creation timestamp
lead_updated - DateTime Lead update timestamp
prospect_created - DateTime Prospect creation timestamp
prospect_updated - DateTime Prospect update timestamp
customer_created - DateTime Customer creation timestamp
ready_for_scoring - DateTime Ready for scoring timestamp
ready_for_calling - DateTime Ready for calling timestamp
ready_for_decision - DateTime Ready for decision timestamp
called_at - DateTime Called timestamp
scored_at - DateTime Scored timestamp
decisioned_at - DateTime Decision timestamp
device_needed - DateTime Device needed timestamp
liveness_created_date - DateTime Liveness creation timestamp
paused_financial_statement_at - DateTime Paused financial statement timestamp
prospect_submitted_at - DateTime Prospect submitted to credit pipeline timestamp
resubmission_submitted_at - DateTime When agent last committed resubmission corrections
scoring_started_at - DateTime When scoring agent started working
first_scored_at - DateTime First time scoring was completed
calling_started_at - DateTime When calling agent started working
first_called_at - DateTime First time calling was completed
decision_started_at - DateTime When decision agent started working
first_decisioned_at - DateTime First time decisioning was completed
last_modified_credit_status_at - DateTime Last time credit.credit status was modified
Example
{
  "lead_created": "2007-12-03T10:15:30Z",
  "lead_updated": "2007-12-03T10:15:30Z",
  "prospect_created": "2007-12-03T10:15:30Z",
  "prospect_updated": "2007-12-03T10:15:30Z",
  "customer_created": "2007-12-03T10:15:30Z",
  "ready_for_scoring": "2007-12-03T10:15:30Z",
  "ready_for_calling": "2007-12-03T10:15:30Z",
  "ready_for_decision": "2007-12-03T10:15:30Z",
  "called_at": "2007-12-03T10:15:30Z",
  "scored_at": "2007-12-03T10:15:30Z",
  "decisioned_at": "2007-12-03T10:15:30Z",
  "device_needed": "2007-12-03T10:15:30Z",
  "liveness_created_date": "2007-12-03T10:15:30Z",
  "paused_financial_statement_at": "2007-12-03T10:15:30Z",
  "prospect_submitted_at": "2007-12-03T10:15:30Z",
  "resubmission_submitted_at": "2007-12-03T10:15:30Z",
  "scoring_started_at": "2007-12-03T10:15:30Z",
  "first_scored_at": "2007-12-03T10:15:30Z",
  "calling_started_at": "2007-12-03T10:15:30Z",
  "first_called_at": "2007-12-03T10:15:30Z",
  "decision_started_at": "2007-12-03T10:15:30Z",
  "first_decisioned_at": "2007-12-03T10:15:30Z",
  "last_modified_credit_status_at": "2007-12-03T10:15:30Z"
}

ApplicationType

Description

Whether this is a first loan or a subsequent loan application

Values
Enum Value Description

FIRST_LOAN

SUBSEQUENT_LOAN

Example
"FIRST_LOAN"

ApplicationUpdatePayload

Description

Application update payload for subscriptions

Fields
Field Name Description
applicationId - ID! Application ID
applicationState - String Current application state
creditState - String Current credit state
prospectStage - String Current prospect stage
changes - JSON Changed fields
timestamp - DateTime! Timestamp of the update
Example
{
  "applicationId": "4",
  "applicationState": "abc123",
  "creditState": "xyz789",
  "prospectStage": "abc123",
  "changes": {},
  "timestamp": "2007-12-03T10:15:30Z"
}

ApplicationValidationReferencesGraphQL

Fields
Field Name Description
customer_iprs - String Customer IPRS validation record ID
customer_kra - String Customer KRA validation record ID
customer_mpesa - String Customer MPESA validation record ID
customer_duplicate - String Customer duplicate validation record ID
nok_iprs - String NOK IPRS validation record ID
nok_mpesa - String NOK MPESA validation record ID
nok_duplicate - String NOK duplicate validation record ID
risk - String Risk validation record ID
mpesa_statement - String MPESA statement validation record ID
liveness - String Liveness validation record ID
pre_screening - String Pre screening validation record ID
Example
{
  "customer_iprs": "xyz789",
  "customer_kra": "xyz789",
  "customer_mpesa": "abc123",
  "customer_duplicate": "xyz789",
  "nok_iprs": "abc123",
  "nok_mpesa": "xyz789",
  "nok_duplicate": "xyz789",
  "risk": "xyz789",
  "mpesa_statement": "xyz789",
  "liveness": "xyz789",
  "pre_screening": "abc123"
}

ApplicationValidationReferencesInput

Fields
Input Field Description
customer_iprs - String Customer IPRS validation reference
customer_kra - String Customer KRA validation reference
customer_mpesa - String Customer M-Pesa validation reference
customer_duplicate - String Customer duplicate check reference
nok_iprs - String NOK IPRS validation reference
nok_mpesa - String NOK M-Pesa validation reference
nok_duplicate - String NOK duplicate check reference
risk - String Risk validation reference
mpesa_statement - String M-Pesa statement validation reference
liveness - String Liveness check reference
Example
{
  "customer_iprs": "xyz789",
  "customer_kra": "abc123",
  "customer_mpesa": "xyz789",
  "customer_duplicate": "abc123",
  "nok_iprs": "xyz789",
  "nok_mpesa": "xyz789",
  "nok_duplicate": "abc123",
  "risk": "xyz789",
  "mpesa_statement": "abc123",
  "liveness": "xyz789"
}

ApplicationValidityGraphQL

Fields
Field Name Description
mpesa_statement - ApplicationDocumentValidityGraphQL M-Pesa statement validity
bank_statement - ApplicationDocumentValidityGraphQL Bank statement validity
front_id - ApplicationDocumentValidityGraphQL Front ID validity
back_id - ApplicationDocumentValidityGraphQL Back ID validity
selfie - ApplicationDocumentValidityGraphQL Selfie validity
kra - ApplicationDocumentValidityGraphQL KRA validity
nok - ApplicationNokValidityGraphQL NOK validity
Example
{
  "mpesa_statement": ApplicationDocumentValidityGraphQL,
  "bank_statement": ApplicationDocumentValidityGraphQL,
  "front_id": ApplicationDocumentValidityGraphQL,
  "back_id": ApplicationDocumentValidityGraphQL,
  "selfie": ApplicationDocumentValidityGraphQL,
  "kra": ApplicationDocumentValidityGraphQL,
  "nok": ApplicationNokValidityGraphQL
}

ApplicationValidityInput

Fields
Input Field Description
mpesa_statement - ApplicationDocumentValidityInput M-Pesa statement validity
bank_statement - ApplicationDocumentValidityInput Bank statement validity
front_id - ApplicationDocumentValidityInput Front ID validity
back_id - ApplicationDocumentValidityInput Back ID validity
selfie - ApplicationDocumentValidityInput Selfie validity
kra - ApplicationDocumentValidityInput KRA validity
nok - ApplicationNokValidityInput Next of kin validity
Example
{
  "mpesa_statement": ApplicationDocumentValidityInput,
  "bank_statement": ApplicationDocumentValidityInput,
  "front_id": ApplicationDocumentValidityInput,
  "back_id": ApplicationDocumentValidityInput,
  "selfie": ApplicationDocumentValidityInput,
  "kra": ApplicationDocumentValidityInput,
  "nok": ApplicationNokValidityInput
}

ApplicationsNamespace

Fields
Field Name Description
resubmissionEligibility - ResubmissionJourneyGraphQL! Check whether an application is eligible for resubmission and the journey type
Arguments
applicationId - ID!
resubmissionForm - ResubmissionFormSchemaGraphQL Get the dynamic resubmission form schema for an application
Arguments
applicationId - ID!
resubmissionOverview - ResubmissionOverviewType! Lightweight overview of resubmission eligibility and available sections — no upload URLs generated.
Arguments
applicationId - ID!
resubmission - ApplicationResubmissionGraphQL! Get a resubmission record by ID
Arguments
resubmissionId - ID!
submitResubmission - ApplicationResubmissionGraphQL! Submit resubmission data for an application
Arguments
applicationId - ID!
data - JSON!
submittedBy - String
updateResubmission - ApplicationResubmissionGraphQL! Update an in-progress resubmission with new data
Arguments
resubmissionId - ID!
data - JSON!
submittedBy - String
commitResubmission - ApplicationResubmissionGraphQL! Commit a resubmission, triggering the finalisation process
Arguments
resubmissionId - ID!
transferProspectForResubmission - String Transfer a prospect to another agent for resubmission, returns the application ID
Arguments
applicationId - ID!
saleAgentId - String!
Example
{
  "resubmissionEligibility": ResubmissionJourneyGraphQL,
  "resubmissionForm": ResubmissionFormSchemaGraphQL,
  "resubmissionOverview": ResubmissionOverviewType,
  "resubmission": ApplicationResubmissionGraphQL,
  "submitResubmission": ApplicationResubmissionGraphQL,
  "updateResubmission": ApplicationResubmissionGraphQL,
  "commitResubmission": ApplicationResubmissionGraphQL,
  "transferProspectForResubmission": "xyz789"
}

CustomerBucket

Values
Enum Value Description

CU1

CU2

CU3

CU4

CU5

CU6

CU7

CU8

ERROR

Example
"CU1"

CustomerGenderEnum

Values
Enum Value Description

MALE

FEMALE

OTHER

Example
"MALE"

CustomerModuleNamespace

Fields
Field Name Description
credit - CreditNamespace!
subsequentLoan - SubsequentLoanNamespace!
risk - RiskNamespace!
applications - ApplicationsNamespace!
onboardingChecks - OnboardingChecksNamespace!
onboardingSupport - OnboardingSupportNamespace!
selfUnlockDevice - CustomerSelfUnlockResultType
Arguments
gracePeriodEligibility - GracePeriodEligibilityResultType
Arguments
requestGracePeriod - GracePeriodAwardResultType
Arguments
grantGracePeriodOverride - GracePeriodAwardResultType
Arguments
revokeGracePeriod - GracePeriodRevocationResultType
Arguments
Example
{
  "credit": CreditNamespace,
  "subsequentLoan": SubsequentLoanNamespace,
  "risk": RiskNamespace,
  "applications": ApplicationsNamespace,
  "onboardingChecks": OnboardingChecksNamespace,
  "onboardingSupport": OnboardingSupportNamespace,
  "selfUnlockDevice": CustomerSelfUnlockResultType,
  "gracePeriodEligibility": GracePeriodEligibilityResultType,
  "requestGracePeriod": GracePeriodAwardResultType,
  "grantGracePeriodOverride": GracePeriodAwardResultType,
  "revokeGracePeriod": GracePeriodRevocationResultType
}

CustomerReferralDto

Fields
Field Name Description
referral_id - ID!
referrer_customer_id - ID!
referee_customer_id - ID!
referee_customer - RawCustomersDto
referral_code_used - String!
referral_status - ReferralStatusEnum!
validation_due_date - DateTime
validated_at - DateTime
rewards_processed_at - DateTime
referee_loan_contract_id - String
referee_opening_date - DateTime
payment_adjustment_id - String
referrer_airtime_transaction_id - String
referee_airtime_transaction_id - String
created_by - String
created_at - DateTime!
updated_by - String
updated_at - DateTime
Example
{
  "referral_id": 4,
  "referrer_customer_id": "4",
  "referee_customer_id": 4,
  "referee_customer": RawCustomersDto,
  "referral_code_used": "xyz789",
  "referral_status": "INCOMPLETE",
  "validation_due_date": "2007-12-03T10:15:30Z",
  "validated_at": "2007-12-03T10:15:30Z",
  "rewards_processed_at": "2007-12-03T10:15:30Z",
  "referee_loan_contract_id": "abc123",
  "referee_opening_date": "2007-12-03T10:15:30Z",
  "payment_adjustment_id": "abc123",
  "referrer_airtime_transaction_id": "abc123",
  "referee_airtime_transaction_id": "abc123",
  "created_by": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_by": "xyz789",
  "updated_at": "2007-12-03T10:15:30Z"
}

CustomerReferralFilterInput

Fields
Input Field Description
referral_id - ID
referrer_customer_id - ID
referee_customer_id - ID
referral_code - String
referral_status - ReferralStatusEnum
reward_status - ReferralRewardStatusEnum
created_by - String
created_at - DateTime
updated_at - DateTime
Example
{
  "referral_id": "4",
  "referrer_customer_id": 4,
  "referee_customer_id": 4,
  "referral_code": "xyz789",
  "referral_status": "INCOMPLETE",
  "reward_status": "PENDING",
  "created_by": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

CustomerSelfUnlockContractResultType

Fields
Field Name Description
contract_id - ID!
sale_id - ID
inventory_id - ID
status - String!
reason - String
command_id - ID
next_lock_date - DateTime
Example
{
  "contract_id": 4,
  "sale_id": 4,
  "inventory_id": "4",
  "status": "xyz789",
  "reason": "xyz789",
  "command_id": 4,
  "next_lock_date": "2007-12-03T10:15:30Z"
}

CustomerSelfUnlockInput

Fields
Input Field Description
customer_id - ID! Customer UUID requesting self unlock
Example
{"customer_id": "4"}

CustomerSelfUnlockResultType

Fields
Field Name Description
success - Boolean!
customer_id - ID!
total_contracts - Int!
eligible_contracts - Int!
queued_unlocks - Int!
skipped_contracts - Int!
results - [CustomerSelfUnlockContractResultType!]!
Example
{
  "success": true,
  "customer_id": "4",
  "total_contracts": 123,
  "eligible_contracts": 123,
  "queued_unlocks": 123,
  "skipped_contracts": 123,
  "results": [CustomerSelfUnlockContractResultType]
}

CustomerStatusEnum

Values
Enum Value Description

ACTIVE

DEMO

SUSPENDED

CLOSED

INACTIVE

Example
"ACTIVE"

CustomerTypeEnum

Values
Enum Value Description

INDIVIDUAL

ORGANIZATION

Example
"INDIVIDUAL"

CustomerWalletsFilterInput

Fields
Input Field Description
customer_wallet_id - String Unique customer wallet identifier (auto-generated if not provided)
customer_id - String! Customer ID this wallet belongs to
customer_wallet_available_balance - Float Unallocated funds available in wallet
customer_wallet_total_payments - Float All payments received
customer_wallet_total_adjustments - Float Refunds, bonuses, penalties
customer_wallet_total_days_given - Float Grace days granted to customer
customer_wallet_total_points - Float Loyalty/reward points earned
customer_wallet_total_allocated - Float Money allocated to sales
customer_wallet_lifetime_credits - Float All money in (lifetime credits)
customer_wallet_lifetime_debits - Float All money out (lifetime debits)
customer_wallet_currency - CurrencyEnum Wallet currency
Example
{
  "customer_wallet_id": "xyz789",
  "customer_id": "xyz789",
  "customer_wallet_available_balance": 987.65,
  "customer_wallet_total_payments": 987.65,
  "customer_wallet_total_adjustments": 123.45,
  "customer_wallet_total_days_given": 123.45,
  "customer_wallet_total_points": 123.45,
  "customer_wallet_total_allocated": 123.45,
  "customer_wallet_lifetime_credits": 123.45,
  "customer_wallet_lifetime_debits": 987.65,
  "customer_wallet_currency": "KES"
}

KycDocumentType

Fields
Field Name Description
_id - ID!
domain - String!
target - String!
target_id - String!
type - String!
name - String!
url - String
content_type - String
storage_provider - String
created_at - DateTime
Example
{
  "_id": 4,
  "domain": "xyz789",
  "target": "abc123",
  "target_id": "abc123",
  "type": "xyz789",
  "name": "abc123",
  "url": "abc123",
  "content_type": "xyz789",
  "storage_provider": "abc123",
  "created_at": "2007-12-03T10:15:30Z"
}

KycDocumentsDto

Fields
Field Name Description
selfie_url - String Selfie image URL
id_front_url - String ID front image URL
id_back_url - String ID back image URL
certificate_of_incorporation_url - String Certificate of incorporation URL
tax_certificate_url - String Tax certificate URL
business_permit_url - String Business permit URL
associated_phone_numbers - [String!] Associated phone numbers
Example
{
  "selfie_url": "abc123",
  "id_front_url": "xyz789",
  "id_back_url": "abc123",
  "certificate_of_incorporation_url": "xyz789",
  "tax_certificate_url": "abc123",
  "business_permit_url": "xyz789",
  "associated_phone_numbers": ["abc123"]
}

KycDocumentsInput

Fields
Input Field Description
selfie_url - String
id_front_url - String
id_back_url - String
certificate_of_incorporation_url - String
tax_certificate_url - String
business_permit_url - String
associated_phone_numbers - [String!]
Example
{
  "selfie_url": "xyz789",
  "id_front_url": "xyz789",
  "id_back_url": "abc123",
  "certificate_of_incorporation_url": "xyz789",
  "tax_certificate_url": "xyz789",
  "business_permit_url": "abc123",
  "associated_phone_numbers": ["xyz789"]
}

NextOfKinDto

Fields
Field Name Description
first_name - String
other_name - String
relationship - String
id_type - String
id_number - String
phone_primary - String
phone_secondary - String
primary_on_whatsapp - Boolean
Example
{
  "first_name": "abc123",
  "other_name": "abc123",
  "relationship": "abc123",
  "id_type": "abc123",
  "id_number": "xyz789",
  "phone_primary": "abc123",
  "phone_secondary": "xyz789",
  "primary_on_whatsapp": false
}

NextOfKinInput

Fields
Input Field Description
first_name - String
other_name - String
relationship - String
id_type - String
id_number - String
phone_primary - String
phone_secondary - String
primary_on_whatsapp - Boolean
Example
{
  "first_name": "xyz789",
  "other_name": "abc123",
  "relationship": "xyz789",
  "id_type": "abc123",
  "id_number": "xyz789",
  "phone_primary": "xyz789",
  "phone_secondary": "xyz789",
  "primary_on_whatsapp": true
}

OnboardingAvailableDevicesInput

Fields
Input Field Description
applicationId - ID
fateGuideId - ID
sellerId - ID
showTopProductsOnly - Boolean
page - Int
limit - Int
brand - String
model - String
product_id - String
name - String
search - String Search products by product name, brand, model, slug, SKU name, or SKU code
excludeOutOfStock - Boolean
Example
{
  "applicationId": 4,
  "fateGuideId": 4,
  "sellerId": 4,
  "showTopProductsOnly": true,
  "page": 987,
  "limit": 987,
  "brand": "abc123",
  "model": "abc123",
  "product_id": "abc123",
  "name": "xyz789",
  "search": "abc123",
  "excludeOutOfStock": false
}

OnboardingAvailableDevicesResponse

Fields
Field Name Description
message - String!
data - AvailableDevicesResultGraphQL!
Example
{
  "message": "xyz789",
  "data": AvailableDevicesResultGraphQL
}

OnboardingCheckResponse

Fields
Field Name Description
success - Boolean!
message - String!
Example
{"success": true, "message": "xyz789"}

OnboardingChecksNamespace

Fields
Field Name Description
runFullValidationCheck - OnboardingCheckResponse! Run full validation check based on purchase method (CASH/LOAN)
Arguments
runIprsCheck - OnboardingCheckResponse! Run IPRS validation check for customer or NOK
Arguments
runMpesaCheck - OnboardingCheckResponse! Run M-Pesa validation check for customer or NOK
Arguments
runDuplicateCheck - OnboardingCheckResponse! Run duplicate check for customer or NOK
Arguments
runCrbCheck - OnboardingCheckResponse! Run CRB validation check
Arguments
runKraCheck - OnboardingCheckResponse! Run KRA validation check
Arguments
runFateGuideCheck - OnboardingCheckResponse! Generate a fate guide score (PRELIMINARY or FINAL)
Arguments
runRiskCheck - OnboardingCheckResponse! Run risk model check for an application
Arguments
runPrescreeningCheck - OnboardingCheckResponse! Run prescreening check for an application
Arguments
runPrescreenFlow - OnboardingCheckResponse! Run prescreen flow (CRB → prescreening) for an application
Arguments
runNokCheckFlow - OnboardingCheckResponse! Run next-of-kin check flow (duplicate → IPRS → M-Pesa)
Arguments
runResubmissionIprsCheck - OnboardingCheckResponse! Run IPRS check for a resubmission (CUSTOMER or NOK)
Arguments
runResubmissionMpesaCheck - OnboardingCheckResponse! Run customer M-Pesa check for a resubmission
Arguments
runResubmissionNokMpesaCheck - OnboardingCheckResponse! Run NOK M-Pesa check for a resubmission
Arguments
runResubmissionKraCheck - OnboardingCheckResponse! Run KRA check for a resubmission
Arguments
runResubmissionRiskCheck - OnboardingCheckResponse! Run risk check for a resubmission
Arguments
resendDuplicateOtp - ApplicationEntityGraphQL! Resend the OTP generated during a duplicate check block for an application
Arguments
verifyDuplicateOtp - ApplicationEntityGraphQL! Verify the OTP submitted by a customer to clear a duplicate check block on an application
Arguments
previewDuplicateCheck - DuplicatePreviewCheckResult! Preview duplicate check results for an application or individual fields without creating a validation record
Arguments
Example
{
  "runFullValidationCheck": OnboardingCheckResponse,
  "runIprsCheck": OnboardingCheckResponse,
  "runMpesaCheck": OnboardingCheckResponse,
  "runDuplicateCheck": OnboardingCheckResponse,
  "runCrbCheck": OnboardingCheckResponse,
  "runKraCheck": OnboardingCheckResponse,
  "runFateGuideCheck": OnboardingCheckResponse,
  "runRiskCheck": OnboardingCheckResponse,
  "runPrescreeningCheck": OnboardingCheckResponse,
  "runPrescreenFlow": OnboardingCheckResponse,
  "runNokCheckFlow": OnboardingCheckResponse,
  "runResubmissionIprsCheck": OnboardingCheckResponse,
  "runResubmissionMpesaCheck": OnboardingCheckResponse,
  "runResubmissionNokMpesaCheck": OnboardingCheckResponse,
  "runResubmissionKraCheck": OnboardingCheckResponse,
  "runResubmissionRiskCheck": OnboardingCheckResponse,
  "resendDuplicateOtp": ApplicationEntityGraphQL,
  "verifyDuplicateOtp": ApplicationEntityGraphQL,
  "previewDuplicateCheck": DuplicatePreviewCheckResult
}

OnboardingFateGuideCalculationResponse

Fields
Field Name Description
message - String!
data - FateGuideScoresType!
Example
{
  "message": "xyz789",
  "data": FateGuideScoresType
}

OnboardingFateGuideSource

Description

Source of the fate guide calculation request

Values
Enum Value Description

PRESCREENING

CREDIT

Example
"PRESCREENING"

OnboardingPaginationMetadataType

Fields
Field Name Description
totalItems - Int!
perPage - Int!
page - Int!
lastPage - Int!
Example
{"totalItems": 123, "perPage": 987, "page": 123, "lastPage": 123}

OnboardingProductFilterType

Fields
Field Name Description
priceRestrictions - PriceRestrictionType
Example
{"priceRestrictions": PriceRestrictionType}

OnboardingSupportNamespace

Fields
Field Name Description
rerunRoundRobin - RoundRobinRerunResultType! Rerun round-robin assignment for MAIN_WEBSITE leads stuck on company sales (both sales_agent and submitting_agent dsr_id = "001_Mophones")
Example
{"rerunRoundRobin": RoundRobinRerunResultType}

ProspectCompleteResultGraphQL

Fields
Field Name Description
purchaseMode - PurchaseMode Purchase mode of the application
complete - Boolean! Whether the prospect is fully complete and has been submitted
duplicatePassed - Boolean NOK duplicate validation passed
iprsPassed - Boolean NOK IPRS validation passed
mpesaPassed - Boolean NOK M-Pesa validation passed
livenessPassed - Boolean Liveness check completed
riskPassed - Boolean Risk validation passed
kraPassed - Boolean KRA validation passed
screens - ProspectsScreensGraphQL Completion status of each prospects screen
Example
{
  "purchaseMode": "CASH",
  "complete": false,
  "duplicatePassed": false,
  "iprsPassed": false,
  "mpesaPassed": false,
  "livenessPassed": true,
  "riskPassed": false,
  "kraPassed": false,
  "screens": ProspectsScreensGraphQL
}

ProspectStage

Description

Stage of prospect in the application process

Values
Enum Value Description

UNKNOWN

PRE_SCREENING

SCORING

CREDIT_CALL

DECISION

COMPLETED

PAUSED_FINANCIAL_STATEMENT

PAUSED_FINANCIAL_ANALYSIS

PAUSED_SUBSEQUENT_LOAN_CONSENT

Example
"UNKNOWN"

ProspectStageFilterInput

Fields
Input Field Description
eq - ProspectStage
ne - ProspectStage
in - [ProspectStage!]
notIn - [ProspectStage!]
Example
{"eq": "UNKNOWN", "ne": "UNKNOWN", "in": ["UNKNOWN"], "notIn": ["UNKNOWN"]}

ProspectsScreensGraphQL

Fields
Field Name Description
liveness - Boolean!
nextOfKin - Boolean!
product - Boolean!
images - Boolean!
Example
{"liveness": false, "nextOfKin": false, "product": true, "images": false}

RawCustomerWalletsDto

Fields
Field Name Description
customer_wallet_id - ID! Unique customer wallet identifier
customer_id - ID! Customer ID this wallet belongs to
customer_wallet_available_balance - Float! Available balance in wallet
customer_wallet_total_payments - Float! Total payments made to wallet
customer_wallet_total_adjustments - Float! Total adjustments made to wallet
customer_wallet_total_days_given - Float! Total days given to customer
customer_wallet_total_points - Float! Total points earned by customer
customer_wallet_total_allocated - Float! Total amount allocated from wallet
customer_wallet_lifetime_credits - Float! Lifetime credits to wallet
customer_wallet_lifetime_debits - Float! Lifetime debits from wallet
customer_wallet_currency - CurrencyEnum! Wallet currency
customer_wallet_created_at - DateTime! Wallet creation timestamp
customer_wallet_updated_at - DateTime! Wallet last update timestamp
Example
{
  "customer_wallet_id": 4,
  "customer_id": 4,
  "customer_wallet_available_balance": 987.65,
  "customer_wallet_total_payments": 123.45,
  "customer_wallet_total_adjustments": 987.65,
  "customer_wallet_total_days_given": 987.65,
  "customer_wallet_total_points": 123.45,
  "customer_wallet_total_allocated": 987.65,
  "customer_wallet_lifetime_credits": 987.65,
  "customer_wallet_lifetime_debits": 123.45,
  "customer_wallet_currency": "KES",
  "customer_wallet_created_at": "2007-12-03T10:15:30Z",
  "customer_wallet_updated_at": "2007-12-03T10:15:30Z"
}

RawCustomersDto

Fields
Field Name Description
customer_id - ID! Unique customer identifier
customer_created_at - DateTime! Customer creation timestamp
customer_type - CustomerTypeEnum! Customer type (individual/organization)
customer_phone_number - String! Customer phone number
official_id_number - String! Official ID number (National ID or Business Registration)
country - String ISO 3166-1 alpha-2 country code e.g. KE
county - String County
sub_county - String Sub-county
ward - String Ward
town - String Town
landmark - String Landmark
customer_email_address - String Customer email address
customer_status - CustomerStatusEnum! Customer status
display_name - String! Display name (auto-computed from names)
customer_first_name - String Customer first name (for individuals)
customer_surname_name - String Customer surname (for individuals)
organization_name - String Organization name (for organizations)
organization_registration_number - String Organization registration number
individual_details - IndividualDetailsDto Individual specific details
organization_details - OrganizationDetailsDto Organization specific details
contact_person - ContactPersonDto Contact person for organizations
kyc_documents - KycDocumentsDto KYC document URLs
next_of_kin - NextOfKinDto Next of kin
total_loans_taken - Float! Total loans taken by customer
active_loans_count - Float! Active loans count
completed_loans_count - Float! Completed loans count
has_defaulted - Boolean! Whether customer has defaulted
current_credit_score - String Current credit score
metadata - JSONObject Raw customer metadata
customer_updated_at - DateTime! Customer last update timestamp
keycloak_id - String For login
referral_code - String referral code
applications - [ApplicationEntityGraphQL!]!
latestApplication - ApplicationEntityGraphQL
Example
{
  "customer_id": "4",
  "customer_created_at": "2007-12-03T10:15:30Z",
  "customer_type": "INDIVIDUAL",
  "customer_phone_number": "xyz789",
  "official_id_number": "xyz789",
  "country": "abc123",
  "county": "xyz789",
  "sub_county": "abc123",
  "ward": "xyz789",
  "town": "xyz789",
  "landmark": "xyz789",
  "customer_email_address": "xyz789",
  "customer_status": "ACTIVE",
  "display_name": "abc123",
  "customer_first_name": "xyz789",
  "customer_surname_name": "abc123",
  "organization_name": "abc123",
  "organization_registration_number": "abc123",
  "individual_details": IndividualDetailsDto,
  "organization_details": OrganizationDetailsDto,
  "contact_person": ContactPersonDto,
  "kyc_documents": KycDocumentsDto,
  "next_of_kin": NextOfKinDto,
  "total_loans_taken": 123.45,
  "active_loans_count": 123.45,
  "completed_loans_count": 987.65,
  "has_defaulted": false,
  "current_credit_score": "abc123",
  "metadata": {},
  "customer_updated_at": "2007-12-03T10:15:30Z",
  "keycloak_id": "xyz789",
  "referral_code": "xyz789",
  "applications": [ApplicationEntityGraphQL],
  "latestApplication": ApplicationEntityGraphQL
}

RawCustomersFilterInput

Fields
Input Field Description
customer_ids - [String!] Filter by customer IDs
customer_type - CustomerTypeEnum Filter by customer type
customer_phone_number - String Filter by phone number
official_id_number - String Filter by official ID number
device_id - String Filter by MDM provider device ID (raw_inventory.mdm_status.device_id)
customer_email_address - String Filter by email address
customer_status - CustomerStatusEnum Filter by customer status
customer_first_name - String Filter by first name (partial match)
customer_surname_name - String Filter by surname (partial match)
organization_name - String Filter by organization name (partial match)
organization_registration_number - String Filter by organization registration number
display_name - String Filter by display name (partial match)
has_defaulted - Boolean Filter by default status
min_total_loans_taken - Float Minimum total loans taken
max_total_loans_taken - Float Maximum total loans taken
min_active_loans_count - Float Minimum active loans count
max_active_loans_count - Float Maximum active loans count
min_credit_score - Float Minimum credit score
max_credit_score - Float Maximum credit score
created_from - DateTime Filter by creation date from
created_to - DateTime Filter by creation date to
updated_from - DateTime Filter by update date from
updated_to - DateTime Filter by update date to
Example
{
  "customer_ids": ["xyz789"],
  "customer_type": "INDIVIDUAL",
  "customer_phone_number": "abc123",
  "official_id_number": "abc123",
  "device_id": "xyz789",
  "customer_email_address": "xyz789",
  "customer_status": "ACTIVE",
  "customer_first_name": "xyz789",
  "customer_surname_name": "xyz789",
  "organization_name": "xyz789",
  "organization_registration_number": "xyz789",
  "display_name": "xyz789",
  "has_defaulted": true,
  "min_total_loans_taken": 987.65,
  "max_total_loans_taken": 987.65,
  "min_active_loans_count": 123.45,
  "max_active_loans_count": 123.45,
  "min_credit_score": 987.65,
  "max_credit_score": 123.45,
  "created_from": "2007-12-03T10:15:30Z",
  "created_to": "2007-12-03T10:15:30Z",
  "updated_from": "2007-12-03T10:15:30Z",
  "updated_to": "2007-12-03T10:15:30Z"
}

ResubmissionChangesGraphQL

Fields
Field Name Description
active_selfie - ID
active_front_id - ID
active_back_id - ID
active_mpesa_statement - ID
active_bank_statement - ID
kra_pin - String
bank_or_statement_or_kra_or_pin - String
first_name - String
other_name - String
id_type - String
id_number - String
mpesa_number - String
preferred_delivery_date - String
product_change - String
loan_repayment_period - String
Example
{
  "active_selfie": 4,
  "active_front_id": "4",
  "active_back_id": 4,
  "active_mpesa_statement": "4",
  "active_bank_statement": 4,
  "kra_pin": "xyz789",
  "bank_or_statement_or_kra_or_pin": "abc123",
  "first_name": "xyz789",
  "other_name": "xyz789",
  "id_type": "abc123",
  "id_number": "xyz789",
  "mpesa_number": "xyz789",
  "preferred_delivery_date": "abc123",
  "product_change": "xyz789",
  "loan_repayment_period": "abc123"
}

ResubmissionCheckInput

Fields
Input Field Description
resubmissionId - ID!
justification - String! Reason for running this check
Example
{
  "resubmissionId": "4",
  "justification": "abc123"
}

ResubmissionFilterInput

Description

Filter input for resubmission queries

Fields
Input Field Description
application_id - StringFilterInput Filter by application ID
prospect_id - StringFilterInput Filter by prospect ID
lead_id - StringFilterInput Filter by lead ID
status - ResubmissionStatusFilterInput Filter by resubmission status
journey - ResubmissionJourneyFilterInput Filter by resubmission journey type
submitted_by - StringFilterInput Filter by the agent who submitted the resubmission
createdAt - DateFilterInput Filter by creation date
updatedAt - DateFilterInput Filter by last updated date
Example
{
  "application_id": StringFilterInput,
  "prospect_id": StringFilterInput,
  "lead_id": StringFilterInput,
  "status": ResubmissionStatusFilterInput,
  "journey": ResubmissionJourneyFilterInput,
  "submitted_by": StringFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput
}

ResubmissionFormSchemaGraphQL

Fields
Field Name Description
groups - JSON! Dynamic grouped form schema for resubmission
Example
{"groups": {}}

ResubmissionIprsCheckInput

Fields
Input Field Description
resubmissionId - ID!
type - ValidationCheckType!
iprsGatewayType - IprsPlatform
justification - String! Reason for running this check
Example
{
  "resubmissionId": 4,
  "type": "CUSTOMER",
  "iprsGatewayType": "TRANSUNION",
  "justification": "xyz789"
}

ResubmissionJourneyFilterInput

Example
{"eq": "CREDIT", "ne": "CREDIT", "in": ["CREDIT"], "notIn": ["CREDIT"]}

ResubmissionJourneyGraphQL

Fields
Field Name Description
isEligible - Boolean! Whether the application is eligible for resubmission
type - ResubmissionJourneyType Type of resubmission journey
bucket - CustomerBucket Customer bucket classification from the credit process
reason - String Reason for ineligibility
daysSinceSubmission - Float Days elapsed since the prospect was submitted
Example
{
  "isEligible": false,
  "type": "CREDIT",
  "bucket": "CU1",
  "reason": "xyz789",
  "daysSinceSubmission": 987.65
}

ResubmissionJourneyType

Description

Type of resubmission journey

Values
Enum Value Description

CREDIT

KYC

NO_KYC

Example
"CREDIT"

ResubmissionOverviewSection

Fields
Field Name Description
id - String!
label - String!
fieldCount - Int!
Example
{
  "id": "abc123",
  "label": "abc123",
  "fieldCount": 123
}

ResubmissionOverviewType

Fields
Field Name Description
isEligible - Boolean!
reason - String
journeyType - ResubmissionJourneyType
bucket - String
hasSubmittableFields - Boolean!
pendingChecks - [String!]
sections - [ResubmissionOverviewSection!]!
Example
{
  "isEligible": false,
  "reason": "abc123",
  "journeyType": "CREDIT",
  "bucket": "abc123",
  "hasSubmittableFields": false,
  "pendingChecks": ["abc123"],
  "sections": [ResubmissionOverviewSection]
}

ResubmissionStatusEnum

Description

Status of a resubmission record

Values
Enum Value Description

PENDING

CHECKS_PASSED

SUBMITTED

REJECTED

Example
"PENDING"

ResubmissionStatusFilterInput

Example
{"eq": "PENDING", "ne": "PENDING", "in": ["PENDING"], "notIn": ["PENDING"]}

ResubmissionValidDataGraphQL

Fields
Field Name Description
customerId - Boolean!
customerMpesa - Boolean!
nok - Boolean!
kra - Boolean!
Example
{"customerId": false, "customerMpesa": true, "nok": false, "kra": false}

RiskBlockTypeEnum

Values
Enum Value Description

CUSTOMER

APPLICATION

Example
"CUSTOMER"

RiskBlockTypeFilterInput

Fields
Input Field Description
eq - RiskBlockTypeEnum
ne - RiskBlockTypeEnum
in - [RiskBlockTypeEnum!]
notIn - [RiskBlockTypeEnum!]
Example
{"eq": "CUSTOMER", "ne": "CUSTOMER", "in": ["CUSTOMER"], "notIn": ["CUSTOMER"]}

RiskNamespace

Fields
Field Name Description
riskRecord - RawRiskDto
Arguments
id - ID!
riskRecordByFilters - RawRiskDto
Arguments
riskRecordsCount - Float!
Arguments
filters - RawRiskFilterInput
riskRecordsCursor - CursorPaginatedRawRisk!
Arguments
filters - RawRiskFilterInput
regexFilters - RawRiskFilterInput
riskRecordsOffset - OffsetPaginatedRawRisk!
Arguments
filters - RawRiskFilterInput
regexFilters - RawRiskFilterInput
riskRecordsByCustomer - [RawRiskDto!]!
Arguments
customerId - ID!
isBlocked - RawRiskDto CU5 check — returns the active blocking record if the identifiers match BLOCK_NEW_APPLICATIONS, or null.
Arguments
createRiskRecord - RawRiskDto!
Arguments
updateRiskRecord - RawRiskDto!
Arguments
id - ID!
updateManyRiskRecords - Float!
Arguments
deleteRiskRecord - Boolean!
Arguments
id - ID!
deleteManyRiskRecords - Float!
Arguments
deactivateRiskRecord - RawRiskDto! Soft-remove a risk block record.
Arguments
combinedRiskFlagForCustomer - CombinedRiskFlagResultType! Combined risk flag for a customer — HIGH_RISK if active risk records exist.
Arguments
customerId - ID!
combinedRiskFlagForApplication - CombinedRiskFlagResultType! Combined risk flag for an application — HIGH_RISK if active risk records exist.
Arguments
applicationId - ID!
exemptionEligibility - ExemptionEligibilityType! Check if an application qualifies for exemption based on its current credit status.
Arguments
applicationId - ID!
processExemption - ApplicationEntityGraphQL! Process exemption: validate exemption type against credit status, deactivate risk records, set credit to NOT READY and risk flag to Confirmed CLEAN.
Arguments
applicationId - ID!
calculateCustomerRisk - Boolean! Force-enqueue a risk calculation job for a customer.
Arguments
customerId - ID!
calculateApplicationRisk - Boolean! Force-enqueue a risk calculation job for an application.
Arguments
applicationId - ID!
Example
{
  "riskRecord": RawRiskDto,
  "riskRecordByFilters": RawRiskDto,
  "riskRecordsCount": 123.45,
  "riskRecordsCursor": CursorPaginatedRawRisk,
  "riskRecordsOffset": OffsetPaginatedRawRisk,
  "riskRecordsByCustomer": [RawRiskDto],
  "isBlocked": RawRiskDto,
  "createRiskRecord": RawRiskDto,
  "updateRiskRecord": RawRiskDto,
  "updateManyRiskRecords": 123.45,
  "deleteRiskRecord": false,
  "deleteManyRiskRecords": 123.45,
  "deactivateRiskRecord": RawRiskDto,
  "combinedRiskFlagForCustomer": CombinedRiskFlagResultType,
  "combinedRiskFlagForApplication": CombinedRiskFlagResultType,
  "exemptionEligibility": ExemptionEligibilityType,
  "processExemption": ApplicationEntityGraphQL,
  "calculateCustomerRisk": false,
  "calculateApplicationRisk": false
}

RiskRestrictedActionEnum

Values
Enum Value Description

BLOCK_NEW_CUSTOMERS

BLOCK_NEW_APPLICATIONS

BLOCK_SUBSEQUENT_LOAN

BLOCK_EXISTING_SALES

Example
"BLOCK_NEW_CUSTOMERS"

RiskRestrictedActionFilterInput

Example
{
  "eq": "BLOCK_NEW_CUSTOMERS",
  "ne": "BLOCK_NEW_CUSTOMERS",
  "in": ["BLOCK_NEW_CUSTOMERS"],
  "notIn": ["BLOCK_NEW_CUSTOMERS"],
  "all": ["BLOCK_NEW_CUSTOMERS"]
}

RiskSeverityEnum

Values
Enum Value Description

LOW

MEDIUM

HIGH

CRITICAL

Example
"LOW"

RiskSeverityFilterInput

Fields
Input Field Description
eq - RiskSeverityEnum
ne - RiskSeverityEnum
in - [RiskSeverityEnum!]
notIn - [RiskSeverityEnum!]
Example
{"eq": "LOW", "ne": "LOW", "in": ["LOW"], "notIn": ["LOW"]}

Loan

LoanAccountStatusEnum

Description

Status of loan account

Values
Enum Value Description

NEW_ACTIVE

EXISTING_ACTIVE

PAID_OFF_LOAN

PAID_OFF_CASH

FIRST_2_DAYS_RETURN

CANCELLED_RETURNED_IN_3_MTHS

CANCELLED_RETURNED_PAST_3_MTHS

FIRST_PAYMENT_DEFAULT

FMD_WITH_INVENTORY

FMD_NO_INVENTORY_01_07

FMD_NO_INVENTORY_08_14

FMD_NO_INVENTORY_15_30

FMD_NO_INVENTORY_OVER_30

INACTIVE_01_07

INACTIVE_08_14

INACTIVE_15_30

BLOCKED_31_60

BLOCKED_61_90

WRITE_OFF

LOST_WRITE_OFF

DEMO

ERROR

Example
"NEW_ACTIVE"

LoanApplicationStatus

Description

Status of the loan application

Values
Enum Value Description

UNKNOWN

NEW_APPLICATION

RESUBMISSION

SCORING

READY_TO_CALL

CALLING

READY_FOR_DECISIONING

DECISIONING

DEPOSIT_DELIVERY

ACTIVATION

PARTIAL

COMPLETED

APPROVED_LOAN

APPROVED_CASH_OUTOFZONE

APPROVED_CASH

APPROVED_CASH_WANTS_CASH

APPROVED_CASH_NO_CONSENT

APPROVED_CASH_CREDIT

REJECTED

SALE_CASH

KYC_FAIL

DUPLICATE

ARCHIVED

DELETED

Example
"UNKNOWN"

LoanApplicationStatusFilterInput

Example
{"eq": "UNKNOWN", "ne": "UNKNOWN", "in": ["UNKNOWN"], "notIn": ["UNKNOWN"]}

LoanContractDto

Fields
Field Name Description
contract_id - ID! Unique loan contract identifier
loan_id - String Human readable loan identifier
sale_id - String! Sale ID associated with this loan contract
customer_id - String Customer ID associated with this loan contract
customer - RawCustomersDto Customer associated with this loan contract
opening_date - DateTime Loan contract opening date
duration - Float! Loan duration in days
upfront_payment - Float! Upfront payment amount
deposit - Float! Deposit amount
repayment_type - RepaymentTypeEnum! Repayment frequency
gross_loan_amount - Float! Gross loan amount
net_loan_amount - Float! Net loan amount (gross - upfront deposit)
interest_rate - Float! Daily interest rate
repayment_rate - Float! Daily repayment rate
interest_calculation_method - InterestCalculationMethodEnum! Interest calculation method
payment_allocation_method - PaymentAllocationMethodEnum! Payment allocation method
disbursement_date - DateTime Loan disbursement date
maturity_date - DateTime Loan maturity date
first_payment_due_date - DateTime First payment due date
grace_period_days - Float! Grace period in days
penalty_rate_per_day - Float! Daily penalty rate
is_restructured - Boolean! Whether this is a restructured loan
original_contract_id - String Original contract ID if restructured
loan_product_code - String Loan product code snapshotted from origination plan
loan_status_override - LoanAccountStatusEnum Manual override for calculated loan account status
early_payoff_discounts - [LoanEarlyPayoffDiscountType!]! Immutable early payoff discounts snapshotted at origination
metadata - JSON Additional metadata
created_at - DateTime! Contract creation timestamp
updated_at - DateTime! Contract last update timestamp
installments - [LoanInstallmentDto!] All installments for this contract
overdueInstallments - [LoanInstallmentDto!] Overdue installments for this contract
nextDueInstallment - LoanInstallmentDto Next due installment for this contract
ledgerEntries - [LoanLedgerDto!] Ledger entries for this contract
delinquencyTracking - LoanDelinquencyTrackingDto Delinquency tracking for this contract
paymentAllocations - [PaymentAllocationDto!] Payment allocations for this contract
latest_ledger_id - ID Last ledger id
grace_period_status - String Persisted grace period status
grace_period_category - String Persisted grace period category
grace_period_credit_expiry - DateTime Persisted grace period unlock expiry
grace_period_last_trigger_source - String Last grace period trigger source
returned_date - DateTime Device returned date
is_lost - Boolean! Whether device is lost
latest_ledger - LoanLedgerDto
contract - LoanContractDto
Example
{
  "contract_id": "4",
  "loan_id": "abc123",
  "sale_id": "abc123",
  "customer_id": "xyz789",
  "customer": RawCustomersDto,
  "opening_date": "2007-12-03T10:15:30Z",
  "duration": 123.45,
  "upfront_payment": 123.45,
  "deposit": 987.65,
  "repayment_type": "DAILY",
  "gross_loan_amount": 987.65,
  "net_loan_amount": 123.45,
  "interest_rate": 123.45,
  "repayment_rate": 123.45,
  "interest_calculation_method": "SIMPLE_REDUCING_BALANCE",
  "payment_allocation_method": "INTEREST_FIRST",
  "disbursement_date": "2007-12-03T10:15:30Z",
  "maturity_date": "2007-12-03T10:15:30Z",
  "first_payment_due_date": "2007-12-03T10:15:30Z",
  "grace_period_days": 123.45,
  "penalty_rate_per_day": 987.65,
  "is_restructured": false,
  "original_contract_id": "abc123",
  "loan_product_code": "xyz789",
  "loan_status_override": "NEW_ACTIVE",
  "early_payoff_discounts": [LoanEarlyPayoffDiscountType],
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "installments": [LoanInstallmentDto],
  "overdueInstallments": [LoanInstallmentDto],
  "nextDueInstallment": LoanInstallmentDto,
  "ledgerEntries": [LoanLedgerDto],
  "delinquencyTracking": LoanDelinquencyTrackingDto,
  "paymentAllocations": [PaymentAllocationDto],
  "latest_ledger_id": 4,
  "grace_period_status": "abc123",
  "grace_period_category": "abc123",
  "grace_period_credit_expiry": "2007-12-03T10:15:30Z",
  "grace_period_last_trigger_source": "xyz789",
  "returned_date": "2007-12-03T10:15:30Z",
  "is_lost": true,
  "latest_ledger": LoanLedgerDto,
  "contract": LoanContractDto
}

LoanContractFilterInput

Description

Filter input for querying loan contracts

Fields
Input Field Description
contract_id - StringFilterInput Filter by contract ID
loan_id - StringFilterInput Filter by loan ID
sale_id - StringFilterInput Filter by sale ID
customer_id - StringFilterInput Filter by customer ID
status - LoanAccountStatusEnum Filter by loan status
repayment_type - RepaymentTypeEnum Filter by repayment type
interest_calculation_method - InterestCalculationMethodEnum Filter by interest calculation method
payment_allocation_method - PaymentAllocationMethodEnum Filter by payment allocation method
is_restructured - BooleanFilterInput Filter by restructured status
original_contract_id - StringFilterInput Filter by original contract ID
delinquency_status - DelinquencyStatusEnum Filter by delinquency status
escalation_level - EscalationLevelEnum Filter by escalation level
days_past_due_threshold - IntFilterInput Filter by minimum days past due
arrears_amount_threshold - FloatFilterInput Filter by minimum arrears amount
duration - IntFilterInput Filter by duration in days
upfront_payment - FloatFilterInput Filter by upfront payment amount
deposit - FloatFilterInput Filter by deposit amount
gross_loan_amount - FloatFilterInput Filter by gross loan amount
net_loan_amount - FloatFilterInput Filter by net loan amount
interest_rate - FloatFilterInput Filter by interest rate
repayment_rate - FloatFilterInput Filter by repayment rate
penalty_rate_per_day - FloatFilterInput Filter by penalty rate per day
opening_date - DateFilterInput Filter by opening date
disbursement_date - DateFilterInput Filter by disbursement date
maturity_date - DateFilterInput Filter by maturity date
first_payment_due_date - DateFilterInput Filter by first payment due date
returned_date - DateFilterInput Filter by returned date
grace_period_credit_expiry - DateFilterInput Filter by grace period credit expiry
created_at - DateFilterInput Filter by created date
updated_at - DateFilterInput Filter by updated date
loan_product_code - StringFilterInput Filter by loan product code
grace_period_status - StringFilterInput Filter by grace period status
grace_period_category - StringFilterInput Filter by grace period category
grace_period_last_trigger_source - StringFilterInput Filter by grace period last trigger source
latest_ledger_id - StringFilterInput Filter by latest ledger ID
latest_delinquency_tracking_id - StringFilterInput Filter by latest delinquency tracking ID
is_lost - BooleanFilterInput Filter by lost status
Example
{
  "contract_id": StringFilterInput,
  "loan_id": StringFilterInput,
  "sale_id": StringFilterInput,
  "customer_id": StringFilterInput,
  "status": "NEW_ACTIVE",
  "repayment_type": "DAILY",
  "interest_calculation_method": "SIMPLE_REDUCING_BALANCE",
  "payment_allocation_method": "INTEREST_FIRST",
  "is_restructured": BooleanFilterInput,
  "original_contract_id": StringFilterInput,
  "delinquency_status": "CURRENT",
  "escalation_level": "REMINDER",
  "days_past_due_threshold": IntFilterInput,
  "arrears_amount_threshold": FloatFilterInput,
  "duration": IntFilterInput,
  "upfront_payment": FloatFilterInput,
  "deposit": FloatFilterInput,
  "gross_loan_amount": FloatFilterInput,
  "net_loan_amount": FloatFilterInput,
  "interest_rate": FloatFilterInput,
  "repayment_rate": FloatFilterInput,
  "penalty_rate_per_day": FloatFilterInput,
  "opening_date": DateFilterInput,
  "disbursement_date": DateFilterInput,
  "maturity_date": DateFilterInput,
  "first_payment_due_date": DateFilterInput,
  "returned_date": DateFilterInput,
  "grace_period_credit_expiry": DateFilterInput,
  "created_at": DateFilterInput,
  "updated_at": DateFilterInput,
  "loan_product_code": StringFilterInput,
  "grace_period_status": StringFilterInput,
  "grace_period_category": StringFilterInput,
  "grace_period_last_trigger_source": StringFilterInput,
  "latest_ledger_id": StringFilterInput,
  "latest_delinquency_tracking_id": StringFilterInput,
  "is_lost": BooleanFilterInput
}

LoanContractsNamespace

Fields
Field Name Description
loanContract - LoanContractDto! Get loan contract by ID
Arguments
id - ID!
loanContractBySaleId - LoanContractDto! Get loan contract by sale ID
Arguments
saleId - String!
loanContractsByCustomerId - [LoanContractDto!]! Get loan contracts by customer ID
Arguments
customerId - String!
loanContractsByStatus - [LoanContractDto!]! Get loan contracts by status
Arguments
loanContractsByRepaymentType - [LoanContractDto!]! Get loan contracts by repayment type
Arguments
repaymentType - RepaymentTypeEnum!
activeLoanContracts - [LoanContractDto!]! Get active loan contracts
allLoanContracts - [LoanContractDto!]! Get all loan contracts
loanContractsWithOffsetPagination - OffsetPaginatedLoanContracts! Get loan contracts with offset pagination
Arguments
loanContractsCursor - CursorPaginatedLoanContracts! Get loan contracts with cursor pagination
Arguments
loanContractsCount - Float! Count loan contracts with filters
Arguments
createLoanContract - LoanContractDto! Create a new loan contract
Arguments
updateLoanContract - LoanContractDto! Update loan contract by ID
Arguments
deleteLoanContract - Boolean! Delete loan contract by ID
Arguments
id - ID!
deleteManyLoanContracts - Float! Delete multiple loan contracts
Arguments
markLoanContractAsPaidOff - LoanContractDto! Mark loan contract as paid off
Arguments
id - ID!
paymentType - String!
markLoanContractAsWriteOff - LoanContractDto! Mark loan contract as write off
Arguments
id - ID!
disburseLoanContract - LoanContractDto! Disburse loan contract
Arguments
id - ID!
disbursementDate - DateTime
earlySettlementQuote - EarlySettlementQuoteType! Quote the current early settlement amount for a contract
Arguments
contractId - ID!
asOfDate - DateTime
applyEarlySettlement - ApplyEarlySettlementResultType! Apply early settlement for a contract using an existing payment
Arguments
triggerContractAging - AgingResult! Manually trigger aging for a specific contract
Arguments
contractId - ID!
triggerCustomerAging - AgingResult! Manually trigger aging for all contracts of a customer
Arguments
customerId - ID!
Example
{
  "loanContract": LoanContractDto,
  "loanContractBySaleId": LoanContractDto,
  "loanContractsByCustomerId": [LoanContractDto],
  "loanContractsByStatus": [LoanContractDto],
  "loanContractsByRepaymentType": [LoanContractDto],
  "activeLoanContracts": [LoanContractDto],
  "allLoanContracts": [LoanContractDto],
  "loanContractsWithOffsetPagination": OffsetPaginatedLoanContracts,
  "loanContractsCursor": CursorPaginatedLoanContracts,
  "loanContractsCount": 987.65,
  "createLoanContract": LoanContractDto,
  "updateLoanContract": LoanContractDto,
  "deleteLoanContract": true,
  "deleteManyLoanContracts": 123.45,
  "markLoanContractAsPaidOff": LoanContractDto,
  "markLoanContractAsWriteOff": LoanContractDto,
  "disburseLoanContract": LoanContractDto,
  "earlySettlementQuote": EarlySettlementQuoteType,
  "applyEarlySettlement": ApplyEarlySettlementResultType,
  "triggerContractAging": AgingResult,
  "triggerCustomerAging": AgingResult
}

LoanDashboardNamespace

Fields
Field Name Description
summary - LoanDashboardSummary! Get loan portfolio dashboard summary
Example
{"summary": LoanDashboardSummary}

LoanDashboardSummary

Fields
Field Name Description
contractsCount - Float!
activeContractsCount - Float!
outstandingBalanceTotal - Float!
arrearsTotal - Float!
overdueContractsCount - Float!
dueTodayCount - Float!
dueNext7DaysCount - Float!
collectionsQueueCount - Float!
recoveryQueueCount - Float!
closedContractsCount - Float!
Example
{
  "contractsCount": 123.45,
  "activeContractsCount": 123.45,
  "outstandingBalanceTotal": 987.65,
  "arrearsTotal": 987.65,
  "overdueContractsCount": 987.65,
  "dueTodayCount": 123.45,
  "dueNext7DaysCount": 987.65,
  "collectionsQueueCount": 123.45,
  "recoveryQueueCount": 123.45,
  "closedContractsCount": 123.45
}

LoanDelinquencyNamespace

Fields
Field Name Description
loanDelinquencyTracking - LoanDelinquencyTrackingDto! Get loan delinquency tracking by ID
Arguments
id - ID!
allLoanDelinquencyTracking - [LoanDelinquencyTrackingDto!]! Get all loan delinquency tracking records
loanDelinquencyTrackingWithOffsetPagination - OffsetPaginatedLoanDelinquencyTracking! Get loan delinquency tracking with offset pagination
loanDelinquencyTrackingCount - Float! Count loan delinquency tracking records with filters
createLoanDelinquencyTracking - LoanDelinquencyTrackingDto! Create a new loan delinquency tracking record
updateLoanDelinquencyTracking - LoanDelinquencyTrackingDto! Update loan delinquency tracking by ID
Arguments
deleteLoanDelinquencyTracking - Boolean! Delete loan delinquency tracking by ID
Arguments
id - ID!
Example
{
  "loanDelinquencyTracking": LoanDelinquencyTrackingDto,
  "allLoanDelinquencyTracking": [
    LoanDelinquencyTrackingDto
  ],
  "loanDelinquencyTrackingWithOffsetPagination": OffsetPaginatedLoanDelinquencyTracking,
  "loanDelinquencyTrackingCount": 987.65,
  "createLoanDelinquencyTracking": LoanDelinquencyTrackingDto,
  "updateLoanDelinquencyTracking": LoanDelinquencyTrackingDto,
  "deleteLoanDelinquencyTracking": true
}

LoanDelinquencyTrackingDto

Fields
Field Name Description
tracking_id - ID! Unique delinquency tracking identifier
contract_id - String! Contract ID associated with this tracking record
status - DelinquencyStatusEnum! Delinquency status
delinquency_start_date - DateTime Date when delinquency started
default_date - DateTime Date when account defaulted
days_past_due - Float! Number of days past due
amount_overdue - Float! Amount currently overdue
escalation_level - EscalationLevelEnum! Collection escalation level
collection_actions - JSON Collection actions history
write_off_date - DateTime Date when account was written off
recovery_amount - Float Amount recovered
recovery_probability - Float Recovery probability (0-1)
last_contact_date - DateTime Last contact date with customer
next_action_date - DateTime Next planned action date
assigned_collector - String Assigned collector name
notes - String Collection notes
metadata - JSON Additional metadata
created_at - DateTime! Tracking record creation timestamp
updated_at - DateTime! Tracking record last update timestamp
contract - LoanContractDto Loan Contract
Example
{
  "tracking_id": 4,
  "contract_id": "abc123",
  "status": "CURRENT",
  "delinquency_start_date": "2007-12-03T10:15:30Z",
  "default_date": "2007-12-03T10:15:30Z",
  "days_past_due": 987.65,
  "amount_overdue": 123.45,
  "escalation_level": "REMINDER",
  "collection_actions": {},
  "write_off_date": "2007-12-03T10:15:30Z",
  "recovery_amount": 987.65,
  "recovery_probability": 987.65,
  "last_contact_date": "2007-12-03T10:15:30Z",
  "next_action_date": "2007-12-03T10:15:30Z",
  "assigned_collector": "xyz789",
  "notes": "abc123",
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "contract": LoanContractDto
}

LoanDelinquencyTrackingFilterInput

Description

Filter input for querying loan delinquency tracking records

Fields
Input Field Description
contract_id - String Filter by contract ID
status - DelinquencyStatusEnum Filter by delinquency status
escalation_level - EscalationLevelEnum Filter by escalation level
assigned_collector - String Filter by assigned collector
Example
{
  "contract_id": "abc123",
  "status": "CURRENT",
  "escalation_level": "REMINDER",
  "assigned_collector": "abc123"
}

LoanEarlyPayoffDiscountType

Fields
Field Name Description
within_months - Int!
discount_percent - Float!
Example
{"within_months": 987, "discount_percent": 987.65}

LoanInstallmentDto

Fields
Field Name Description
installment_id - ID! Unique installment identifier
contract_id - String! Contract ID associated with this installment
installment_number - Float! Installment number in sequence
installment_type - InstallmentTypeEnum! Type of installment
due_date - DateTime! Installment due date
due_repayment_amount - Float! Total amount due for this installment
due_repayment_principal - Float! Principal amount portion
due_repayment_interest - Float! Interest amount portion
penalty_amount - Float! Penalty amount portion
due_cumulative_principal - Float! Cumulative principal to date
due_cumulative_interest - Float! Cumulative interest to date
cumulative_expected_repay - Float! Cumulative expected repayment (due_cumulative_principal + due_cumulative_interest)
paid_principal - Float! Principal amount paid
paid_interest - Float! Interest amount paid
paid_penalty - Float! Penalty amount paid
outstanding_amount - Float! Outstanding amount remaining
amount_paid - Float! Total amount paid for this installment
status - InstallmentStatusEnum! Installment status
paid_date - DateTime Date when installment was paid
days_overdue - Float! Days overdue
installment_year_month - String! Installment year-month (YYYY-MM)
metadata - JSON Additional metadata
created_at - DateTime! Installment creation timestamp
updated_at - DateTime! Installment last update timestamp
paymentAllocations - [PaymentAllocationDto!] Payment allocations for this installment
contract - LoanContractDto Loan Contract
Example
{
  "installment_id": "4",
  "contract_id": "xyz789",
  "installment_number": 123.45,
  "installment_type": "REGULAR",
  "due_date": "2007-12-03T10:15:30Z",
  "due_repayment_amount": 987.65,
  "due_repayment_principal": 123.45,
  "due_repayment_interest": 987.65,
  "penalty_amount": 123.45,
  "due_cumulative_principal": 123.45,
  "due_cumulative_interest": 987.65,
  "cumulative_expected_repay": 123.45,
  "paid_principal": 123.45,
  "paid_interest": 987.65,
  "paid_penalty": 123.45,
  "outstanding_amount": 123.45,
  "amount_paid": 123.45,
  "status": "PENDING",
  "paid_date": "2007-12-03T10:15:30Z",
  "days_overdue": 987.65,
  "installment_year_month": "xyz789",
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "paymentAllocations": [PaymentAllocationDto],
  "contract": LoanContractDto
}

LoanInstallmentFilterInput

Description

Filter input for querying loan installments

Fields
Input Field Description
contract_id - String Filter by contract ID
installment_type - InstallmentTypeEnum Filter by installment type
status - InstallmentStatusEnum Filter by installment status
installment_year_month - String Filter by installment year-month
Example
{
  "contract_id": "abc123",
  "installment_type": "REGULAR",
  "status": "PENDING",
  "installment_year_month": "abc123"
}

LoanInstallmentsNamespace

Fields
Field Name Description
loanInstallment - LoanInstallmentDto! Get loan installment by ID
Arguments
id - ID!
allLoanInstallments - [LoanInstallmentDto!]! Get all loan installments
loanInstallmentsWithOffsetPagination - OffsetPaginatedLoanInstallments! Get loan installments with offset pagination
Arguments
loanInstallmentsCursor - CursorPaginatedLoanInstallments! Get loan installments entries with cursor pagination
Arguments
loanInstallmentsCount - Float! Count loan installments with filters
Arguments
createLoanInstallment - LoanInstallmentDto! Create a new loan installment
Arguments
updateLoanInstallment - LoanInstallmentDto! Update loan installment by ID
Arguments
deleteLoanInstallment - Boolean! Delete loan installment by ID
Arguments
id - ID!
Example
{
  "loanInstallment": LoanInstallmentDto,
  "allLoanInstallments": [LoanInstallmentDto],
  "loanInstallmentsWithOffsetPagination": OffsetPaginatedLoanInstallments,
  "loanInstallmentsCursor": CursorPaginatedLoanInstallments,
  "loanInstallmentsCount": 987.65,
  "createLoanInstallment": LoanInstallmentDto,
  "updateLoanInstallment": LoanInstallmentDto,
  "deleteLoanInstallment": true
}

LoanLedgerDto

Fields
Field Name Description
ledger_id - ID! Unique ledger entry identifier
contract_id - String! Contract ID associated with this ledger entry
transaction_date - DateTime Transaction date
transaction_type - TransactionTypeEnum! Type of transaction
transaction_status - TransactionStatusEnum! Transaction status
debit_credit - DebitCreditEnum! Debit or credit transaction
balance_due - Float! Amount due on the loan
amount_paid - Float! Amount paid in this transaction
arrears_amount - Float! Arrears amount
advance_amount - Float! Advance payment amount
next_due_amount - Float! Next due amount
total_due_today - Float Total amount due as of today
past_due - Float! Past due amount as percentage
days_past_due - Float! Days past due
days_to_expiry - Float! Days to expiry
loan_age_days - Float! Loan age in days
repayment_due - Float! Total repayment due
days_since_last_payment - Float! Days since last payment
next_invoice_date - DateTime Next invoice date
last_payment_date - DateTime Last payment date
credit_expiry_date - DateTime Credit expiry date for device locking
loan_status - LoanAccountStatusEnum! Loan account status
payment_type - LoanPaymentTypeEnum Payment type
payment_id - String Payment ID reference
description - String Transaction description
paid_off_override - String Paid off override label for early-settlement reporting
metadata - JSON Additional metadata
created_at - DateTime! Ledger entry creation timestamp
updated_at - DateTime! Ledger entry last update timestamp
contract - LoanContractDto Loan Contract
payment - paymentAndAdjustmentUnion Payment or Payment Adjustment
latest_ledger - LoanLedgerDto
Example
{
  "ledger_id": "4",
  "contract_id": "xyz789",
  "transaction_date": "2007-12-03T10:15:30Z",
  "transaction_type": "PAYMENT",
  "transaction_status": "RECONCILED",
  "debit_credit": "DEBIT",
  "balance_due": 987.65,
  "amount_paid": 123.45,
  "arrears_amount": 987.65,
  "advance_amount": 123.45,
  "next_due_amount": 987.65,
  "total_due_today": 123.45,
  "past_due": 123.45,
  "days_past_due": 987.65,
  "days_to_expiry": 987.65,
  "loan_age_days": 123.45,
  "repayment_due": 987.65,
  "days_since_last_payment": 123.45,
  "next_invoice_date": "2007-12-03T10:15:30Z",
  "last_payment_date": "2007-12-03T10:15:30Z",
  "credit_expiry_date": "2007-12-03T10:15:30Z",
  "loan_status": "NEW_ACTIVE",
  "payment_type": "ADJUSTMENT",
  "payment_id": "abc123",
  "description": "xyz789",
  "paid_off_override": "abc123",
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "contract": LoanContractDto,
  "payment": PaymentsEntityType,
  "latest_ledger": LoanLedgerDto
}

LoanLedgerFilterInput

Description

Filter input for querying loan ledger entries

Fields
Input Field Description
contract_id - String Filter by contract ID
transaction_type - TransactionTypeEnum Filter by transaction type
transaction_status - TransactionStatusEnum Filter by transaction status
debit_credit - DebitCreditEnum Filter by debit or credit
loan_status - LoanAccountStatusEnum Filter by loan status
payment_type - LoanPaymentTypeEnum Filter by payment type
payment_id - String Filter by payment ID
paid_off_override - String Filter by paid off override label
Example
{
  "contract_id": "xyz789",
  "transaction_type": "PAYMENT",
  "transaction_status": "RECONCILED",
  "debit_credit": "DEBIT",
  "loan_status": "NEW_ACTIVE",
  "payment_type": "ADJUSTMENT",
  "payment_id": "abc123",
  "paid_off_override": "abc123"
}

LoanLedgerNamespace

Fields
Field Name Description
loanLedgerEntry - LoanLedgerDto! Get loan ledger entry by ID
Arguments
id - ID!
allLoanLedgerEntries - [LoanLedgerDto!]! Get all loan ledger entries
loanLedgerWithOffsetPagination - OffsetPaginatedLoanLedger! Get loan ledger entries with offset pagination
Arguments
loanLedgerCursor - CursorPaginatedLoanLedger! Get loan ledger entries with cursor pagination
Arguments
loanLedgerCount - Float! Count loan ledger entries with filters
Arguments
createLoanLedgerEntry - LoanLedgerDto! Create a new loan ledger entry
Arguments
updateLoanLedgerEntry - LoanLedgerDto! Update loan ledger entry by ID
Arguments
deleteLoanLedgerEntry - Boolean! Delete loan ledger entry by ID
Arguments
id - ID!
paymentStatement - OffsetPaginatedPaymentStatement! Unified payment statement. Routes to raw_loan_ledger for LON* contracts, raw_payment_allocation for others. Ordered by transactionDate DESC.
Arguments
contractId - String!
Example
{
  "loanLedgerEntry": LoanLedgerDto,
  "allLoanLedgerEntries": [LoanLedgerDto],
  "loanLedgerWithOffsetPagination": OffsetPaginatedLoanLedger,
  "loanLedgerCursor": CursorPaginatedLoanLedger,
  "loanLedgerCount": 987.65,
  "createLoanLedgerEntry": LoanLedgerDto,
  "updateLoanLedgerEntry": LoanLedgerDto,
  "deleteLoanLedgerEntry": true,
  "paymentStatement": OffsetPaginatedPaymentStatement
}

LoanModuleNamespace

Fields
Field Name Description
loanContracts - LoanContractsNamespace!
loanLedger - LoanLedgerNamespace!
paymentAllocations - PaymentAllocationsNamespace!
loanInstallments - LoanInstallmentsNamespace!
loanDelinquency - LoanDelinquencyNamespace!
loanOverrides - LoanOverridesNamespace!
accountStatus - AccountStatusNamespace!
loanDashboard - LoanDashboardNamespace!
Example
{
  "loanContracts": LoanContractsNamespace,
  "loanLedger": LoanLedgerNamespace,
  "paymentAllocations": PaymentAllocationsNamespace,
  "loanInstallments": LoanInstallmentsNamespace,
  "loanDelinquency": LoanDelinquencyNamespace,
  "loanOverrides": LoanOverridesNamespace,
  "accountStatus": AccountStatusNamespace,
  "loanDashboard": LoanDashboardNamespace
}

LoanOverrideDto

Fields
Field Name Description
override_id - ID! Unique override identifier
loan_id - String! Loan ID associated with this override
field_name - String! Name of the field being overridden
old_value - String Previous value of the field
new_value - String! New value for the field
reason - String Reason for the override
approved_by - String User who approved the override
sales_override_created_at - DateTime! Override creation timestamp
sales_override_updated_at - DateTime! Override last update timestamp
Example
{
  "override_id": "4",
  "loan_id": "abc123",
  "field_name": "abc123",
  "old_value": "xyz789",
  "new_value": "xyz789",
  "reason": "abc123",
  "approved_by": "abc123",
  "sales_override_created_at": "2007-12-03T10:15:30Z",
  "sales_override_updated_at": "2007-12-03T10:15:30Z"
}

LoanOverrideFilterInput

Description

Filter input for querying loan overrides

Fields
Input Field Description
loan_id - String Filter by loan ID
field_name - String Filter by field name
old_value - String Filter by old value
new_value - String Filter by new value
reason - String Filter by reason
approved_by - String Filter by approved by user
Example
{
  "loan_id": "xyz789",
  "field_name": "xyz789",
  "old_value": "xyz789",
  "new_value": "xyz789",
  "reason": "xyz789",
  "approved_by": "abc123"
}

LoanOverridesNamespace

Fields
Field Name Description
loanOverride - LoanOverrideDto! Get loan override by ID
Arguments
id - ID!
allLoanOverrides - [LoanOverrideDto!]! Get all loan overrides
loanOverridesWithOffsetPagination - OffsetPaginatedLoanOverrides! Get loan overrides with offset pagination
Arguments
loanOverridesCount - Float! Count loan overrides with filters
Arguments
createLoanOverride - LoanOverrideDto! Create a new loan override
Arguments
updateLoanOverride - LoanOverrideDto! Update loan override by ID
Arguments
deleteLoanOverride - Boolean! Delete loan override by ID
Arguments
id - ID!
Example
{
  "loanOverride": LoanOverrideDto,
  "allLoanOverrides": [LoanOverrideDto],
  "loanOverridesWithOffsetPagination": OffsetPaginatedLoanOverrides,
  "loanOverridesCount": 987.65,
  "createLoanOverride": LoanOverrideDto,
  "updateLoanOverride": LoanOverrideDto,
  "deleteLoanOverride": false
}

LoanPaymentTypeEnum

Description

Type of payment transaction

Values
Enum Value Description

ADJUSTMENT

PAYMENT

Example
"ADJUSTMENT"

PaymentAllocationDto

Fields
Field Name Description
allocation_id - ID! Unique payment allocation identifier
payment_id - String! Payment ID that was allocated
transaction_type - TransactionTypeEnum! Transaction type enum
sale_id - String! Sale ID for primary anchor linking
installment_id - String Installment ID that received the allocation
contract_id - String Contract ID for reference
allocated_amount - Float! Total amount allocated from payment
principal_allocated - Float! Amount allocated to principal
interest_allocated - Float! Amount allocated to interest
penalty_allocated - Float! Amount allocated to penalty
allocation_order - Float! Order of allocation for this payment
metadata - JSON Additional metadata
created_at - DateTime! Allocation record creation timestamp
updated_at - DateTime! Allocation record last update timestamp
contract - LoanContractDto Loan Contract
installment - LoanInstallmentDto Loan installment
payment - PaymentAllocationPaymentUnion Resolved payment source, either a raw payment or a payment adjustment
Example
{
  "allocation_id": 4,
  "payment_id": "abc123",
  "transaction_type": "PAYMENT",
  "sale_id": "abc123",
  "installment_id": "abc123",
  "contract_id": "xyz789",
  "allocated_amount": 123.45,
  "principal_allocated": 987.65,
  "interest_allocated": 987.65,
  "penalty_allocated": 987.65,
  "allocation_order": 987.65,
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "contract": LoanContractDto,
  "installment": LoanInstallmentDto,
  "payment": PaymentsEntityType
}

PaymentAllocationFilterInput

Description

Filter input for querying payment allocations

Fields
Input Field Description
payment_id - String Filter by payment ID
sale_id - String Filter by sale ID
installment_id - String Filter by installment ID
contract_id - String Filter by contract ID
Example
{
  "payment_id": "xyz789",
  "sale_id": "abc123",
  "installment_id": "abc123",
  "contract_id": "xyz789"
}

PaymentAllocationMethodEnum

Description

Method for allocating payments between interest and principal

Values
Enum Value Description

INTEREST_FIRST

PRINCIPAL_FIRST

PRO_RATA

Example
"INTEREST_FIRST"

PaymentAllocationPaymentUnion

Example
PaymentsEntityType

PaymentAllocationsNamespace

Fields
Field Name Description
paymentAllocation - PaymentAllocationDto! Get payment allocation by ID
Arguments
id - ID!
allPaymentAllocations - [PaymentAllocationDto!]! Get all payment allocations
paymentAllocationsWithOffsetPagination - OffsetPaginatedPaymentAllocations! Get payment allocations with offset pagination
paymentAllocationsCount - Float! Count payment allocations with filters
Arguments
createPaymentAllocation - PaymentAllocationDto! Create a new payment allocation
Arguments
updatePaymentAllocation - PaymentAllocationDto! Update payment allocation by ID
Arguments
deletePaymentAllocation - Boolean! Delete payment allocation by ID
Arguments
id - ID!
moveLoanPayments - MoveLoanPaymentsResultType! Auditable admin mutation: inserts negative reversal rows for every active allocation on oldLoanId, then recreates them on newLoanId (capped at the new loan gross). Any overpayment is swept to the customer wallet (auto-creating the wallet if absent). Writes is_restructured + original_contract_id on the new loan and appends a RESTRUCTURE ledger entry on the old loan. Per-payment PaymentAdjustment rows link old↔new contracts for audit.
Arguments
Example
{
  "paymentAllocation": PaymentAllocationDto,
  "allPaymentAllocations": [PaymentAllocationDto],
  "paymentAllocationsWithOffsetPagination": OffsetPaginatedPaymentAllocations,
  "paymentAllocationsCount": 987.65,
  "createPaymentAllocation": PaymentAllocationDto,
  "updatePaymentAllocation": PaymentAllocationDto,
  "deletePaymentAllocation": true,
  "moveLoanPayments": MoveLoanPaymentsResultType
}

Payment

BankRequestInput

Fields
Input Field Description
amount - Float!
currency - String
reference - String!
customer_id - String
wallet_id - String
description - String
metadata - JSONObject
accountNumber - String!
bankCode - String
accountName - String
Example
{
  "amount": 987.65,
  "currency": "abc123",
  "reference": "xyz789",
  "customer_id": "abc123",
  "wallet_id": "abc123",
  "description": "xyz789",
  "metadata": {},
  "accountNumber": "abc123",
  "bankCode": "xyz789",
  "accountName": "xyz789"
}

ChannelCategoryEnum

Description

Categories of channel types

Values
Enum Value Description

IN_HOUSE

INDIRECT

RETAIL

Example
"IN_HOUSE"

ChannelTypeEnum

Description

Types of sales channels

Values
Enum Value Description

ONLINE_AGENT

TELESALES

MOSHOP

LEAD_GENERATION

OFFLINE_AGENT

SUPER_AGENT

SHOPS

PARTNERS

DEALERS

RETAIL

Example
"ONLINE_AGENT"

PaymentAdjustmentFilterInput

Fields
Input Field Description
customer_id - ID
payment_id - ID
statuses - [AdjustmentStatusEnum!]
reasons - [AdjustmentReasonEnum!]
dr_cr - DrCrEnum
currency - CurrencyEnum
min_amount - Float
max_amount - Float
from_date - DateTime
to_date - DateTime
contract_number - String
adjustment_status - AdjustmentStatusEnum
Example
{
  "customer_id": 4,
  "payment_id": "4",
  "statuses": ["EFFECTED"],
  "reasons": ["DEPOSIT"],
  "dr_cr": "DR",
  "currency": "KES",
  "min_amount": 987.65,
  "max_amount": 123.45,
  "from_date": "2007-12-03T10:15:30Z",
  "to_date": "2007-12-03T10:15:30Z",
  "contract_number": "xyz789",
  "adjustment_status": "EFFECTED"
}

PaymentAdjustmentsEntityType

Fields
Field Name Description
adjustment_id - ID!
adjustment_amount - Float!
adjustment_currency - CurrencyEnum! Adjustment currency
customer_id - RawCustomersDto
payment_id - ID
related_adjustment_id - ID
reverses_adjustment_id - ID
idempotency_key - String
reason_code - PaymentRevocationReasonCodeEnum
adjustment_reason - AdjustmentReasonEnum!
adjustment_type - AdjustmentTypeEnum!
adjustment_status - AdjustmentStatusEnum!
posting_type - PostingTypeEnum
posting_tag - PostingTagEnum
adjustment_note - String!
dr_cr - DrCrEnum!
loan_id - String
original_contract_number - String
new_contract_number - String
adjustment_metadata - JSON
adjustment_created_at - DateTime!
adjustment_updated_at - DateTime!
deleted_at - DateTime
Example
{
  "adjustment_id": 4,
  "adjustment_amount": 987.65,
  "adjustment_currency": "KES",
  "customer_id": RawCustomersDto,
  "payment_id": "4",
  "related_adjustment_id": "4",
  "reverses_adjustment_id": 4,
  "idempotency_key": "xyz789",
  "reason_code": "OPERATOR_ERROR",
  "adjustment_reason": "DEPOSIT",
  "adjustment_type": "REFUND",
  "adjustment_status": "EFFECTED",
  "posting_type": "ADJUSTMENT_POST",
  "posting_tag": "STAFF_SALE_DISCOUNT",
  "adjustment_note": "abc123",
  "dr_cr": "DR",
  "loan_id": "abc123",
  "original_contract_number": "abc123",
  "new_contract_number": "xyz789",
  "adjustment_metadata": {},
  "adjustment_created_at": "2007-12-03T10:15:30Z",
  "adjustment_updated_at": "2007-12-03T10:15:30Z",
  "deleted_at": "2007-12-03T10:15:30Z"
}

PaymentAdjustmentsNamespace

Fields
Field Name Description
createPaymentAdjustment - PaymentAdjustmentsEntityType! Create a new payment adjustment
Arguments
paymentAdjustment - PaymentAdjustmentsEntityType! Get payment adjustment by ID
Arguments
id - ID!
paymentAdjustmentByFilters - PaymentAdjustmentsEntityType Get payment adjustment by filters
Arguments
paymentAdjustments - [PaymentAdjustmentsEntityType!]! Get all payment adjustments with filters
Arguments
paymentAdjustmentsOffset - OffsetPaginatedPaymentAdjustments! Get paginated payment adjustments (offset)
paymentAdjustmentsCursor - CursorPaginatedPaymentAdjustments! Get paginated payment adjustments (cursor)
updatePaymentAdjustment - PaymentAdjustmentsEntityType! Update payment adjustment by ID
Arguments
deletePaymentAdjustment - Boolean! Delete payment adjustment by ID
Arguments
id - ID!
effectPaymentAdjustment - PaymentAdjustmentsEntityType! Effect a pending payment adjustment
Arguments
id - ID!
revokePaymentAdjustment - PaymentAdjustmentsEntityType! Revoke an effected payment adjustment and apply compensating financial effects
Arguments
id - ID!
reason - String
getTotalAdjustmentsByCustomer - String! Get total adjustments summary by customer
Arguments
customerId - ID!
paymentAdjustmentCount - Float! Count payment adjustments with filters
Arguments
uploadAdjustmentsBulkDump - String! Upload adjustments bulk dump CSV file
Arguments
input - DumpFileInput!
Example
{
  "createPaymentAdjustment": PaymentAdjustmentsEntityType,
  "paymentAdjustment": PaymentAdjustmentsEntityType,
  "paymentAdjustmentByFilters": PaymentAdjustmentsEntityType,
  "paymentAdjustments": [PaymentAdjustmentsEntityType],
  "paymentAdjustmentsOffset": OffsetPaginatedPaymentAdjustments,
  "paymentAdjustmentsCursor": CursorPaginatedPaymentAdjustments,
  "updatePaymentAdjustment": PaymentAdjustmentsEntityType,
  "deletePaymentAdjustment": true,
  "effectPaymentAdjustment": PaymentAdjustmentsEntityType,
  "revokePaymentAdjustment": PaymentAdjustmentsEntityType,
  "getTotalAdjustmentsByCustomer": "abc123",
  "paymentAdjustmentCount": 123.45,
  "uploadAdjustmentsBulkDump": "xyz789"
}

PaymentChannelEnum

Description

Channel through which payment is made

Values
Enum Value Description

USSD

STK_PUSH

PAYBILL

TILL_NUMBER

APP

WEB

PORTAL

WEBHOOK

API

POS

ATM

BRANCH

AGENT

ADMIN

BULK_UPLOAD

RECONCILIATION

Example
"USSD"

PaymentFrequencyEnum

Values
Enum Value Description

DAILY

WEEKLY

MONTHLY

Example
"DAILY"

PaymentModuleNamespace

Fields
Field Name Description
paymentOrchestrator - PaymentOrchestratorNamespace!
payments - PaymentsNamespace!
paymentAdjustments - PaymentAdjustmentsNamespace!
Example
{
  "paymentOrchestrator": PaymentOrchestratorNamespace,
  "payments": PaymentsNamespace,
  "paymentAdjustments": PaymentAdjustmentsNamespace
}

PaymentOrchestratorNamespace

Fields
Field Name Description
collectMobileMoneyPayment - PaymentProviderResultType! Collect mobile money payment from customer
Arguments
providerName - String!
collectCardPayment - PaymentProviderResultType! Collect card payment from customer
Arguments
providerName - String!
collectBankPayment - PaymentProviderResultType! Collect bank payment from customer
Arguments
providerName - String!
collectCryptoPayment - PaymentProviderResultType! Collect crypto payment from customer
Arguments
providerName - String!
sendMobileMoneyPayment - PaymentProviderResultType! Send mobile money payment to customer
Arguments
providerName - String!
sendCardPayment - PaymentProviderResultType! Send card payment to customer
Arguments
providerName - String!
sendBankPayment - PaymentProviderResultType! Send bank payment to customer
Arguments
providerName - String!
sendCryptoPayment - PaymentProviderResultType! Send crypto payment to customer
Arguments
providerName - String!
Example
{
  "collectMobileMoneyPayment": PaymentProviderResultType,
  "collectCardPayment": PaymentProviderResultType,
  "collectBankPayment": PaymentProviderResultType,
  "collectCryptoPayment": PaymentProviderResultType,
  "sendMobileMoneyPayment": PaymentProviderResultType,
  "sendCardPayment": PaymentProviderResultType,
  "sendBankPayment": PaymentProviderResultType,
  "sendCryptoPayment": PaymentProviderResultType
}

PaymentProviderEnum

Description

Payment provider type

Values
Enum Value Description

MPESA

AIRTEL_MONEY

MTN_MOMO

TKASH

EQUITEL

FLUTTERWAVE

PAYSTACK

JENGA

STRIPE

VISA

MASTERCARD

AMERICAN_EXPRESS

VALR

BANK_TRANSFER

RTGS

EFT

CASH

CRYPTO

MOBILE_MONEY

CARD

BANK

Example
"MPESA"

PaymentProviderResultType

Fields
Field Name Description
success - Boolean!
transactionId - String
providerReference - String
status - PaymentStatus!
message - String
amount - Float
rawResponse - JSONObject
metadata - JSONObject
Example
{
  "success": false,
  "transactionId": "xyz789",
  "providerReference": "xyz789",
  "status": "PENDING",
  "message": "abc123",
  "amount": 123.45,
  "rawResponse": {},
  "metadata": {}
}

PaymentReconciliationSourceEnum

Description

Source of payment reconciliation identity

Values
Enum Value Description

SYSTEM

MANUAL

Example
"SYSTEM"

PaymentReconciliationStatusEnum

Description

Payment reconciliation status

Values
Enum Value Description

PENDING

NOT_MATCHED

PARTIAL_MATCH

MATCHED

Example
"PENDING"

PaymentRevocationReasonCodeEnum

Description

Reason code used for payment revocation and undo-revocation

Values
Enum Value Description

OPERATOR_ERROR

CUSTOMER_DISPUTE

FRAUD_RISK

DUPLICATE_PAYMENT

SALE_CANCELLED

ALLOCATION_CORRECTION

PROVIDER_REVERSAL

REVOCATION_ENTERED_IN_ERROR

MANUAL_ADMIN_CORRECTION

OTHER

Example
"OPERATOR_ERROR"

PaymentStatementEntryDto

Fields
Field Name Description
source - TransactionTypeEnum!
totalPaidPrevious - Float!
totalPaidNew - Float!
amount - Float!
paymentRef - String
phoneNo - String
transactionDate - DateTime!
createdAt - DateTime!
tag - StatementTagEnum!
paymentId - String
payment - PaymentsEntityType
adjustment - PaymentAdjustmentsEntityType
Example
{
  "source": "PAYMENT",
  "totalPaidPrevious": 987.65,
  "totalPaidNew": 123.45,
  "amount": 987.65,
  "paymentRef": "abc123",
  "phoneNo": "abc123",
  "transactionDate": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "tag": "CR",
  "paymentId": "abc123",
  "payment": PaymentsEntityType,
  "adjustment": PaymentAdjustmentsEntityType
}

PaymentStatementFilterInput

Description

Filter input for payment statement queries

Fields
Input Field Description
source - TransactionTypeEnum
transactionDateFrom - DateTime
transactionDateTo - DateTime
paymentRef - String Filter by payment provider reference (exact match)
Example
{
  "source": "PAYMENT",
  "transactionDateFrom": "2007-12-03T10:15:30Z",
  "transactionDateTo": "2007-12-03T10:15:30Z",
  "paymentRef": "xyz789"
}

PaymentStatus

Values
Enum Value Description

PENDING

SUCCESS

FAILED

QUEUED

Example
"PENDING"

PaymentStatusEnum

Description

Status of payment

Values
Enum Value Description

PENDING

SUCCESS

FAILED

PARTIALLY_REVERSED

REVERSED

SETTLED

Example
"PENDING"

PaymentTypeEnum

Description

Type of payment

Values
Enum Value Description

PAYMENT

REFUND

REVERSAL

CHARGEBACK

Example
"PAYMENT"

PaymentsEntityType

Fields
Field Name Description
payment_id - ID! Unique payment identifier
customer_id - RawCustomersDto
wallet_id - RawCustomerWalletsDto
payment_provider - PaymentProviderEnum! Payment service provider
payment_provider_reference - String PSP unique transaction reference
payment_account_reference - String Optional business/account reference used during payment
payment_type - PaymentTypeEnum! Payment type (e.g., PAYMENT, REFUND, CHARGEBACK)
payment_amount - Float! Payment amount (decimal precision 2)
payment_currency - CurrencyEnum! Payment currency
payment_channel - PaymentChannelEnum! Payment channel (e.g., APP, USSD, WEB)
payment_status - PaymentStatusEnum! Payment status (e.g., PENDING, SUCCESS, FAILED)
payment_reconciliation_status - PaymentReconciliationStatusEnum! Reconciliation status against internal records
payment_reconciliation_source - PaymentReconciliationSourceEnum! Source of the current reconciliation identity
payment_transaction_date - DateTime! Payment transaction timestamp
payment_completed_at - DateTime Payment completion timestamp
payment_settled_at - DateTime Payment settlement timestamp
payment_phone_number - String The originating phone number (e.g. MSISDN)
payment_description - String Optional payment description
payment_raw - JSON Full PSP payload or import row data (jsonb)
payment_created_by - String User or system that created this payment record
payment_created_at - DateTime! Payment record creation timestamp
payment_updated_at - DateTime! Payment record last update timestamp
Example
{
  "payment_id": 4,
  "customer_id": RawCustomersDto,
  "wallet_id": RawCustomerWalletsDto,
  "payment_provider": "MPESA",
  "payment_provider_reference": "xyz789",
  "payment_account_reference": "xyz789",
  "payment_type": "PAYMENT",
  "payment_amount": 987.65,
  "payment_currency": "KES",
  "payment_channel": "USSD",
  "payment_status": "PENDING",
  "payment_reconciliation_status": "PENDING",
  "payment_reconciliation_source": "SYSTEM",
  "payment_transaction_date": "2007-12-03T10:15:30Z",
  "payment_completed_at": "2007-12-03T10:15:30Z",
  "payment_settled_at": "2007-12-03T10:15:30Z",
  "payment_phone_number": "xyz789",
  "payment_description": "xyz789",
  "payment_raw": {},
  "payment_created_by": "xyz789",
  "payment_created_at": "2007-12-03T10:15:30Z",
  "payment_updated_at": "2007-12-03T10:15:30Z"
}

PaymentsEntityUpdateInput

Fields
Input Field Description
customer_id - String Customer ID
wallet_id - String Wallet ID
payment_provider - PaymentProviderEnum Payment service provider
payment_provider_reference - String PSP unique transaction reference (required as per unique index)
payment_account_reference - String Optional business/account reference used during payment
payment_type - PaymentTypeEnum Payment type (e.g., PAYMENT, REFUND, CHARGEBACK)
payment_amount - Float Payment amount (decimal precision 15,2)
payment_currency - CurrencyEnum Payment currency (Defaults to KES)
payment_channel - PaymentChannelEnum Payment channel (e.g., APP, USSD, WEB)
payment_status - PaymentStatusEnum Payment status (Defaults to PENDING)
payment_reconciliation_status - PaymentReconciliationStatusEnum Reconciliation status (Defaults to NOT_MATCHED)
payment_transaction_date - String The date the transaction occurred
payment_settled_at - String Payment settlement ISO timestamp
payment_phone_number - String The originating phone number (e.g. MSISDN)
payment_description - String Optional payment description
payment_raw - JSON Full PSP payload or import row data (jsonb)
Example
{
  "customer_id": "abc123",
  "wallet_id": "xyz789",
  "payment_provider": "MPESA",
  "payment_provider_reference": "xyz789",
  "payment_account_reference": "abc123",
  "payment_type": "PAYMENT",
  "payment_amount": 987.65,
  "payment_currency": "KES",
  "payment_channel": "USSD",
  "payment_status": "PENDING",
  "payment_reconciliation_status": "PENDING",
  "payment_transaction_date": "abc123",
  "payment_settled_at": "abc123",
  "payment_phone_number": "abc123",
  "payment_description": "xyz789",
  "payment_raw": {}
}

PaymentsFilterInput

Fields
Input Field Description
payment_id - ID
customer_id - ID
wallet_id - ID
payment_provider - PaymentProviderEnum
payment_provider_reference - String
payment_account_reference - String
payment_type - PaymentTypeEnum
payment_amount - Float
payment_currency - CurrencyEnum
payment_channel - PaymentChannelEnum
payment_status - PaymentStatusEnum
payment_reconciliation_status - PaymentReconciliationStatusEnum
payment_reconciliation_source - PaymentReconciliationSourceEnum
payment_transaction_date - DateTime
payment_completed_at - DateTime
payment_settled_at - DateTime
payment_phone_number - String
payment_description - String
payment_created_by - String
Example
{
  "payment_id": "4",
  "customer_id": 4,
  "wallet_id": "4",
  "payment_provider": "MPESA",
  "payment_provider_reference": "abc123",
  "payment_account_reference": "abc123",
  "payment_type": "PAYMENT",
  "payment_amount": 123.45,
  "payment_currency": "KES",
  "payment_channel": "USSD",
  "payment_status": "PENDING",
  "payment_reconciliation_status": "PENDING",
  "payment_reconciliation_source": "SYSTEM",
  "payment_transaction_date": "2007-12-03T10:15:30Z",
  "payment_completed_at": "2007-12-03T10:15:30Z",
  "payment_settled_at": "2007-12-03T10:15:30Z",
  "payment_phone_number": "xyz789",
  "payment_description": "xyz789",
  "payment_created_by": "xyz789"
}

PaymentsNamespace

Fields
Field Name Description
createPayment - PaymentsEntityType! Create a new payment record
Arguments
createRawPayment - PaymentsEntityType! Create a raw payment record
Arguments
getPaymentById - PaymentsEntityType! Get payment by ID
Arguments
id - ID!
payments - [PaymentsEntityType!]! Get all payments with filters
Arguments
paymentByFilters - PaymentsEntityType Get payment by filters
Arguments
paymentsWithCursorPagination - CursorPaginatedPayments! Get paginated payments (cursor)
Arguments
completePayment - PaymentsEntityType! Complete a payment
Arguments
paymentId - ID!
failPayment - PaymentsEntityType! Fail a payment
Arguments
paymentId - ID!
reason - String!
reversePayment - PaymentsEntityType! Reverse a payment
Arguments
paymentId - ID!
reason - String!
updatePayment - PaymentsEntityType! Update payment by ID
Arguments
updateManyPayments - Float! Update multiple payments
manuallyReconcilePayment - PaymentsEntityType! Manually reconcile an unmatched payment to a customer
Arguments
revokePaymentByAdjustment - PaymentAdjustmentsEntityType! Create an immutable payment revocation adjustment and apply its compensating business effects
Arguments
undoPaymentRevocation - PaymentAdjustmentsEntityType! Undo a previously effected payment revocation by targeting the revocation adjustment
Arguments
allocatePaymentToRepairSale - RepairAllocationResultType! Manually allocate a payment to a specific REPAIR sale. REPAIR sales are never auto-allocated by the processor — this mutation is the only allocation path for repair payments.
correctCashSaleOverAllocations - CorrectCashSaleOverAllocationsResultType! Admin: detect and correct cash/repair sales whose total allocations exceed final_sale_price (over-allocation from staggered payments bug). Always run with dryRun: true first to inspect candidates. The excess is reversed, the customer wallet credited, and a reconciliation job enqueued so freed funds flow to other outstanding sales first.
reallocateRepairSalesToOutstanding - ReallocateRepairSalesResultType! Admin: claw back the full payment allocation from the supplied REPAIR sale IDs and re-channel the freed funds to the customer's outstanding CASH / CREDIT sales via the normal reconciliation waterfall. Always run with dryRun: true first to inspect candidates before applying.
Arguments
deletePayment - Boolean! Delete payment by ID
Arguments
id - ID!
deleteManyPayments - Float! Delete multiple payments
Arguments
paymentCount - Float! Count payments with filters
Arguments
uploadMpesaBulkDump - String! Upload M-Pesa bulk dump Excel file
Arguments
input - DumpFileInput!
Example
{
  "createPayment": PaymentsEntityType,
  "createRawPayment": PaymentsEntityType,
  "getPaymentById": PaymentsEntityType,
  "payments": [PaymentsEntityType],
  "paymentByFilters": PaymentsEntityType,
  "paymentsWithCursorPagination": CursorPaginatedPayments,
  "completePayment": PaymentsEntityType,
  "failPayment": PaymentsEntityType,
  "reversePayment": PaymentsEntityType,
  "updatePayment": PaymentsEntityType,
  "updateManyPayments": 987.65,
  "manuallyReconcilePayment": PaymentsEntityType,
  "revokePaymentByAdjustment": PaymentAdjustmentsEntityType,
  "undoPaymentRevocation": PaymentAdjustmentsEntityType,
  "allocatePaymentToRepairSale": RepairAllocationResultType,
  "correctCashSaleOverAllocations": CorrectCashSaleOverAllocationsResultType,
  "reallocateRepairSalesToOutstanding": ReallocateRepairSalesResultType,
  "deletePayment": true,
  "deleteManyPayments": 987.65,
  "paymentCount": 123.45,
  "uploadMpesaBulkDump": "abc123"
}

Inventory & Products

CategoryFilterInput

Description

Filter input for querying categories

Fields
Input Field Description
name - String Filter by category name
slug - String Filter by slug
parent_category_id - String Filter by parent category ID
level - Int Filter by hierarchy level
is_active - Boolean Filter by active status
Example
{
  "name": "xyz789",
  "slug": "abc123",
  "parent_category_id": "abc123",
  "level": 123,
  "is_active": true
}

CategoryObjectType

Fields
Field Name Description
category_id - ID! Unique category identifier
name - String! Category name
slug - String! URL-friendly name
description - String Category description
icon_url - String Icon image URL
image_url - String Banner image URL
required_attributes - JSON Required attributes for this category
sku_attributes - JSON SKU attributes for this category
parent_category_id - String Parent category ID
level - Float! Hierarchy level (0, 1, or 2)
path - String Full path (materialized)
sort_order - Float Display order
is_active - Boolean! Is category visible?
meta_title - String SEO title
meta_description - String SEO description
created_at - DateTime! Creation timestamp
updated_at - DateTime! Last update timestamp
Example
{
  "category_id": "4",
  "name": "abc123",
  "slug": "abc123",
  "description": "xyz789",
  "icon_url": "xyz789",
  "image_url": "abc123",
  "required_attributes": {},
  "sku_attributes": {},
  "parent_category_id": "xyz789",
  "level": 123.45,
  "path": "xyz789",
  "sort_order": 123.45,
  "is_active": false,
  "meta_title": "abc123",
  "meta_description": "abc123",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

FlashSaleFilterInput

Description

Filter input for querying flash sales

Fields
Input Field Description
title - String Filter by title
slug - String Filter by slug
status - FlashSaleStatusEnum Filter by status
is_featured - Boolean Filter by featured status
countdown_display - Boolean Filter by countdown display
Example
{
  "title": "abc123",
  "slug": "xyz789",
  "status": "SCHEDULED",
  "is_featured": true,
  "countdown_display": false
}

FlashSaleItemFilterInput

Description

Filter input for querying flash sale items

Fields
Input Field Description
flash_sale_id - String Filter by flash sale ID
seller_catalog_id - String Filter by seller catalog ID
product_id - String Filter by product ID
sku_id - String Filter by SKU ID
is_featured - Boolean Filter by featured status
badge_text - String Filter by badge text
Example
{
  "flash_sale_id": "xyz789",
  "seller_catalog_id": "abc123",
  "product_id": "abc123",
  "sku_id": "abc123",
  "is_featured": false,
  "badge_text": "xyz789"
}

FlashSaleItemObjectType

Fields
Field Name Description
flash_sale_item_id - ID! Unique flash sale item identifier
flash_sale_id - String! Flash sale ID
seller_catalog_id - String! Product listing
product_id - String! Product reference
sku_id - String! SKU reference
original_price - Float! Regular price
flash_sale_price - Float! Sale price
discount_percentage - Float! Discount %
stock_allocated - Int! Units allocated
stock_sold - Int! Units sold
stock_remaining - Int! Units remaining
max_per_customer - Int Per customer limit
display_priority - Int! Display order
is_featured - Boolean! Featured deal?
badge_text - String Badge text
created_at - DateTime! Added timestamp
Example
{
  "flash_sale_item_id": 4,
  "flash_sale_id": "xyz789",
  "seller_catalog_id": "xyz789",
  "product_id": "xyz789",
  "sku_id": "abc123",
  "original_price": 987.65,
  "flash_sale_price": 987.65,
  "discount_percentage": 123.45,
  "stock_allocated": 123,
  "stock_sold": 123,
  "stock_remaining": 123,
  "max_per_customer": 987,
  "display_priority": 987,
  "is_featured": false,
  "badge_text": "abc123",
  "created_at": "2007-12-03T10:15:30Z"
}

FlashSaleItemsNamespace

Fields
Field Name Description
createFlashSaleItem - FlashSaleItemObjectType!
Arguments
flashSaleItem - FlashSaleItemObjectType!
Arguments
id - ID!
flashSaleItems - [FlashSaleItemObjectType!]!
Arguments
flashSaleItemsWithOffsetPagination - OffsetPaginatedFlashSaleItems!
Arguments
flashSaleItemsWithCursorPagination - CursorPaginatedFlashSaleItems!
Arguments
updateFlashSaleItem - FlashSaleItemObjectType!
Arguments
deleteFlashSaleItem - Boolean!
Arguments
id - ID!
flashSaleItemsByFlashSale - [FlashSaleItemObjectType!]!
Arguments
flashSaleId - ID!
activeFlashSaleItems - [FlashSaleItemObjectType!]!
topDiscountedItems - [FlashSaleItemObjectType!]!
Arguments
limit - Float!
updateFlashSaleItemDiscount - FlashSaleItemObjectType!
Arguments
id - ID!
discountPercentage - Float!
Example
{
  "createFlashSaleItem": FlashSaleItemObjectType,
  "flashSaleItem": FlashSaleItemObjectType,
  "flashSaleItems": [FlashSaleItemObjectType],
  "flashSaleItemsWithOffsetPagination": OffsetPaginatedFlashSaleItems,
  "flashSaleItemsWithCursorPagination": CursorPaginatedFlashSaleItems,
  "updateFlashSaleItem": FlashSaleItemObjectType,
  "deleteFlashSaleItem": true,
  "flashSaleItemsByFlashSale": [FlashSaleItemObjectType],
  "activeFlashSaleItems": [FlashSaleItemObjectType],
  "topDiscountedItems": [FlashSaleItemObjectType],
  "updateFlashSaleItemDiscount": FlashSaleItemObjectType
}

FlashSaleObjectType

Fields
Field Name Description
flash_sale_id - ID! Unique flash sale identifier
title - String! Sale name
slug - String URL identifier
description - String Sale details
start_date - DateTime! Start time
end_date - DateTime! End time
status - FlashSaleStatusEnum! Status
max_quantity - Int Total items cap
sold_quantity - Int! Items sold
min_discount_percentage - Float Min discount
is_featured - Boolean! Featured?
banner_image - String Banner URL
icon_url - String Icon URL
countdown_display - Boolean! Show countdown?
priority - Int! Display order
participating_sellers - [String!] Seller IDs
performance_metrics - JSON! Performance data
meta_title - String SEO title
meta_description - String SEO description
created_at - DateTime! Created timestamp
updated_at - DateTime! Updated timestamp
Example
{
  "flash_sale_id": 4,
  "title": "xyz789",
  "slug": "xyz789",
  "description": "xyz789",
  "start_date": "2007-12-03T10:15:30Z",
  "end_date": "2007-12-03T10:15:30Z",
  "status": "SCHEDULED",
  "max_quantity": 123,
  "sold_quantity": 987,
  "min_discount_percentage": 987.65,
  "is_featured": true,
  "banner_image": "xyz789",
  "icon_url": "abc123",
  "countdown_display": false,
  "priority": 123,
  "participating_sellers": ["xyz789"],
  "performance_metrics": {},
  "meta_title": "xyz789",
  "meta_description": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

FlashSaleStatusEnum

Description

Status of flash sale

Values
Enum Value Description

SCHEDULED

ACTIVE

ENDED

CANCELLED

Example
"SCHEDULED"

FlashSalesNamespace

Fields
Field Name Description
createFlashSale - FlashSaleObjectType!
Arguments
flashSale - FlashSaleObjectType!
Arguments
id - ID!
flashSales - [FlashSaleObjectType!]!
Arguments
flashSalesWithOffsetPagination - OffsetPaginatedFlashSales!
Arguments
flashSalesWithCursorPagination - CursorPaginatedFlashSales!
Arguments
updateFlashSale - FlashSaleObjectType!
Arguments
id - ID!
deleteFlashSale - Boolean!
Arguments
id - ID!
activeFlashSales - [FlashSaleObjectType!]!
upcomingFlashSales - [FlashSaleObjectType!]!
activateFlashSale - FlashSaleObjectType!
Arguments
id - ID!
activatedBy - ID!
endFlashSale - FlashSaleObjectType!
Arguments
id - ID!
endedBy - ID!
Example
{
  "createFlashSale": FlashSaleObjectType,
  "flashSale": FlashSaleObjectType,
  "flashSales": [FlashSaleObjectType],
  "flashSalesWithOffsetPagination": OffsetPaginatedFlashSales,
  "flashSalesWithCursorPagination": CursorPaginatedFlashSales,
  "updateFlashSale": FlashSaleObjectType,
  "deleteFlashSale": true,
  "activeFlashSales": [FlashSaleObjectType],
  "upcomingFlashSales": [FlashSaleObjectType],
  "activateFlashSale": FlashSaleObjectType,
  "endFlashSale": FlashSaleObjectType
}

InventoryAllocationFilterInput

Fields
Input Field Description
inventory_allocation_id - ID
order_item_id - ID
inventory_id - ID
quantity_allocated - Float
allocation_status - AllocationStatusEnum
allocation_date - DateTime
expiry_date - DateTime
Example
{
  "inventory_allocation_id": "4",
  "order_item_id": 4,
  "inventory_id": "4",
  "quantity_allocated": 123.45,
  "allocation_status": "RESERVED",
  "allocation_date": "2007-12-03T10:15:30Z",
  "expiry_date": "2007-12-03T10:15:30Z"
}

InventoryAllocationObjectType

Fields
Field Name Description
inventory_allocation_id - ID!
order_item_id - ID!
inventory_id - ID!
quantity_allocated - Float!
allocation_status - AllocationStatusEnum!
allocation_date - DateTime!
expiry_date - DateTime
metadata - JSON
order_item - OrderItemObjectType
inventory - InventoryObjectType
created_at - DateTime!
updated_at - DateTime!
Example
{
  "inventory_allocation_id": "4",
  "order_item_id": 4,
  "inventory_id": 4,
  "quantity_allocated": 123.45,
  "allocation_status": "RESERVED",
  "allocation_date": "2007-12-03T10:15:30Z",
  "expiry_date": "2007-12-03T10:15:30Z",
  "metadata": {},
  "order_item": OrderItemObjectType,
  "inventory": InventoryObjectType,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

InventoryCoordinatesInput

Fields
Input Field Description
lat - Float!
lng - Float!
Example
{"lat": 123.45, "lng": 123.45}

InventoryCoordinatesObjectType

Fields
Field Name Description
lat - Float!
lng - Float!
Example
{"lat": 987.65, "lng": 987.65}

InventoryCreationResult

Example
InventoryObjectType

InventoryFilterInput

Description

Filter input for querying inventory

Fields
Input Field Description
product_id - String Filter by product ID
sku_id - String Filter by SKU ID
sku_name - String Filter by SKU Name
condition_id - String Filter by condition ID
seller_catalog_id - String Filter by seller catalog ID
seller_id - String Filter by seller ID
serial_number - String Filter by serial number
physical_state - PhysicalState Filter by physical state
mdm_enrollment - MdmEnrollmentStatusEnum Filter by canonical MDM enrollment status
stock_status_type - StockStatusTypeEnum Filter by stock status type
stock_status_name - StockStatusNameEnum Filter by stock status name
stock_origin - StockOriginEnum Filter by stock origin
stock_type - StockTypeEnum Filter by stock type
b2b - Boolean Filter by B2B stock flag
contract_id - String Filter by contract ID
batch_number - String Filter by batch number
location_id - String Filter by location ID
supplier_name - String Filter by supplier name
supplier_order_reference - String Filter by supplier order reference
customer_id - String Filter by customer ID
sale_id - String Filter by sale ID
qc_status - QCStatus Quality control status
qc_status_type - QCStatusTypeEnum QC status type classification
mdm_status_provider - MdmProviderEnum Filter by mdm_status->>'mdm_provider' (JSONB)
mdm_status_device_id - String Filter by mdm_status->>'device_id' (JSONB, partial-match)
stock_status_types - [StockStatusTypeEnum!] Filter by any of stock status types
stock_status_names - [StockStatusNameEnum!] Filter by any of stock status names
qc_status_types - [QCStatusTypeEnum!] Filter by any of QC status types
qc_statuses - [QCStatus!] Filter by any of QC statuses
mdm_enrollments - [MdmEnrollmentStatusEnum!] Filter by any of MDM enrollment statuses
mdm_enrollments_not_in - [MdmEnrollmentStatusEnum!] Exclude these MDM enrollment statuses (NOT IN)
location_type - LocationTypeEnum Filter by location type (joined via inventory.location)
location_types - [LocationTypeEnum!] Filter by any of location types (joined via inventory.location)
updated_at_from - DateTime Filter by updated_at >= this date
updated_at_to - DateTime Filter by updated_at <= this date
or - [InventoryFilterInput!] Array of filter clauses combined with OR. Each clause is a complete AND filter.
Example
{
  "product_id": "xyz789",
  "sku_id": "xyz789",
  "sku_name": "abc123",
  "condition_id": "abc123",
  "seller_catalog_id": "xyz789",
  "seller_id": "abc123",
  "serial_number": "abc123",
  "physical_state": "IN_STOCK",
  "mdm_enrollment": "PENDING",
  "stock_status_type": "INBOUND",
  "stock_status_name": "ORDERED",
  "stock_origin": "INTERNATIONAL",
  "stock_type": "ONE_P",
  "b2b": true,
  "contract_id": "xyz789",
  "batch_number": "abc123",
  "location_id": "xyz789",
  "supplier_name": "abc123",
  "supplier_order_reference": "xyz789",
  "customer_id": "abc123",
  "sale_id": "abc123",
  "qc_status": "PENDING",
  "qc_status_type": "INBOUND",
  "mdm_status_provider": "NUOVOPAY",
  "mdm_status_device_id": "abc123",
  "stock_status_types": ["INBOUND"],
  "stock_status_names": ["ORDERED"],
  "qc_status_types": ["INBOUND"],
  "qc_statuses": ["PENDING"],
  "mdm_enrollments": ["PENDING"],
  "mdm_enrollments_not_in": ["PENDING"],
  "location_type": "TRANSIT_INBOUND",
  "location_types": ["TRANSIT_INBOUND"],
  "updated_at_from": "2007-12-03T10:15:30Z",
  "updated_at_to": "2007-12-03T10:15:30Z",
  "or": [InventoryFilterInput]
}

InventoryLocationDetailsInput

Fields
Input Field Description
country - String
county - String
sub_county - String
ward - String
town - String
landmark - String
gps_coordinates - InventoryCoordinatesInput
Example
{
  "country": "xyz789",
  "county": "xyz789",
  "sub_county": "xyz789",
  "ward": "xyz789",
  "town": "xyz789",
  "landmark": "xyz789",
  "gps_coordinates": InventoryCoordinatesInput
}

InventoryLocationDetailsObjectType

Fields
Field Name Description
country - String
county - String
sub_county - String
ward - String
town - String
landmark - String
gps_coordinates - InventoryCoordinatesObjectType
Example
{
  "country": "xyz789",
  "county": "abc123",
  "sub_county": "xyz789",
  "ward": "xyz789",
  "town": "xyz789",
  "landmark": "abc123",
  "gps_coordinates": InventoryCoordinatesObjectType
}

InventoryLocationFilterInput

Description

Filter input for querying inventory locations

Fields
Input Field Description
location_name - String Filter by location name
location_type - LocationTypeEnum Filter by location type
location_code - String Filter by location code
city - String Filter by city
region - String Filter by region
user_id - String Filter by manager ID
is_active - Boolean Filter by active status
seller_id - String Filter by seller ID
Example
{
  "location_name": "abc123",
  "location_type": "TRANSIT_INBOUND",
  "location_code": "abc123",
  "city": "abc123",
  "region": "xyz789",
  "user_id": "abc123",
  "is_active": true,
  "seller_id": "abc123"
}

InventoryLocationObjectType

Fields
Field Name Description
inventory_location_id - ID! Unique inventory location identifier
location_name - String! Location name
location_type - LocationTypeEnum Type of location
location_code - String Short code
address - String Full address
city - String City
region - String Region/State
coordinates - InventoryCoordinatesObjectType GPS coordinates
location_details - InventoryLocationDetailsObjectType Structured location details
user_id - String Associated agent profile ID
manager_id - String Deprecated alias for user_id Use user_id
capacity - Int! Maximum devices
current_stock - Int! Current device count
is_active - Boolean! Is location active?
operating_hours - JSON Business hours
seller_id - String Seller who owns location (null = platform)
created_at - DateTime! Created timestamp
updated_at - DateTime! Updated timestamp
Example
{
  "inventory_location_id": 4,
  "location_name": "xyz789",
  "location_type": "TRANSIT_INBOUND",
  "location_code": "abc123",
  "address": "abc123",
  "city": "abc123",
  "region": "abc123",
  "coordinates": InventoryCoordinatesObjectType,
  "location_details": InventoryLocationDetailsObjectType,
  "user_id": "xyz789",
  "manager_id": "abc123",
  "capacity": 987,
  "current_stock": 123,
  "is_active": false,
  "operating_hours": {},
  "seller_id": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

InventoryLocationsNamespace

Fields
Field Name Description
createInventoryLocation - InventoryLocationObjectType!
Arguments
inventoryLocation - InventoryLocationObjectType!
Arguments
id - ID!
inventoryLocations - [InventoryLocationObjectType!]!
Arguments
updateInventoryLocation - InventoryLocationObjectType!
Arguments
deleteInventoryLocation - Boolean!
Arguments
id - ID!
Example
{
  "createInventoryLocation": InventoryLocationObjectType,
  "inventoryLocation": InventoryLocationObjectType,
  "inventoryLocations": [InventoryLocationObjectType],
  "updateInventoryLocation": InventoryLocationObjectType,
  "deleteInventoryLocation": true
}

InventoryModuleNamespace

Fields
Field Name Description
categories - CategoriesNamespace!
conditions - ConditionsNamespace!
flashSales - FlashSalesNamespace!
flashSaleItems - FlashSaleItemsNamespace!
inventory - InventoryNamespace!
inventoryLocations - InventoryLocationsNamespace!
productOffers - ProductOffersNamespace!
products - ProductsNamespace!
repair - RepairNamespace!
sellerCatalog - SellerCatalogNamespace!
sellers - SellersNamespace!
skus - SkusNamespace!
skuAgentWhitelists - SkuAgentWhitelistsNamespace!
Example
{
  "categories": CategoriesNamespace,
  "conditions": ConditionsNamespace,
  "flashSales": FlashSalesNamespace,
  "flashSaleItems": FlashSaleItemsNamespace,
  "inventory": InventoryNamespace,
  "inventoryLocations": InventoryLocationsNamespace,
  "productOffers": ProductOffersNamespace,
  "products": ProductsNamespace,
  "repair": RepairNamespace,
  "sellerCatalog": SellerCatalogNamespace,
  "sellers": SellersNamespace,
  "skus": SkusNamespace,
  "skuAgentWhitelists": SkuAgentWhitelistsNamespace
}

InventoryNamespace

Fields
Field Name Description
createInventory - InventoryCreationResult!
Arguments
inventory - InventoryObjectType!
Arguments
id - ID!
inventoryItems - [InventoryObjectType!]!
Arguments
inventoryWithOffsetPagination - OffsetPaginatedInventory!
Arguments
inventoryWithCursorPagination - CursorPaginatedInventory!
Arguments
updateInventory - InventoryObjectType!
Arguments
id - ID!
deleteInventory - Boolean!
Arguments
id - ID!
inventoryCount - Float!
Arguments
inventoryBySerialNumber - InventoryObjectType
Arguments
serialNumber - String!
inventoryBySeller - [InventoryObjectType!]!
Arguments
sellerId - ID!
inventoryByLocation - [InventoryObjectType!]!
Arguments
locationId - ID!
availableInventory - [InventoryObjectType!]!
activeLoanDevices - [InventoryObjectType!]!
inventoryStats - InventoryStats!
updateInventoryPhysicalState - InventoryObjectType!
Arguments
inventoryId - ID!
newState - PhysicalState!
updateInventoryMdmEnrollment - InventoryObjectType!
Arguments
inventoryId - ID!
updateInventoryEnrollmentStatus - InventoryObjectType!
Arguments
inventoryId - ID!
assignInventoryToContract - InventoryObjectType!
Arguments
inventoryId - ID!
contractId - ID!
customerId - ID!
moveInventoryToLocation - InventoryObjectType!
Arguments
inventoryId - ID!
locationId - ID!
getConditionFromQCReport - QCReportWithCondition!
Arguments
updateInventoryWithQCReport - InventoryObjectType!
Example
{
  "createInventory": InventoryObjectType,
  "inventory": InventoryObjectType,
  "inventoryItems": [InventoryObjectType],
  "inventoryWithOffsetPagination": OffsetPaginatedInventory,
  "inventoryWithCursorPagination": CursorPaginatedInventory,
  "updateInventory": InventoryObjectType,
  "deleteInventory": true,
  "inventoryCount": 123.45,
  "inventoryBySerialNumber": InventoryObjectType,
  "inventoryBySeller": [InventoryObjectType],
  "inventoryByLocation": [InventoryObjectType],
  "availableInventory": [InventoryObjectType],
  "activeLoanDevices": [InventoryObjectType],
  "inventoryStats": InventoryStats,
  "updateInventoryPhysicalState": InventoryObjectType,
  "updateInventoryMdmEnrollment": InventoryObjectType,
  "updateInventoryEnrollmentStatus": InventoryObjectType,
  "assignInventoryToContract": InventoryObjectType,
  "moveInventoryToLocation": InventoryObjectType,
  "getConditionFromQCReport": QCReportWithCondition,
  "updateInventoryWithQCReport": InventoryObjectType
}

InventoryObjectType

Fields
Field Name Description
inventory_id - ID! Unique inventory identifier
product_id - String! Which product (model)
sku_id - String Which SKU (variant)
condition_id - String Condition grade
seller_catalog_id - String Listing sold from
seller_id - String! Which seller
serial_number - String! IMEI/SN - unique!
identifiers - JSON Additional identifiers
physical_state - PhysicalState! Physical/marketplace state
mdm_enrollment - MdmEnrollmentStatusEnum Canonical MDM enrollment status
enrollment_status - MdmEnrollmentStatusEnum Deprecated alias for mdm_enrollment Use mdm_enrollment
stock_status_type - StockStatusTypeEnum High-level stock status type
stock_status_name - StockStatusNameEnum Detailed stock status name
stock_origin - StockOriginEnum Origin of stock
stock_type - StockTypeEnum Ownership stock type
b2b - Boolean! Whether inventory is B2B stock
qc_report - QCReportType Quality control details
qc_report_link - String QC report file URL
qc_status - QCStatus! Quality control status
qc_status_type - QCStatusTypeEnum QC status type classification (Inbound, Repair, Reverse)
unit_cost - Float! What seller paid (USD)
contract_id - String Active loan/contract
mdm_status - JSON! Device lock/MDM info
batch_number - String Procurement batch
location_id - String Current location
inspection_report - String Detailed inspection report
warranty - JSON Warranty information
acquisition_date - DateTime When seller got device
first_sale_date - DateTime First sale date
supplier_name - String Supplier name
supplier_code - String Supplier code
supplier_order_reference - String Supplier order reference
customer_id - String Current customer
sale_id - String Current sale transaction
created_at - DateTime Created timestamp
updated_at - DateTime! Updated timestamp
seller - SellerObjectType Seller for seller_id
sku - SkuObjectType SKU for sku_id
product - ProductObjectType Product for product_id
condition - ConditionObjectType Condition for condition_id
sellerCatalog - SellerCatalogObjectType Seller catalog listing for seller_catalog_id
location - InventoryLocationObjectType Location for location_id
Example
{
  "inventory_id": 4,
  "product_id": "abc123",
  "sku_id": "xyz789",
  "condition_id": "xyz789",
  "seller_catalog_id": "xyz789",
  "seller_id": "xyz789",
  "serial_number": "xyz789",
  "identifiers": {},
  "physical_state": "IN_STOCK",
  "mdm_enrollment": "PENDING",
  "enrollment_status": "PENDING",
  "stock_status_type": "INBOUND",
  "stock_status_name": "ORDERED",
  "stock_origin": "INTERNATIONAL",
  "stock_type": "ONE_P",
  "b2b": false,
  "qc_report": QCReportType,
  "qc_report_link": "abc123",
  "qc_status": "PENDING",
  "qc_status_type": "INBOUND",
  "unit_cost": 987.65,
  "contract_id": "abc123",
  "mdm_status": {},
  "batch_number": "xyz789",
  "location_id": "xyz789",
  "inspection_report": "abc123",
  "warranty": {},
  "acquisition_date": "2007-12-03T10:15:30Z",
  "first_sale_date": "2007-12-03T10:15:30Z",
  "supplier_name": "xyz789",
  "supplier_code": "abc123",
  "supplier_order_reference": "xyz789",
  "customer_id": "abc123",
  "sale_id": "abc123",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "seller": SellerObjectType,
  "sku": SkuObjectType,
  "product": ProductObjectType,
  "condition": ConditionObjectType,
  "sellerCatalog": SellerCatalogObjectType,
  "location": InventoryLocationObjectType
}

InventoryStats

Fields
Field Name Description
total - Int!
available - Int!
inLoan - Int!
inRepair - Int!
reserved - Int!
Example
{
  "total": 987,
  "available": 987,
  "inLoan": 123,
  "inRepair": 123,
  "reserved": 123
}

InventoryUiConfigType

Description

Typed inventory UI config payload

Fields
Field Name Description
stockTypes - [EnumOptionType!]! Available stock type options
mdmEnrollments - [EnumOptionType!]! Available MDM enrollment options
stockStatusTypes - [EnumOptionType!]! Available stock status type options
stockStatusNames - [EnumOptionType!]! Available stock status name options
stockStatusTypeToNames - JSON! Mapping of stock_status_type to allowed stock_status_name values
locationTypes - [EnumOptionType!]! Available location type options
stockOrigins - [EnumOptionType!]! Available stock origin options
raw - JSON! Raw merged inventory config payload from category inventory
Example
{
  "stockTypes": [EnumOptionType],
  "mdmEnrollments": [EnumOptionType],
  "stockStatusTypes": [EnumOptionType],
  "stockStatusNames": [EnumOptionType],
  "stockStatusTypeToNames": {},
  "locationTypes": [EnumOptionType],
  "stockOrigins": [EnumOptionType],
  "raw": {}
}

ProductApprovalStatusEnum

Description

Approval status for products and SKUs

Values
Enum Value Description

APPROVED

PENDING

REJECTED

Example
"APPROVED"

ProductFilterInput

Description

Filter input for querying products

Fields
Input Field Description
name - String Filter by product name
slug - String Filter by slug
brand - String Filter by brand
model - String Filter by model
category_id - String Filter by category ID
is_active - Boolean Filter by active status
approval_status - ProductApprovalStatusEnum Filter by approval status
submitted_by_seller_id - String Filter by submitting seller ID
Example
{
  "name": "xyz789",
  "slug": "abc123",
  "brand": "xyz789",
  "model": "abc123",
  "category_id": "abc123",
  "is_active": false,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "abc123"
}

ProductObjectType

Fields
Field Name Description
product_id - ID! Unique product identifier
name - String! Product name
slug - String! URL-friendly name
brand - String! Manufacturer brand
model - String! Product model
category_id - String! Product category ID
category - CategoryObjectType Product category details
description - String Short description
long_description - String Detailed description
base_specifications - JSON Category-required attributes
primary_image_url - String Main product image
images - [String!] Additional images
video_url - String Product video
meta_title - String SEO title
meta_description - String SEO description
keywords - [String!] Search keywords
is_active - Boolean! Is product visible?
approval_status - ProductApprovalStatusEnum! Approval state
submitted_by_seller_id - String Seller who requested
approved_by - String Admin who approved
approved_at - DateTime Approval timestamp
rejection_reason - String Why rejected
created_at - DateTime! Creation timestamp
updated_at - DateTime! Last update timestamp
Example
{
  "product_id": "4",
  "name": "xyz789",
  "slug": "abc123",
  "brand": "xyz789",
  "model": "xyz789",
  "category_id": "abc123",
  "category": CategoryObjectType,
  "description": "abc123",
  "long_description": "xyz789",
  "base_specifications": {},
  "primary_image_url": "abc123",
  "images": ["xyz789"],
  "video_url": "abc123",
  "meta_title": "abc123",
  "meta_description": "abc123",
  "keywords": ["xyz789"],
  "is_active": false,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "xyz789",
  "approved_by": "abc123",
  "approved_at": "2007-12-03T10:15:30Z",
  "rejection_reason": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

ProductOfferFilterInput

Description

Filter input for querying product offers

Fields
Input Field Description
title - String Filter by title
status - OfferStatusEnum Filter by status
type - OfferTypeEnum Filter by type
promo_code - String Filter by promo code
active - Boolean Filter by active status
seller_id - String Filter by seller ID
sku_id - String Filter by SKU ID
Example
{
  "title": "xyz789",
  "status": "DRAFT",
  "type": "PERCENTAGE",
  "promo_code": "abc123",
  "active": true,
  "seller_id": "abc123",
  "sku_id": "xyz789"
}

ProductOfferObjectType

Fields
Field Name Description
product_offer_id - ID! Unique product offer identifier
sku_id - ID SKU identifier
description - String Offer details
status - OfferStatusEnum! Status
type - OfferTypeEnum! Type
discount_value - Float Discount value
minimum_purchase_amount - Float Min order value
maximum_discount_amount - Float Discount cap
usage_limit - Int Total redemptions
usage_count - Int! Times used
usage_limit_per_customer - Int Per customer limit
promo_code - String Promo code
category_filters - [String!]! Categories
brand_filters - [String!]! Brands
applicable_channels - [String!] Channels
active - Boolean! Currently available?
starts_at - DateTime! Start time
ends_at - DateTime! End time
seller_id - String Seller (null = platform)
created_at - DateTime! Created timestamp
updated_at - DateTime! Updated timestamp
Example
{
  "product_offer_id": 4,
  "sku_id": 4,
  "description": "xyz789",
  "status": "DRAFT",
  "type": "PERCENTAGE",
  "discount_value": 987.65,
  "minimum_purchase_amount": 123.45,
  "maximum_discount_amount": 987.65,
  "usage_limit": 123,
  "usage_count": 123,
  "usage_limit_per_customer": 123,
  "promo_code": "abc123",
  "category_filters": ["xyz789"],
  "brand_filters": ["abc123"],
  "applicable_channels": ["abc123"],
  "active": false,
  "starts_at": "2007-12-03T10:15:30Z",
  "ends_at": "2007-12-03T10:15:30Z",
  "seller_id": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

ProductOffersNamespace

Fields
Field Name Description
createProductOffer - ProductOfferObjectType!
Arguments
productOffers - [ProductOfferObjectType!]!
Arguments
updateProductOffer - ProductOfferObjectType!
Arguments
Example
{
  "createProductOffer": ProductOfferObjectType,
  "productOffers": [ProductOfferObjectType],
  "updateProductOffer": ProductOfferObjectType
}

ProductSnapshotType

Fields
Field Name Description
inventory_id - String
imei - String
sku_id - String
sku_code - String
sku_name - String
stock_location - String
stock_type_1p_3p - String
captured_at - DateTime
captured_by - String
Example
{
  "inventory_id": "abc123",
  "imei": "abc123",
  "sku_id": "xyz789",
  "sku_code": "xyz789",
  "sku_name": "xyz789",
  "stock_location": "xyz789",
  "stock_type_1p_3p": "abc123",
  "captured_at": "2007-12-03T10:15:30Z",
  "captured_by": "xyz789"
}

ProductsNamespace

Fields
Field Name Description
createProduct - ProductObjectType!
Arguments
product - ProductObjectType!
Arguments
id - ID!
products - [ProductObjectType!]!
Arguments
productsWithOffsetPagination - OffsetPaginatedProducts!
Arguments
filters - ProductFilterInput
regexFilters - ProductFilterInput
productsWithCursorPagination - CursorPaginatedProducts!
Arguments
filters - ProductFilterInput
regexFilters - ProductFilterInput
updateProduct - ProductObjectType!
Arguments
id - ID!
deleteProduct - Boolean!
Arguments
id - ID!
productsCount - Float!
Arguments
filters - ProductFilterInput
activeProducts - [ProductObjectType!]!
Arguments
categoryId - ID
productsByBrand - [ProductObjectType!]!
Arguments
brand - String!
productsByCategory - [ProductObjectType!]!
Arguments
categoryId - ID!
pendingApprovalProducts - [ProductObjectType!]!
searchProducts - [ProductObjectType!]!
Arguments
query - String!
checkProductExists - Boolean!
Arguments
brand - String!
model - String!
approveProduct - ProductObjectType!
Arguments
productId - ID!
approvedBy - ID!
rejectProduct - ProductObjectType!
Arguments
productId - ID!
rejectedBy - ID!
reason - String!
Example
{
  "createProduct": ProductObjectType,
  "product": ProductObjectType,
  "products": [ProductObjectType],
  "productsWithOffsetPagination": OffsetPaginatedProducts,
  "productsWithCursorPagination": CursorPaginatedProducts,
  "updateProduct": ProductObjectType,
  "deleteProduct": true,
  "productsCount": 123.45,
  "activeProducts": [ProductObjectType],
  "productsByBrand": [ProductObjectType],
  "productsByCategory": [ProductObjectType],
  "pendingApprovalProducts": [ProductObjectType],
  "searchProducts": [ProductObjectType],
  "checkProductExists": false,
  "approveProduct": ProductObjectType,
  "rejectProduct": ProductObjectType
}

QCReportInput

Fields
Input Field Description
make - String Device manufacturer
model - String Device model
model_number - String Model number
serial - String Serial number
imei - String IMEI
imei2 - String IMEI2
color - String Device color
memory - String Storage memory
carrier - String Carrier
unlock_status - String Unlock status
os_version - String OS version
grade - String Grade
battery_health_percentage - Float Battery health percentage
battery_charge_percentage - Float Battery charge percentage
battery_cycle_count - Int Battery cycle count
battery_current_max_capacity - Float Battery current max capacity
battery_design_max_capacity - Float Battery design max capacity
battery_health_grade - String Battery health grade
working_status - String Working status
passed - JSON Passed tests
failed - JSON Failed tests
pending - Boolean Pending tests
glass_condition - String Glass condition
cosmetics - String Cosmetic condition
notes - String QC notes
tester_name - String Tester name
user_id - String User ID
test_plan_name - String Test plan name
added_date - String Added date
updated_date - String Updated date
upload_date - String Upload date
upload_notes - String Upload notes
Example
{
  "make": "abc123",
  "model": "abc123",
  "model_number": "xyz789",
  "serial": "abc123",
  "imei": "xyz789",
  "imei2": "abc123",
  "color": "xyz789",
  "memory": "xyz789",
  "carrier": "abc123",
  "unlock_status": "abc123",
  "os_version": "xyz789",
  "grade": "abc123",
  "battery_health_percentage": 123.45,
  "battery_charge_percentage": 987.65,
  "battery_cycle_count": 987,
  "battery_current_max_capacity": 987.65,
  "battery_design_max_capacity": 123.45,
  "battery_health_grade": "abc123",
  "working_status": "xyz789",
  "passed": {},
  "failed": {},
  "pending": true,
  "glass_condition": "abc123",
  "cosmetics": "xyz789",
  "notes": "xyz789",
  "tester_name": "abc123",
  "user_id": "abc123",
  "test_plan_name": "xyz789",
  "added_date": "abc123",
  "updated_date": "abc123",
  "upload_date": "abc123",
  "upload_notes": "xyz789"
}

QCReportType

Fields
Field Name Description
make - String Device manufacturer
model - String Device model
model_number - String Model number
serial - String Serial number
imei - String IMEI
imei2 - String IMEI2
color - String Device color
memory - String Storage memory
carrier - String Carrier
unlock_status - String Unlock status
os_version - String OS version
grade - String Grade
battery_health_percentage - Float Battery health percentage
battery_charge_percentage - Float Battery charge percentage
battery_cycle_count - Int Battery cycle count
battery_current_max_capacity - Float Battery current max capacity
battery_design_max_capacity - Float Battery design max capacity
battery_health_grade - String Battery health grade
working_status - String Working status
passed - JSON Passed tests
failed - JSON Failed tests
pending - Boolean Pending tests
glass_condition - String Glass condition
cosmetics - String Cosmetic condition
notes - String QC notes
tester_name - String Tester name
user_id - String User ID
test_plan_name - String Test plan name
added_date - String Added date
updated_date - String Updated date
device_lock - String Device lock status
mdm_status - String MDM status
knox - String Knox status
apple_id - String Apple ID status
rooted - Boolean Device rooted status
erased - Boolean Device erased status
eraser_type - String Eraser type
eraser_start - String Eraser start time
eraser_end - String Eraser end time
eraser_total_time - String Total erasure time
erased_notes - String Erasure notes
swappa_qualified - Boolean Swappa qualified status
swappa_rejection - String Swappa rejection reason
back_market_qualified - Boolean Back Market qualified status
back_market_rejection - String Back Market rejection reason
amazon_renewed - Boolean Amazon Renewed qualified status
amazon_renewed_rejection - String Amazon Renewed rejection reason
ebay_refurbished - Boolean eBay Refurbished qualified status
ebay_rejection - String eBay rejection reason
a4_certificate_link - String A4 certificate link
erasure_certificate_link - String Erasure certificate link
device_history_report_link - String Device history report link
a4_report_id - String A4 report ID
raw_csv_data - JSON Raw CSV data
upload_date - String Upload date
upload_notes - String Upload notes
Example
{
  "make": "xyz789",
  "model": "xyz789",
  "model_number": "abc123",
  "serial": "abc123",
  "imei": "abc123",
  "imei2": "abc123",
  "color": "xyz789",
  "memory": "abc123",
  "carrier": "abc123",
  "unlock_status": "xyz789",
  "os_version": "xyz789",
  "grade": "xyz789",
  "battery_health_percentage": 123.45,
  "battery_charge_percentage": 987.65,
  "battery_cycle_count": 987,
  "battery_current_max_capacity": 123.45,
  "battery_design_max_capacity": 123.45,
  "battery_health_grade": "xyz789",
  "working_status": "abc123",
  "passed": {},
  "failed": {},
  "pending": true,
  "glass_condition": "abc123",
  "cosmetics": "xyz789",
  "notes": "abc123",
  "tester_name": "xyz789",
  "user_id": "abc123",
  "test_plan_name": "abc123",
  "added_date": "abc123",
  "updated_date": "xyz789",
  "device_lock": "xyz789",
  "mdm_status": "xyz789",
  "knox": "xyz789",
  "apple_id": "xyz789",
  "rooted": false,
  "erased": true,
  "eraser_type": "abc123",
  "eraser_start": "abc123",
  "eraser_end": "abc123",
  "eraser_total_time": "xyz789",
  "erased_notes": "abc123",
  "swappa_qualified": false,
  "swappa_rejection": "xyz789",
  "back_market_qualified": false,
  "back_market_rejection": "xyz789",
  "amazon_renewed": false,
  "amazon_renewed_rejection": "abc123",
  "ebay_refurbished": false,
  "ebay_rejection": "xyz789",
  "a4_certificate_link": "xyz789",
  "erasure_certificate_link": "xyz789",
  "device_history_report_link": "xyz789",
  "a4_report_id": "abc123",
  "raw_csv_data": {},
  "upload_date": "xyz789",
  "upload_notes": "abc123"
}

QCReportWithCondition

Fields
Field Name Description
qc_report - QCReportType! PhoneCheck QC report data
condition - ConditionObjectType! Matched condition based on QC criteria
imei_validation - IMEIValidationResult! IMEI validation details
Example
{
  "qc_report": QCReportType,
  "condition": ConditionObjectType,
  "imei_validation": IMEIValidationResult
}

QCStatus

Description

Quality Control status of inventory item

Values
Enum Value Description

PENDING

PASSED

FAILED

NOT_REQUIRED

Example
"PENDING"

QCStatusTypeEnum

Description

QC status type classification

Values
Enum Value Description

INBOUND

REPAIR

REVERSE

Example
"INBOUND"

RepairAllocationResultType

Fields
Field Name Description
sale_id - String!
payment_id - String!
allocated_amount - Float!
new_sale_status - String!
order_id - String
new_order_status - String
excess_action - RepairExcessActionEnum
excess_amount - Float
excess_target_sale_id - String
excess_reversal_adjustment_id - String
new_payment_status - String
Example
{
  "sale_id": "xyz789",
  "payment_id": "xyz789",
  "allocated_amount": 123.45,
  "new_sale_status": "abc123",
  "order_id": "xyz789",
  "new_order_status": "abc123",
  "excess_action": "LEAVE_IN_WALLET",
  "excess_amount": 123.45,
  "excess_target_sale_id": "abc123",
  "excess_reversal_adjustment_id": "abc123",
  "new_payment_status": "abc123"
}

RepairBillingTypeEnum

Description

Billing type for repair order

Values
Enum Value Description

WARRANTY

PAID

PARTIAL_WARRANTY

INSURANCE

GOODWILL

Example
"WARRANTY"

RepairExcessActionEnum

Description

What to do with any unallocated payment balance remaining after covering the REPAIR sale.

Values
Enum Value Description

LEAVE_IN_WALLET

CHANNEL_TO_SALE

REVERSE

Example
"LEAVE_IN_WALLET"

RepairFilterInput

Description

Filter input for querying repairs

Fields
Input Field Description
repair_display_id - String Filter by repair display ID
inventory_id - String Filter by inventory ID
customer_id - String Filter by customer ID
original_sale_id - String Filter by original sale ID
order_id - String Filter by order ID
provider_seller_id - String Filter by provider seller ID
location_status - RepairLocationStatusEnum Filter by location status
status - RepairStatusEnum Filter by repair status
priority - RepairPriorityEnum Filter by priority level
is_left_at_shop - Boolean Filter by shop status
issue_tag - String Filter by issue tag
billing_type - RepairBillingTypeEnum Filter by billing type
Example
{
  "repair_display_id": "abc123",
  "inventory_id": "xyz789",
  "customer_id": "abc123",
  "original_sale_id": "xyz789",
  "order_id": "xyz789",
  "provider_seller_id": "xyz789",
  "location_status": "FRONT_DESK",
  "status": "PENDING",
  "priority": "LOW",
  "is_left_at_shop": true,
  "issue_tag": "abc123",
  "billing_type": "WARRANTY"
}

RepairLocationStatusEnum

Description

Location status of repair order

Values
Enum Value Description

FRONT_DESK

WITH_TECHNICIAN

Example
"FRONT_DESK"

RepairNamespace

Fields
Field Name Description
createRepair - RepairObjectType!
Arguments
repairs - [RepairObjectType!]!
Arguments
updateRepair - RepairObjectType!
Arguments
id - ID!
Example
{
  "createRepair": RepairObjectType,
  "repairs": [RepairObjectType],
  "updateRepair": RepairObjectType
}

RepairObjectType

Fields
Field Name Description
repair_id - ID! Unique repair order identifier
repair_display_id - String! Human-readable ID
requires_technician - Boolean! Needs technician?
inventory_id - String Linked device
customer_id - String! Device owner
original_sale_id - String Original purchase
provider_seller_id - String! Service provider
location_status - RepairLocationStatusEnum! Current stage
status - RepairStatusEnum! Repair status
priority - RepairPriorityEnum! Repair priority level
is_left_at_shop - Boolean! Device left?
intake_details - JSON! Condition at intake
outtake_details - JSON! Condition after repair
security - JSON! Security/access info
issue_tag - String! Issue category
customer_complaint - String! Customer description
hq_diagnostic_notes - String Technician notes
billing_type - RepairBillingTypeEnum! Payment type
quoted_price - Float! Repair estimate
spares_cost - Float! Parts cost
estimated_completion_at - DateTime Expected completion
actual_completion_at - DateTime Actual completion
created_at - DateTime! Created timestamp
updated_at - DateTime! Updated timestamp
inventory - InventoryObjectType Inventory for inventory_id
seller - SellerObjectType Seller for provider_seller_id
Example
{
  "repair_id": "4",
  "repair_display_id": "xyz789",
  "requires_technician": true,
  "inventory_id": "abc123",
  "customer_id": "abc123",
  "original_sale_id": "abc123",
  "provider_seller_id": "xyz789",
  "location_status": "FRONT_DESK",
  "status": "PENDING",
  "priority": "LOW",
  "is_left_at_shop": true,
  "intake_details": {},
  "outtake_details": {},
  "security": {},
  "issue_tag": "xyz789",
  "customer_complaint": "abc123",
  "hq_diagnostic_notes": "abc123",
  "billing_type": "WARRANTY",
  "quoted_price": 987.65,
  "spares_cost": 987.65,
  "estimated_completion_at": "2007-12-03T10:15:30Z",
  "actual_completion_at": "2007-12-03T10:15:30Z",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "inventory": InventoryObjectType,
  "seller": SellerObjectType
}

RepairOuttakeInput

Fields
Input Field Description
repair_completed - Boolean
parts_replaced - [String!]
final_condition - String
warranty_provided - Boolean
customer_satisfaction - Int
Example
{
  "repair_completed": false,
  "parts_replaced": ["xyz789"],
  "final_condition": "abc123",
  "warranty_provided": false,
  "customer_satisfaction": 123
}

RepairPriorityEnum

Description

Priority level of repair order

Values
Enum Value Description

LOW

NORMAL

HIGH

URGENT

Example
"LOW"

RepairSaleReallocationResultType

Fields
Field Name Description
sale_id - String!
customer_id - String!
reversed_amount - Float!
reversed_allocation_ids - [String!]!
wallet_credited - Float!
reallocation_adjustment_id - String
new_sale_status - String!
new_order_status - String
Example
{
  "sale_id": "xyz789",
  "customer_id": "abc123",
  "reversed_amount": 987.65,
  "reversed_allocation_ids": ["abc123"],
  "wallet_credited": 987.65,
  "reallocation_adjustment_id": "abc123",
  "new_sale_status": "xyz789",
  "new_order_status": "abc123"
}

RepairStatusEnum

Description

Status of repair order

Values
Enum Value Description

PENDING

PROGRESS

COMPLETED

CANCELLED

Example
"PENDING"

SellerCatalogFilterInput

Description

Filter input for querying seller catalog

Fields
Input Field Description
seller_catalog_id - String Filter by seller catalog ID
seller_id - String Filter by seller ID
sku_id - String Filter by SKU ID
agent_profile_id - String Filter catalog visibility using the agent business profile ID
currency - String Filter by currency
is_active - Boolean Filter by active status
min_retail_price - Float Minimum retail price
max_retail_price - Float Maximum retail price
min_cost_price - Float Minimum cost price
max_cost_price - Float Maximum cost price
sku - SkuFilterInput Filter by SKU properties
product - ProductFilterInput Filter by product properties
search - String Search by product name, brand, model, slug, SKU name, or SKU code
exclude_out_of_stock - Boolean Exclude listings with zero available stock (requires stock_on_hand - reserved_stock >= 1).
platform_owner - Boolean Resolve the platform owner seller when seller_id is not provided.
Example
{
  "seller_catalog_id": "xyz789",
  "seller_id": "xyz789",
  "sku_id": "xyz789",
  "agent_profile_id": "abc123",
  "currency": "xyz789",
  "is_active": true,
  "min_retail_price": 987.65,
  "max_retail_price": 123.45,
  "min_cost_price": 987.65,
  "max_cost_price": 987.65,
  "sku": SkuFilterInput,
  "product": ProductFilterInput,
  "search": "xyz789",
  "exclude_out_of_stock": true,
  "platform_owner": true
}

SellerCatalogNamespace

Fields
Field Name Description
createSellerCatalog - SellerCatalogObjectType!
Arguments
createPlatformSellerCatalog - SellerCatalogObjectType!
sellerCatalogs - [SellerCatalogObjectType!]!
Arguments
updateSellerCatalog - SellerCatalogObjectType!
Arguments
Example
{
  "createSellerCatalog": SellerCatalogObjectType,
  "createPlatformSellerCatalog": SellerCatalogObjectType,
  "sellerCatalogs": [SellerCatalogObjectType],
  "updateSellerCatalog": SellerCatalogObjectType
}

SellerCatalogObjectType

Fields
Field Name Description
seller_catalog_id - ID! Unique seller catalog identifier
seller_id - String! Which seller
sku_id - String! Which SKU being listed
cost_price - Float What seller paid (USD) - private
retail_price - Float! Cash price (USD)
currency - String! Price currency
stock_on_hand - Int! Total units available
reserved_stock - Int! Units in pending orders
is_active - Boolean! Is listing active?
listed_at - DateTime When listed
updated_at - DateTime! Last update timestamp
available_stock - Int! Available stock (calculated)
seller - SellerObjectType The Seller this listing is for
sku - SkuObjectType The SKU this listing is for
product - ProductObjectType The product this listing is for
Example
{
  "seller_catalog_id": 4,
  "seller_id": "abc123",
  "sku_id": "xyz789",
  "cost_price": 987.65,
  "retail_price": 987.65,
  "currency": "abc123",
  "stock_on_hand": 987,
  "reserved_stock": 123,
  "is_active": false,
  "listed_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "available_stock": 987,
  "seller": SellerObjectType,
  "sku": SkuObjectType,
  "product": ProductObjectType
}

SellerFilterInput

Description

Filter input for querying sellers

Fields
Input Field Description
seller_type - SellerTypeEnum Filter by seller type
approved_by - String Filter by approver
partner_profile_id - String Filter by partner profile
platform_owner - Boolean Platform oner
Example
{
  "seller_type": "INTERNAL",
  "approved_by": "abc123",
  "partner_profile_id": "xyz789",
  "platform_owner": true
}

SellerObjectType

Fields
Field Name Description
seller_id - ID! Unique seller identifier
commission_type_id - String Commission type
tier_id - String Seller tier
seller_type - SellerTypeEnum! Type
payment_details - JSON Bank/M-Pesa info
capabilities - JSON What seller can do
performance_metrics - JSON! Performance tracking
overall_rating - Float! Average rating (0-5)
total_reviews - Int! Review count
total_sales - Int! Completed sales
total_orders_365_days - Int! Orders in last 12 months
badges - [String!] Earned badges
suspension_reason - String Why suspended
approved_by - String Admin who approved
approved_at - DateTime Approval date
joined_at - DateTime! Join date
updated_at - DateTime! Last update timestamp
partner_profile_id - String partner profile
platform_owner - Boolean Whether this seller owns the platform
partner_profile - PartnerProfileObjectType
Example
{
  "seller_id": 4,
  "commission_type_id": "xyz789",
  "tier_id": "xyz789",
  "seller_type": "INTERNAL",
  "payment_details": {},
  "capabilities": {},
  "performance_metrics": {},
  "overall_rating": 987.65,
  "total_reviews": 987,
  "total_sales": 987,
  "total_orders_365_days": 987,
  "badges": ["xyz789"],
  "suspension_reason": "xyz789",
  "approved_by": "xyz789",
  "approved_at": "2007-12-03T10:15:30Z",
  "joined_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "partner_profile_id": "abc123",
  "platform_owner": true,
  "partner_profile": PartnerProfileObjectType
}

SellerQuoteInput

Fields
Input Field Description
cash_price - Float!
seller_id - String
minimum_deposit_percentage - Float
agent_profile_id - String
sku_id - String
is_loan - Boolean
include_private_plans - Boolean
Example
{
  "cash_price": 987.65,
  "seller_id": "abc123",
  "minimum_deposit_percentage": 123.45,
  "agent_profile_id": "abc123",
  "sku_id": "xyz789",
  "is_loan": false,
  "include_private_plans": true
}

SellerQuoteType

Fields
Field Name Description
cash_price - Float!
available_plans - [PricingCalculationType!]!
commission - CommissionCalculationType
seller_id - String
calculated_at - DateTime
Example
{
  "cash_price": 123.45,
  "available_plans": [PricingCalculationType],
  "commission": CommissionCalculationType,
  "seller_id": "abc123",
  "calculated_at": "2007-12-03T10:15:30Z"
}

SellerTierFilterInput

Fields
Input Field Description
id - String
name - String
priority - Int
is_active - Boolean
Example
{
  "id": "abc123",
  "name": "abc123",
  "priority": 987,
  "is_active": false
}

SellerTierObjectType

Fields
Field Name Description
id - ID!
name - String!
description - String
priority - Int!
is_active - Boolean!
created_at - DateTime!
updated_at - DateTime!
price_plans - [PricePlanObjectType!]
Example
{
  "id": 4,
  "name": "xyz789",
  "description": "abc123",
  "priority": 987,
  "is_active": false,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "price_plans": [PricePlanObjectType]
}

SellerTypeEnum

Description

Type of seller

Values
Enum Value Description

INTERNAL

PARTNER

MARKETPLACE

Example
"INTERNAL"

SellersNamespace

Fields
Field Name Description
createSeller - SellerObjectType!
Arguments
seller - SellerObjectType!
Arguments
id - ID!
sellers - [SellerObjectType!]!
Arguments
updateSeller - SellerObjectType!
Arguments
id - ID!
deleteSeller - Boolean!
Arguments
id - ID!
Example
{
  "createSeller": SellerObjectType,
  "seller": SellerObjectType,
  "sellers": [SellerObjectType],
  "updateSeller": SellerObjectType,
  "deleteSeller": false
}

SkuAgentWhitelistFilterInput

Fields
Input Field Description
id - ID
sku_id - String
agent_profile_id - String
agent_type - AgentTypeEnum
is_active - Boolean
is_deleted - Boolean
Example
{
  "id": "4",
  "sku_id": "xyz789",
  "agent_profile_id": "abc123",
  "agent_type": "SFM",
  "is_active": true,
  "is_deleted": true
}

SkuAgentWhitelistObjectType

Fields
Field Name Description
id - ID!
sku_id - String!
agent_profile_id - String
agent_type - AgentTypeEnum
is_active - Boolean!
is_deleted - Boolean!
created_at - DateTime!
updated_at - DateTime!
sku - SkuObjectType
agent_profile - AgentProfileObjectType
Example
{
  "id": 4,
  "sku_id": "xyz789",
  "agent_profile_id": "abc123",
  "agent_type": "SFM",
  "is_active": true,
  "is_deleted": true,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "sku": SkuObjectType,
  "agent_profile": AgentProfileObjectType
}

SkuAgentWhitelistsNamespace

Fields
Field Name Description
skuAgentWhitelist - SkuAgentWhitelistObjectType
Arguments
id - ID!
skuAgentWhitelistItems - [SkuAgentWhitelistObjectType!]!
Arguments
createSkuAgentWhitelist - SkuAgentWhitelistObjectType!
Arguments
updateSkuAgentWhitelist - SkuAgentWhitelistObjectType!
Arguments
deleteSkuAgentWhitelist - Boolean!
Arguments
id - ID!
Example
{
  "skuAgentWhitelist": SkuAgentWhitelistObjectType,
  "skuAgentWhitelistItems": [SkuAgentWhitelistObjectType],
  "createSkuAgentWhitelist": SkuAgentWhitelistObjectType,
  "updateSkuAgentWhitelist": SkuAgentWhitelistObjectType,
  "deleteSkuAgentWhitelist": false
}

SkuFilterInput

Description

Filter input for querying SKUs

Fields
Input Field Description
product_id - String Filter by product ID
condition_id - String Filter by condition ID
parent_sku_id - String Filter by parent SKU ID
level - Int Filter by hierarchy level
level_attribute_key - String Filter by hierarchy attribute key
level_attribute_value - String Filter by hierarchy attribute value
sku_code - String Filter by SKU code
name - String Filter by name
is_active - Boolean Filter by active status
approval_status - ProductApprovalStatusEnum Filter by approval status
submitted_by_seller_id - String Filter by submitting seller ID
Example
{
  "product_id": "abc123",
  "condition_id": "abc123",
  "parent_sku_id": "xyz789",
  "level": 123,
  "level_attribute_key": "xyz789",
  "level_attribute_value": "abc123",
  "sku_code": "abc123",
  "name": "xyz789",
  "is_active": true,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "xyz789"
}

SkuObjectType

Fields
Field Name Description
sku_id - ID! Unique SKU identifier
product_id - String! Parent product ID
condition_id - String Condition grade ID
parent_sku_id - String Parent SKU ID
level - Int! Hierarchy level
level_attribute_key - String Level attribute key
level_attribute_value - String Level attribute value
sku_code - String! SKU identifier
name - String! Full SKU name
attributes - JSON! Variant attributes
variant_specifications - JSON Variant-specific specs
msrp_price - Float Original retail price when new
min_seller_price - Float Minimum allowed seller price
max_seller_price - Float Maximum allowed seller price
suggested_retail_price - Float Platform recommended price
effective_price - Float Resolved effective price after inheritance
images - [String!] Photos of this variant
weight_grams - Int Physical weight
dimensions_mm - String Dimensions
is_active - Boolean! Is SKU available?
approval_status - ProductApprovalStatusEnum! Approval state
submitted_by_seller_id - String Seller who requested
approved_by - String Admin who approved
approved_at - DateTime Approval timestamp
rejection_reason - String Why rejected
created_at - DateTime! Creation timestamp
updated_at - DateTime! Last update timestamp
product - ProductObjectType Product for product_id
condition - ConditionObjectType Condition for condition_id
Example
{
  "sku_id": 4,
  "product_id": "abc123",
  "condition_id": "abc123",
  "parent_sku_id": "abc123",
  "level": 987,
  "level_attribute_key": "abc123",
  "level_attribute_value": "abc123",
  "sku_code": "abc123",
  "name": "xyz789",
  "attributes": {},
  "variant_specifications": {},
  "msrp_price": 987.65,
  "min_seller_price": 987.65,
  "max_seller_price": 123.45,
  "suggested_retail_price": 123.45,
  "effective_price": 123.45,
  "images": ["xyz789"],
  "weight_grams": 123,
  "dimensions_mm": "xyz789",
  "is_active": false,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "xyz789",
  "approved_by": "abc123",
  "approved_at": "2007-12-03T10:15:30Z",
  "rejection_reason": "abc123",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "product": ProductObjectType,
  "condition": ConditionObjectType
}

SkusNamespace

Fields
Field Name Description
createSku - SkuObjectType!
Arguments
input - CreateSkuInput!
createSkuChild - SkuObjectType!
Arguments
parentId - ID!
sku - SkuObjectType!
Arguments
id - ID!
skus - [SkuObjectType!]!
Arguments
filter - SkuFilterInput
skuAncestors - [SkuObjectType!]!
Arguments
id - ID!
skuTree - [SkuObjectType!]!
Arguments
id - ID!
skuEffectivePrice - Float!
Arguments
id - ID!
updateSku - SkuObjectType!
Arguments
id - ID!
input - UpdateSkuInput!
deleteSku - Boolean!
Arguments
id - ID!
Example
{
  "createSku": SkuObjectType,
  "createSkuChild": SkuObjectType,
  "sku": SkuObjectType,
  "skus": [SkuObjectType],
  "skuAncestors": [SkuObjectType],
  "skuTree": [SkuObjectType],
  "skuEffectivePrice": 123.45,
  "updateSku": SkuObjectType,
  "deleteSku": true
}

MDM / Devices

BulkUnlockDeviceResultType

Fields
Field Name Description
inventoryId - String Internal inventory UUID
imei - String Device IMEI / serial number
mdmDeviceId - String MDM provider internal device ID
mdmProvider - String MDM platform that handled this device
success - Boolean!
error - String
Example
{
  "inventoryId": "xyz789",
  "imei": "xyz789",
  "mdmDeviceId": "xyz789",
  "mdmProvider": "xyz789",
  "success": false,
  "error": "abc123"
}

BulkUnlockInput

Fields
Input Field Description
identifierType - DeviceIdentifierType! The type of identifier supplied in values — INVENTORY_ID, IMEI, or MDM_DEVICE_ID.
values - [String!]! List of identifier values matching the chosen identifierType.
opts - LockDeviceInput
Example
{
  "identifierType": "INVENTORY_ID",
  "values": ["xyz789"],
  "opts": LockDeviceInput
}

BulkUnlockResultType

Fields
Field Name Description
totalRequested - Int! Total number of identifiers submitted
totalResolved - Int! Devices successfully resolved to an enrolled MDM device
totalSucceeded - Int!
totalFailed - Int!
results - [BulkUnlockDeviceResultType!]!
platformSummaries - [PlatformUnlockSummaryType!]!
Example
{
  "totalRequested": 123,
  "totalResolved": 123,
  "totalSucceeded": 987,
  "totalFailed": 123,
  "results": [BulkUnlockDeviceResultType],
  "platformSummaries": [PlatformUnlockSummaryType]
}

DeviceAllocationDetailsType

Fields
Field Name Description
new_device_assigned_at - DateTime
new_device_assigned_by - String
new_device_id - String
new_device_serial_number - String Resolved serial number of the new device (populated by field resolver)
new_device_name - String Resolved SKU name of the new device (populated by field resolver)
Example
{
  "new_device_assigned_at": "2007-12-03T10:15:30Z",
  "new_device_assigned_by": "abc123",
  "new_device_id": "xyz789",
  "new_device_serial_number": "abc123",
  "new_device_name": "abc123"
}

DeviceCommandResultType

Fields
Field Name Description
success - Boolean!
message - String
command - DeviceLockCommandType!
Example
{
  "success": false,
  "message": "abc123",
  "command": DeviceLockCommandType
}

DeviceCommandStatusEnum

Description

Execution status of a device command

Values
Enum Value Description

PENDING

QUEUED

SENT

DELIVERED

COMPLETED

FAILED

TIMED_OUT

CANCELLED

Example
"PENDING"

DeviceCommandTriggerEnum

Description

What triggered this device command

Values
Enum Value Description

MANUAL

LOAN_AGING

PAYMENT_RECEIVED

LOAN_DEFAULTED

LOAN_COMPLETED

LOAN_WRITTEN_OFF

SYSTEM

WEBHOOK

CRON

Example
"MANUAL"

DeviceCommandTypeEnum

Description

Type of command sent to the MDM provider

Values
Enum Value Description

LOCK

UNLOCK

ENROLL

UNENROLL

PING

GET_STATUS

SET_LOCK_MESSAGE

SET_CUSTOM_POLICY

FACTORY_RESET

LOCATE

WIPE

Example
"LOCK"

DeviceConditionGrade

Description

Device condition grade on return/recovery

Values
Enum Value Description

GRADE_A

GRADE_A_WITH_REPAIRS

GRADE_B

QC_FAIL

A

B

C

D

Example
"GRADE_A"

DeviceIdentifierInput

Fields
Input Field Description
inventoryId - ID UUID primary key from raw_inventory (fastest lookup)
imei - String Device IMEI / serial number (raw_inventory.serial_number)
mdmDeviceId - String MDM provider internal device ID (inventory.mdm_status.device_id)
Example
{
  "inventoryId": 4,
  "imei": "xyz789",
  "mdmDeviceId": "xyz789"
}

DeviceIdentifierType

Description

Which identifier field the supplied values belong to

Values
Enum Value Description

INVENTORY_ID

IMEI

MDM_DEVICE_ID

Example
"INVENTORY_ID"

DeviceLocationResultType

Fields
Field Name Description
latitude - Float!
longitude - Float!
accuracy - Float
capturedAt - DateTime
Example
{
  "latitude": 987.65,
  "longitude": 123.45,
  "accuracy": 987.65,
  "capturedAt": "2007-12-03T10:15:30Z"
}

DeviceLockCommandType

Fields
Field Name Description
command_id - ID!
device_id - String!
device_imei - String!
command_type - DeviceCommandTypeEnum!
command_status - DeviceCommandStatusEnum!
command_trigger - DeviceCommandTriggerEnum!
mdm_provider - MdmProviderEnum!
initiated_by - String
mdm_reference_id - String
error_message - String
attempt_count - Int!
command_payload - JSON
mdm_response - JSON
command_queued_at - DateTime
command_sent_at - DateTime
command_delivered_at - DateTime
command_completed_at - DateTime
command_created_at - DateTime!
command_updated_at - DateTime!
Example
{
  "command_id": "4",
  "device_id": "abc123",
  "device_imei": "xyz789",
  "command_type": "LOCK",
  "command_status": "PENDING",
  "command_trigger": "MANUAL",
  "mdm_provider": "NUOVOPAY",
  "initiated_by": "abc123",
  "mdm_reference_id": "xyz789",
  "error_message": "abc123",
  "attempt_count": 987,
  "command_payload": {},
  "mdm_response": {},
  "command_queued_at": "2007-12-03T10:15:30Z",
  "command_sent_at": "2007-12-03T10:15:30Z",
  "command_delivered_at": "2007-12-03T10:15:30Z",
  "command_completed_at": "2007-12-03T10:15:30Z",
  "command_created_at": "2007-12-03T10:15:30Z",
  "command_updated_at": "2007-12-03T10:15:30Z"
}

DeviceStatusResultType

Fields
Field Name Description
success - Boolean!
id - String
mdmProvider - String
isLocked - Boolean!
isEnrolled - Boolean!
isOnline - Boolean!
isScreenLocked - Boolean
isCharging - Boolean
isLost - Boolean
imei - String
imei2 - String
serialNumber - String
model - String
manufacturer - String
osVersion - String
phoneNumber - String
phoneNumber2 - String
networkOperator - String
networkOperator2 - String
batteryLevel - Float
lastSeenAt - DateTime
enrollmentDate - DateTime
enrollmentStatus - String
nextLockDate - DateTime
unlockCode - String
deviceGroupId - String
deviceGroupName - String
storageTotal - Int
storageAvailable - Int
location - DeviceLocationResultType
simLockInfo - SimLockInfoType
rawStatus - JSON
Example
{
  "success": false,
  "id": "abc123",
  "mdmProvider": "xyz789",
  "isLocked": true,
  "isEnrolled": false,
  "isOnline": false,
  "isScreenLocked": true,
  "isCharging": false,
  "isLost": true,
  "imei": "abc123",
  "imei2": "xyz789",
  "serialNumber": "abc123",
  "model": "abc123",
  "manufacturer": "abc123",
  "osVersion": "xyz789",
  "phoneNumber": "xyz789",
  "phoneNumber2": "abc123",
  "networkOperator": "xyz789",
  "networkOperator2": "abc123",
  "batteryLevel": 987.65,
  "lastSeenAt": "2007-12-03T10:15:30Z",
  "enrollmentDate": "2007-12-03T10:15:30Z",
  "enrollmentStatus": "xyz789",
  "nextLockDate": "2007-12-03T10:15:30Z",
  "unlockCode": "abc123",
  "deviceGroupId": "abc123",
  "deviceGroupName": "abc123",
  "storageTotal": 987,
  "storageAvailable": 987,
  "location": DeviceLocationResultType,
  "simLockInfo": SimLockInfoType,
  "rawStatus": {}
}

MdmActivityLogEntryType

Fields
Field Name Description
id - ID!
event - String!
item_id - ID!
item_type - String!
request_id - String
created_at - String!
actor - String
changes - [JSON!]!
originated_from - String
Example
{
  "id": 4,
  "event": "xyz789",
  "item_id": 4,
  "item_type": "xyz789",
  "request_id": "abc123",
  "created_at": "xyz789",
  "actor": "xyz789",
  "changes": [{}],
  "originated_from": "abc123"
}

MdmActivityLogsResultType

Fields
Field Name Description
logs - [MdmActivityLogEntryType!]!
total_count - Int!
Example
{"logs": [MdmActivityLogEntryType], "total_count": 123}

MdmEnrollmentStatusEnum

Description

Status of inventory item MDM enrollment

Values
Enum Value Description

PENDING

ENROLLED

FAILED

UNREGISTERED

DELETED

UNDER_30_DAYS

Example
"PENDING"

MdmLockLogsNamespace

Fields
Field Name Description
_description - String
command - DeviceLockCommandType
Arguments
commandId - ID!
commandHistory - [DeviceLockCommandType!]!
Arguments
identifier - DeviceIdentifierInput!
limit - Float
latestCommand - DeviceLockCommandType
Arguments
identifier - DeviceIdentifierInput!
commandType - DeviceCommandTypeEnum!
Example
{
  "_description": "abc123",
  "command": DeviceLockCommandType,
  "commandHistory": [DeviceLockCommandType],
  "latestCommand": DeviceLockCommandType
}

MdmNamespace

Fields
Field Name Description
_description - String
lockDevice - DeviceCommandResultType!
Arguments
unlockDevice - DeviceCommandResultType!
Arguments
bulkUnlockDevices - BulkUnlockResultType!
Arguments
bulkLockDevices - BulkUnlockResultType!
Arguments
deviceStatus - DeviceStatusResultType!
Arguments
identifier - DeviceIdentifierInput!
activityLogs - MdmActivityLogsResultType!
Arguments
identifier - DeviceIdentifierInput!
page - Int
perPage - Int
Example
{
  "_description": "abc123",
  "lockDevice": DeviceCommandResultType,
  "unlockDevice": DeviceCommandResultType,
  "bulkUnlockDevices": BulkUnlockResultType,
  "bulkLockDevices": BulkUnlockResultType,
  "deviceStatus": DeviceStatusResultType,
  "activityLogs": MdmActivityLogsResultType
}

MdmProviderEnum

Description

Supported MDM (Mobile Device Management) providers

Values
Enum Value Description

NUOVOPAY

SCALEFUSION

SEVENMDM

TRUSTONIC

OEM

Example
"NUOVOPAY"

Credit Bureau

CrbAnalysisType

Description

Combined CRB analysis with score explanation and credit check fields

Fields
Field Name Description
scoreExplanation - CrbScoreExplanationType Score explanation details
creditCheckFields - CrbCreditCheckFieldsType Formatted CRB credit check values
Example
{
  "scoreExplanation": CrbScoreExplanationType,
  "creditCheckFields": CrbCreditCheckFieldsType
}

CrbCreditCheckFieldsType

Description

CRB credit check fields

Fields
Field Name Description
recentLoansCrb - String
openLoanOdsCrb - String
pastDefaultsCrb - String
pastDefaultRecord - String
dobTimestampCRB - String
openLoanRecord - String
Example
{
  "recentLoansCrb": "xyz789",
  "openLoanOdsCrb": "abc123",
  "pastDefaultsCrb": "xyz789",
  "pastDefaultRecord": "xyz789",
  "dobTimestampCRB": "abc123",
  "openLoanRecord": "abc123"
}

CrbCreditHistoryType

Description

Credit history summary

Fields
Field Name Description
hasHistory - Boolean!
accountsSummary - String!
Example
{
  "hasHistory": false,
  "accountsSummary": "abc123"
}

CrbCustomerProfileType

Description

Customer profile within CRB analysis

Fields
Field Name Description
age - Float!
ageCategory - String!
Example
{"age": 123.45, "ageCategory": "abc123"}

CrbDetailedAnalysisType

Description

Detailed CRB analysis breakdown

Fields
Field Name Description
customerProfile - CrbCustomerProfileType!
creditHistory - CrbCreditHistoryType!
riskFactors - [CrbRiskFactorType!]!
positiveFactors - [CrbPositiveFactorType!]!
Example
{
  "customerProfile": CrbCustomerProfileType,
  "creditHistory": CrbCreditHistoryType,
  "riskFactors": [CrbRiskFactorType],
  "positiveFactors": [CrbPositiveFactorType]
}

CrbPlatform

Description

Credit bureau provider platforms

Values
Enum Value Description

TRANSUNION

METROPOL

IPRS

Example
"TRANSUNION"

CrbPositiveFactorType

Description

CRB positive factor

Fields
Field Name Description
factor - String!
impact - String!
description - String!
value - Float!
Example
{
  "factor": "xyz789",
  "impact": "xyz789",
  "description": "xyz789",
  "value": 123.45
}

CrbReportValidationCheckInput

Fields
Input Field Description
applicationId - ID!
crbGatewayType - CrbPlatform
justification - String! Reason for running this check
Example
{
  "applicationId": "4",
  "crbGatewayType": "TRANSUNION",
  "justification": "xyz789"
}

CrbRiskFactorType

Description

CRB risk factor

Fields
Field Name Description
factor - String!
severity - String!
description - String!
value - Float!
threshold - String!
Example
{
  "factor": "abc123",
  "severity": "abc123",
  "description": "xyz789",
  "value": 987.65,
  "threshold": "xyz789"
}

CrbRuleEvaluationType

Description

CRB rule evaluation result

Fields
Field Name Description
ruleName - String!
scoreCategory - String!
conditions - [String!]!
result - String!
reason - String!
Example
{
  "ruleName": "xyz789",
  "scoreCategory": "xyz789",
  "conditions": ["xyz789"],
  "result": "xyz789",
  "reason": "abc123"
}

CrbScoreExplanationType

Description

CRB score explanation

Fields
Field Name Description
finalScore - String!
primaryReason - String!
detailedAnalysis - CrbDetailedAnalysisType!
rulesEvaluated - [CrbRuleEvaluationType!]!
response - String
Example
{
  "finalScore": "abc123",
  "primaryReason": "xyz789",
  "detailedAnalysis": CrbDetailedAnalysisType,
  "rulesEvaluated": [CrbRuleEvaluationType],
  "response": "xyz789"
}

CrbValidationCheckInput

Fields
Input Field Description
applicationId - ID!
justification - String! Reason for running this check
Example
{
  "applicationId": 4,
  "justification": "xyz789"
}

CreditBureauTransactionCursorPaginatedResponse

Description

Cursor paginated credit bureau transactions response

Fields
Field Name Description
data - [CreditBureauTransactionDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CreditBureauTransactionDto],
  "pagination": CursorPaginationMetadata
}

CreditBureauTransactionDto

Description

Credit bureau transaction record

Fields
Field Name Description
id - ID Unique identifier
_id - ID Unique identifier
provider - CrbPlatform! Credit bureau provider
customer_id - String! Customer ID
customer_dob - DateTime Customer date of birth
customer_age - Float! Customer age
customer_name - String! Customer name
recent_loans_crb - Float! Recent loans from CRB
open_loans_count - Float! Open loans count
past_default_crb - Float! Past defaults from CRB
open_loan_record - Float! Open loan record count
written_off_loans - Float! Written off loans count
settled_default_loans - Float! Settled default loans count
closed_default_loans - Float! Closed default loans count
open_default_loans - Float! Open default loans count
is_report_empty - Boolean! Whether the report is empty
has_no_defaults_and_low_principals - Boolean! Has no defaults and low principals
paid_off_loans_in_time_12_months - Float! Paid off loans in time (12 months)
paid_off_loans_in_time_all - Float! Paid off loans in time (all time)
principals_below_5000 - Float! Principals below 5000
phone_numbers - [String!] Phone numbers
system_defined_score - String System defined score
user_defined_score - String User defined score
score - String Computed score (user or system)
pdf_id - String PDF document ID
pdf_url - String PDF document URL
rawData - JSON Raw data object
metadata - JSON Additional metadata
manual_override - Boolean! Whether score was manually overridden
record_status - VerificationRecordStatus Cache freshness state of this record
crb_analysis - CrbAnalysisType
createdAt - DateTime Record creation timestamp
updatedAt - DateTime Record update timestamp
Example
{
  "id": 4,
  "_id": "4",
  "provider": "TRANSUNION",
  "customer_id": "xyz789",
  "customer_dob": "2007-12-03T10:15:30Z",
  "customer_age": 123.45,
  "customer_name": "xyz789",
  "recent_loans_crb": 987.65,
  "open_loans_count": 987.65,
  "past_default_crb": 987.65,
  "open_loan_record": 987.65,
  "written_off_loans": 123.45,
  "settled_default_loans": 987.65,
  "closed_default_loans": 123.45,
  "open_default_loans": 123.45,
  "is_report_empty": false,
  "has_no_defaults_and_low_principals": false,
  "paid_off_loans_in_time_12_months": 123.45,
  "paid_off_loans_in_time_all": 123.45,
  "principals_below_5000": 987.65,
  "phone_numbers": ["xyz789"],
  "system_defined_score": "abc123",
  "user_defined_score": "abc123",
  "score": "xyz789",
  "pdf_id": "xyz789",
  "pdf_url": "abc123",
  "rawData": {},
  "metadata": {},
  "manual_override": true,
  "record_status": "ACTIVE",
  "crb_analysis": CrbAnalysisType,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

CreditBureauTransactionFilterInput

Description

Filter input for querying credit bureau transactions

Fields
Input Field Description
customer_id - String Filter by customer ID
provider - CrbPlatform Filter by provider
manual_override - Boolean Filter by manual override status
record_status - VerificationRecordStatus Filter by cache freshness state
Example
{
  "customer_id": "abc123",
  "provider": "TRANSUNION",
  "manual_override": true,
  "record_status": "ACTIVE"
}

CreditBureauTransactionOffsetPaginatedResponse

Description

Offset paginated credit bureau transactions response

Fields
Field Name Description
data - [CreditBureauTransactionDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [CreditBureauTransactionDto],
  "metadata": OffsetPaginationMetadata
}

MoneyStatementAnalysisCursorPaginatedResponse

Description

Cursor paginated money statement analyses response

Fields
Field Name Description
data - [MoneyStatementAnalysisDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [MoneyStatementAnalysisDto],
  "pagination": CursorPaginationMetadata
}

MoneyStatementAnalysisDto

Description

Money statement analysis record

Fields
Field Name Description
id - ID Unique identifier
target_id - String! Target ID (prospect/customer)
target - ValidationTarget! Target type
provider_reference - String Provider reference ID
document_id - String Associated document ID
status - MoneyStatementStatus Analysis status
type - MoneyStatementType Statement type
provider - MoneyStatementChannel Provider channel
name - String Customer name
phone_number - String Primary phone number
secondary_phone_number - String Secondary phone number
email - String Email address
duration - Int Statement duration in months
statement_period - String Statement period description
agent_deposit - Float Agent deposit amount
airtime_highest - Float Highest airtime transaction
internet_bundle_highest - Float Highest internet bundle transaction
persons_received_from_total - Float Total received from persons
banks_received - Float Total received from banks
mfis_received - Float Total received from MFIs
mobile_lenders_received - Float Total received from mobile lenders
healthcare_received - Float Total received from healthcare
saccos_received - Float Total received from SACCOs
insurance_received - Float Total received from insurance
betting_received - Float Total received from betting
others_received - Float Total received from others
airtime_total - Float Total airtime spent
internet_bundle_total - Float Total internet bundle spent
total_paid_in - Float Total paid in
total_paid_in_average - Float Average total paid in
total_others - Float Total others
affordability - Float Calculated affordability
average_income - Float Average income
twelve_months_loan_price - Float 12 months loan price
gap_analysis - GapAnalysisResultGraphQL Gap analysis result
statement_source - MoneyStatementSource Source of the statement (WEBHOOK or PULL)
income - Float Calculated income (6-month projection)
airtime_category - String Airtime category
income_paid_in - Float Income from paid in (6-month projection)
income_cover - String Income cover category
jsonData - JSON Raw JSON data from provider
raw - String Base64-encoded minified raw JSON
createdAt - DateTime Record creation timestamp
updatedAt - DateTime Record update timestamp
Example
{
  "id": "4",
  "target_id": "abc123",
  "target": "LEAD",
  "provider_reference": "abc123",
  "document_id": "xyz789",
  "status": "UNKNOWN",
  "type": "MPESA",
  "provider": "SPINMOBILE",
  "name": "xyz789",
  "phone_number": "abc123",
  "secondary_phone_number": "abc123",
  "email": "xyz789",
  "duration": 987,
  "statement_period": "xyz789",
  "agent_deposit": 123.45,
  "airtime_highest": 987.65,
  "internet_bundle_highest": 123.45,
  "persons_received_from_total": 987.65,
  "banks_received": 987.65,
  "mfis_received": 123.45,
  "mobile_lenders_received": 123.45,
  "healthcare_received": 987.65,
  "saccos_received": 123.45,
  "insurance_received": 987.65,
  "betting_received": 123.45,
  "others_received": 123.45,
  "airtime_total": 123.45,
  "internet_bundle_total": 123.45,
  "total_paid_in": 123.45,
  "total_paid_in_average": 123.45,
  "total_others": 123.45,
  "affordability": 123.45,
  "average_income": 123.45,
  "twelve_months_loan_price": 123.45,
  "gap_analysis": GapAnalysisResultGraphQL,
  "statement_source": "WEBHOOK",
  "income": 987.65,
  "airtime_category": "xyz789",
  "income_paid_in": 123.45,
  "income_cover": "abc123",
  "jsonData": {},
  "raw": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

MoneyStatementAnalysisFilterInput

Description

Filter input for querying money statement analyses

Fields
Input Field Description
target_id - StringFilterInput Filter by target ID
document_id - StringFilterInput Filter by document ID
target - ValidationTargetFilterInput Filter by target type
status - MoneyStatementStatusFilterInput Filter by status
type - MoneyStatementTypeFilterInput Filter by statement type
provider - MoneyStatementChannelFilterInput Filter by provider
statement_source - MoneyStatementSourceFilterInput Filter by statement source
name - StringFilterInput Filter by customer name
phone_number - StringFilterInput Filter by phone number
email - StringFilterInput Filter by email
duration - IntFilterInput Filter by duration (months)
affordability - FloatFilterInput Filter by affordability
average_income - FloatFilterInput Filter by average income
total_paid_in - FloatFilterInput Filter by total paid in
createdAt - DateFilterInput Filter by creation date
updatedAt - DateFilterInput Filter by update date
or - [MoneyStatementAnalysisFilterInput!]
and - [MoneyStatementAnalysisFilterInput!]
Example
{
  "target_id": StringFilterInput,
  "document_id": StringFilterInput,
  "target": ValidationTargetFilterInput,
  "status": MoneyStatementStatusFilterInput,
  "type": MoneyStatementTypeFilterInput,
  "provider": MoneyStatementChannelFilterInput,
  "statement_source": MoneyStatementSourceFilterInput,
  "name": StringFilterInput,
  "phone_number": StringFilterInput,
  "email": StringFilterInput,
  "duration": IntFilterInput,
  "affordability": FloatFilterInput,
  "average_income": FloatFilterInput,
  "total_paid_in": FloatFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput,
  "or": [MoneyStatementAnalysisFilterInput],
  "and": [MoneyStatementAnalysisFilterInput]
}

MoneyStatementAnalysisOffsetPaginatedResponse

Description

Offset paginated money statement analyses response

Fields
Field Name Description
data - [MoneyStatementAnalysisDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [MoneyStatementAnalysisDto],
  "metadata": OffsetPaginationMetadata
}

MoneyStatementChannel

Description

Channel for money statement analysis

Values
Enum Value Description

SPINMOBILE

Example
"SPINMOBILE"

MoneyStatementChannelFilterInput

Example
{
  "eq": "SPINMOBILE",
  "ne": "SPINMOBILE",
  "in": ["SPINMOBILE"],
  "notIn": ["SPINMOBILE"]
}

MoneyStatementSource

Values
Enum Value Description

WEBHOOK

PULL

Example
"WEBHOOK"

MoneyStatementSourceFilterInput

Fields
Input Field Description
eq - MoneyStatementSource
ne - MoneyStatementSource
in - [MoneyStatementSource!]
notIn - [MoneyStatementSource!]
Example
{"eq": "WEBHOOK", "ne": "WEBHOOK", "in": ["WEBHOOK"], "notIn": ["WEBHOOK"]}

MoneyStatementStatus

Description

Money statement analysis status

Values
Enum Value Description

UNKNOWN

PROCESSING

FAILED

FRAUDULENT

TIMEOUT

COMPLETED

READY

Example
"UNKNOWN"

MoneyStatementStatusFilterInput

Fields
Input Field Description
eq - MoneyStatementStatus
ne - MoneyStatementStatus
in - [MoneyStatementStatus!]
notIn - [MoneyStatementStatus!]
Example
{"eq": "UNKNOWN", "ne": "UNKNOWN", "in": ["UNKNOWN"], "notIn": ["UNKNOWN"]}

MoneyStatementType

Description

Type of money statement

Values
Enum Value Description

MPESA

BANK

Example
"MPESA"

MoneyStatementTypeFilterInput

Fields
Input Field Description
eq - MoneyStatementType
ne - MoneyStatementType
in - [MoneyStatementType!]
notIn - [MoneyStatementType!]
Example
{"eq": "MPESA", "ne": "MPESA", "in": ["MPESA"], "notIn": ["MPESA"]}

Partner

AgentCategoryEnum

Values
Enum Value Description

INTERNAL_EMPLOYEE

EXTERNAL_PARTNER

Example
"INTERNAL_EMPLOYEE"

AgentPermissionsNamespace

Fields
Field Name Description
agentTypePermissions - AgentTypePermissionsObjectType! Get feature permissions for a specific agent type, optionally scoped by parent agent type. Child composite overrides are included under childPermissions.
Arguments
agentType - AgentTypeEnum!
parentAgentType - AgentTypeEnum
allAgentTypePermissions - [AgentTypePermissionsObjectType!]! Get feature permissions for all agent types. Each entry includes childPermissions for any composite overrides where this type is the parent.
permissionCatalog - PermissionCatalogType! Full catalog of available resources and actions for building a permission editor UI
setAgentTypePermissions - AgentTypePermissionsObjectType! Replace the full permission list for an agent type (admin only). Pass parentAgentType to set a composite override.
Arguments
agentType - AgentTypeEnum!
parentAgentType - AgentTypeEnum
resetAgentTypePermissions - AgentTypePermissionsObjectType! Reset permissions for an agent type back to empty.
Arguments
agentType - AgentTypeEnum!
parentAgentType - AgentTypeEnum
deleteChildPermissions - AgentTypePermissionsObjectType! Remove a child agent type permission override from its parent config. Returns the updated parent permissions.
Arguments
childAgentType - AgentTypeEnum!
parentAgentType - AgentTypeEnum!
Example
{
  "agentTypePermissions": AgentTypePermissionsObjectType,
  "allAgentTypePermissions": [
    AgentTypePermissionsObjectType
  ],
  "permissionCatalog": PermissionCatalogType,
  "setAgentTypePermissions": AgentTypePermissionsObjectType,
  "resetAgentTypePermissions": AgentTypePermissionsObjectType,
  "deleteChildPermissions": AgentTypePermissionsObjectType
}

AgentProfileFilterInput

Fields
Input Field Description
agent_profile_id - String
user_id - ID
agent_category - AgentCategoryEnum
agent_type - AgentTypeEnum
agent_status - AgentStatusEnum
kyc_status - KYCStatusEnum
is_deleted - Boolean
created_by - String
user - UserFilterInput
Example
{
  "agent_profile_id": "xyz789",
  "user_id": "4",
  "agent_category": "INTERNAL_EMPLOYEE",
  "agent_type": "SFM",
  "agent_status": "ACTIVE",
  "kyc_status": "NOT_SUBMITTED",
  "is_deleted": true,
  "created_by": "abc123",
  "user": UserFilterInput
}

AgentProfileNamespace

Fields
Field Name Description
agentProfile - AgentProfileObjectType Get agent profile by agent_profile_id
Arguments
agentProfileId - String!
agentProfileByUserId - AgentProfileObjectType Get agent profile by user_id
Arguments
userId - String!
agentProfileByFilters - AgentProfileObjectType Get agent profile by filters
Arguments
agentProfiles - [AgentProfileObjectType!]! Get all agent profiles with filters
Arguments
agentExists - Boolean! Check if agent profile exists for user
Arguments
userId - String!
agentProfilesOffset - OffsetPaginatedAgentProfiles! Get agent profiles with offset pagination
Arguments
agentProfilesCursor - CursorPaginatedAgentProfiles! Get agent profiles with cursor pagination
Arguments
updateAgentProfile - AgentProfileObjectType! Update agent profile
Arguments
agentProfileId - String!
updateAgentStatus - AgentProfileObjectType! Update agent profile status (activate, deactivate, or terminate)
Arguments
agentProfileId - String!
status - AgentStatusEnum!
reason - String
deleteAgent - Boolean! Delete agent profile (soft delete)
Arguments
agentProfileId - String!
reason - String
Example
{
  "agentProfile": AgentProfileObjectType,
  "agentProfileByUserId": AgentProfileObjectType,
  "agentProfileByFilters": AgentProfileObjectType,
  "agentProfiles": [AgentProfileObjectType],
  "agentExists": false,
  "agentProfilesOffset": OffsetPaginatedAgentProfiles,
  "agentProfilesCursor": CursorPaginatedAgentProfiles,
  "updateAgentProfile": AgentProfileObjectType,
  "updateAgentStatus": AgentProfileObjectType,
  "deleteAgent": true
}

AgentProfileObjectType

Fields
Field Name Description
_id - ID!
agent_profile_id - String!
user_id - UserObjectType
agent_category - AgentCategoryEnum!
agent_type - AgentTypeEnum!
agent_status - AgentStatusEnum!
kyc_status - KYCStatusEnum!
staff_document_ref - InternalStaffProfileObjectType
partner_document_ref - PartnerProfileObjectType
is_deleted - Boolean!
created_by - UserObjectType
createdAt - DateTime
updatedAt - DateTime
permissions - [ResourcePermissionType!]
Example
{
  "_id": "4",
  "agent_profile_id": "abc123",
  "user_id": UserObjectType,
  "agent_category": "INTERNAL_EMPLOYEE",
  "agent_type": "SFM",
  "agent_status": "ACTIVE",
  "kyc_status": "NOT_SUBMITTED",
  "staff_document_ref": InternalStaffProfileObjectType,
  "partner_document_ref": PartnerProfileObjectType,
  "is_deleted": false,
  "created_by": UserObjectType,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "permissions": [ResourcePermissionType]
}

AgentStatusEnum

Values
Enum Value Description

ACTIVE

DEACTIVATED

TERMINATED

Example
"ACTIVE"

AgentTypeEnum

Description

Types of agents that can work in a shop

Values
Enum Value Description

SFM

TRAINER

SHOP_MANAGER

PARTNER_PROMOTER

TELESALES_AGENT

INTERNAL_SHOP_ATTENDANT

OFFLINE_AGENT

ONLINE_AGENT

SUPER_AGENT

PARTNER_OWNER

EXTERNAL_SHOP_ATTENDANT

DEALER_OWNER

DEALER_AGENT

SHOP_OWNER

LEAD_GENERATION

Example
"SFM"

AgentTypePermissionsObjectType

Fields
Field Name Description
agent_type - String! The agent type these permissions apply to
parent_agent_type - String Parent agent type context, when permissions are composite (e.g. SUPER_AGENT for an ONLINE_AGENT under a super agent)
permissions - [ResourcePermissionType!]! Active permission grants for this agent type
is_customized - Boolean! True when permissions are overridden via dynamic config; false when using compiled defaults
childPermissions - [AgentTypePermissionsObjectType!] Composite permission sets for child agent types that operate under this agent type. Only populated when this is a parent type.
Example
{
  "agent_type": "abc123",
  "parent_agent_type": "xyz789",
  "permissions": [ResourcePermissionType],
  "is_customized": true,
  "childPermissions": [AgentTypePermissionsObjectType]
}

AgentWorkloadRowType

Fields
Field Name Description
_id - ID Null when the user record could not be resolved
firstName - String!
lastName - String!
email - String!
totalApplications - Int!
activeApplications - Int!
queueStateCounts - QueueStateCountsType!
isInAgentGroup - Boolean! Whether the agent belongs to the queue agent group
averageProcessingTime - Float! Average processing time for this agent in milliseconds
medianProcessingTime - Float! Median processing time for this agent in milliseconds
averageIdleTime - Float! Average time between completing one application and starting the next, in milliseconds
medianIdleTime - Float! Median time between completing one application and starting the next, in milliseconds
averageFirstTouchTime - Float! Average time between assignment and first action, in milliseconds
medianFirstTouchTime - Float! Median time between assignment and first action, in milliseconds
resubmissionCount - Int Resubmission count for this agent (SCORING queue only)
capacityUtilization - Float! Percentage of agent capacity used (based on target capacity)
callActivity - CallActivityStatsType Actual call activity for this agent from application_call_details (CREDIT_CALL queue only)
Example
{
  "_id": "4",
  "firstName": "abc123",
  "lastName": "abc123",
  "email": "xyz789",
  "totalApplications": 123,
  "activeApplications": 987,
  "queueStateCounts": QueueStateCountsType,
  "isInAgentGroup": true,
  "averageProcessingTime": 123.45,
  "medianProcessingTime": 987.65,
  "averageIdleTime": 123.45,
  "medianIdleTime": 987.65,
  "averageFirstTouchTime": 987.65,
  "medianFirstTouchTime": 987.65,
  "resubmissionCount": 987,
  "capacityUtilization": 987.65,
  "callActivity": CallActivityStatsType
}

CohortEnrollmentInput

Fields
Input Field Description
cohort_id - String!
enrolled_at - DateTime
Example
{
  "cohort_id": "xyz789",
  "enrolled_at": "2007-12-03T10:15:30Z"
}

CohortEnrollmentObjectType

Fields
Field Name Description
cohort_id - String
enrolled_at - DateTime!
Example
{
  "cohort_id": "xyz789",
  "enrolled_at": "2007-12-03T10:15:30Z"
}

CohortFilterInput

Fields
Input Field Description
cohort_id - String
cohort_name - String
cohort_type - CohortType
training_track - PartnerTrackEnum
cohort_status - CohortStatus
assigned_sfm_id - String
assigned_trainer_ids - [String!]
region - String
start_date_from - DateTime
start_date_to - DateTime
end_date_from - DateTime
end_date_to - DateTime
min_capacity - Int
max_capacity - Int
min_enrollment - Int
max_enrollment - Int
cohort_ids - [String!]
cohort_statuses - [CohortStatus!]
cohort_types - [CohortType!]
Example
{
  "cohort_id": "xyz789",
  "cohort_name": "abc123",
  "cohort_type": "AGENT_ONBOARDING",
  "training_track": "SALES",
  "cohort_status": "PLANNED",
  "assigned_sfm_id": "xyz789",
  "assigned_trainer_ids": ["xyz789"],
  "region": "abc123",
  "start_date_from": "2007-12-03T10:15:30Z",
  "start_date_to": "2007-12-03T10:15:30Z",
  "end_date_from": "2007-12-03T10:15:30Z",
  "end_date_to": "2007-12-03T10:15:30Z",
  "min_capacity": 123,
  "max_capacity": 987,
  "min_enrollment": 987,
  "max_enrollment": 987,
  "cohort_ids": ["xyz789"],
  "cohort_statuses": ["PLANNED"],
  "cohort_types": ["AGENT_ONBOARDING"]
}

CohortNamespace

Fields
Field Name Description
cohort - CohortObjectType Get cohort by ID
Arguments
id - String!
cohortByCohortId - CohortObjectType Get cohort by Cohort ID
Arguments
cohortId - String!
cohortbyFilters - CohortObjectType Get cohort by filters
Arguments
filters - CohortFilterInput
checkCohortCapacity - Boolean! Check cohort capacity availability
Arguments
cohortId - String!
checkCohortAvailableCapacity - Float! Check cohort available capacity
Arguments
cohortId - String!
cohortsOffset - OffsetPaginatedCohorts!
Arguments
filters - CohortFilterInput
regexFilters - CohortFilterInput
cohortsCursor - CursorPaginatedCohorts!
Arguments
createCohort - CohortObjectType! Create a new cohort
Arguments
updateCohort - CohortObjectType! Update cohort details
Arguments
cohortId - String!
updateCohortStatus - CohortObjectType! Update cohort status
Arguments
addAgentToCohort - CohortObjectType! Add agent to cohort
Arguments
removeAgentFromCohort - CohortObjectType! Remove agent from cohort
Arguments
assignTrainerToCohort - CohortObjectType! Assign trainer to cohort
Arguments
removeTrainerFromCohort - CohortObjectType! Remove trainer from cohort
Arguments
startCohort - CohortObjectType! Start cohort training
Arguments
cohortId - String!
reason - String
completeCohort - CohortObjectType! Complete cohort training
Arguments
cohortId - String!
reason - String
cancelCohort - CohortObjectType! Cancel cohort
Arguments
cohortId - String!
reason - String
graduateAgentFromCohort - Boolean! Graduate agent from cohort
Arguments
agentId - String!
cohortId - String!
graduationNotes - String
deleteCohort - Boolean! Delete cohort
Arguments
cohortId - String!
reason - String
Example
{
  "cohort": CohortObjectType,
  "cohortByCohortId": CohortObjectType,
  "cohortbyFilters": CohortObjectType,
  "checkCohortCapacity": false,
  "checkCohortAvailableCapacity": 123.45,
  "cohortsOffset": OffsetPaginatedCohorts,
  "cohortsCursor": CursorPaginatedCohorts,
  "createCohort": CohortObjectType,
  "updateCohort": CohortObjectType,
  "updateCohortStatus": CohortObjectType,
  "addAgentToCohort": CohortObjectType,
  "removeAgentFromCohort": CohortObjectType,
  "assignTrainerToCohort": CohortObjectType,
  "removeTrainerFromCohort": CohortObjectType,
  "startCohort": CohortObjectType,
  "completeCohort": CohortObjectType,
  "cancelCohort": CohortObjectType,
  "graduateAgentFromCohort": true,
  "deleteCohort": true
}

CohortObjectType

Fields
Field Name Description
_id - ID
id - String
cohort_id - String!
cohort_name - String
cohort_type - CohortType!
training_track - PartnerTrackEnum!
cohort_status - CohortStatus!
start_date - DateTime
end_date - DateTime
duration_weeks - Float
assigned_sfm_id - InternalStaffProfileObjectType
assigned_trainer_ids - [InternalStaffProfileObjectType!]!
enrolled_agent_ids - [AgentProfileObjectType!]!
max_capacity - Float!
current_enrollment - Float!
graduation_count - Float!
dropout_count - Float!
training_location - String
region - String
curriculum_modules - [String!]
notes - String
created_by - UserObjectType
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": "4",
  "id": "xyz789",
  "cohort_id": "abc123",
  "cohort_name": "abc123",
  "cohort_type": "AGENT_ONBOARDING",
  "training_track": "SALES",
  "cohort_status": "PLANNED",
  "start_date": "2007-12-03T10:15:30Z",
  "end_date": "2007-12-03T10:15:30Z",
  "duration_weeks": 987.65,
  "assigned_sfm_id": InternalStaffProfileObjectType,
  "assigned_trainer_ids": [
    InternalStaffProfileObjectType
  ],
  "enrolled_agent_ids": [AgentProfileObjectType],
  "max_capacity": 987.65,
  "current_enrollment": 987.65,
  "graduation_count": 987.65,
  "dropout_count": 987.65,
  "training_location": "abc123",
  "region": "abc123",
  "curriculum_modules": ["abc123"],
  "notes": "abc123",
  "created_by": UserObjectType,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

CohortStatus

Values
Enum Value Description

PLANNED

RECRUITING

IN_PROGRESS

COMPLETED

CANCELLED

Example
"PLANNED"

CohortType

Values
Enum Value Description

AGENT_ONBOARDING

MERCHANT_TRAINING

DEALER_ONBOARDING

PRODUCT_TRAINING

REFRESHER_COURSE

Example
"AGENT_ONBOARDING"

DealerNamespace

Fields
Field Name Description
createDealerOwner - PartnerProfileObjectType! Create Dealer Owner
Arguments
createDealerAgent - PartnerProfileObjectType! Create Dealer Agent
Arguments
updateDealerOwner - PartnerProfileObjectType! Update Dealer Owner
Arguments
partnerProfileId - String!
updateDealerAgent - PartnerProfileObjectType! Update Dealer Agent
Arguments
partnerProfileId - String!
dealersOffset - OffsetPaginatedPartnerProfiles! Get all Dealers with offset pagination
Arguments
dealersCursor - CursorPaginatedPartnerProfiles! Get agent profiles with cursor pagination
Arguments
Example
{
  "createDealerOwner": PartnerProfileObjectType,
  "createDealerAgent": PartnerProfileObjectType,
  "updateDealerOwner": PartnerProfileObjectType,
  "updateDealerAgent": PartnerProfileObjectType,
  "dealersOffset": OffsetPaginatedPartnerProfiles,
  "dealersCursor": CursorPaginatedPartnerProfiles
}

InternalStaffNamespace

Fields
Field Name Description
internalStaffProfile - InternalStaffProfileObjectType Get staff by ID
Arguments
staffId - String!
internalStaffProfileByFilters - InternalStaffProfileObjectType Get staff by filters
Arguments
internalStaffProfileAll - [InternalStaffProfileObjectType!] Get all staff
Arguments
internalStaffOffset - OffsetPaginatedInternalStaffProfiles!
internalStaffCursor - CursorPaginatedInternalStaffProfiles!
staffExists - Boolean! Check if staff exists by user ID
Arguments
userId - String!
createInternalStaffProfile - InternalStaffProfileObjectType! Create internal staff profile
updateInternalStaffProfile - InternalStaffProfileObjectType! Update internal staff profile
Arguments
assignStaffToShop - InternalStaffProfileObjectType! Assign staff to shop
Arguments
assignStaffToRegion - InternalStaffProfileObjectType! Assign staff to region
Arguments
updateStaffAvailability - InternalStaffProfileObjectType! Update staff availability
Arguments
removeStaffFromPartners - InternalStaffProfileObjectType! Remove partners from staff profile
Arguments
staffId - String!
partnerIds - [String!]!
removeStaffFromShop - InternalStaffProfileObjectType! Remove shop from staff profile
Arguments
staffId - String!
Example
{
  "internalStaffProfile": InternalStaffProfileObjectType,
  "internalStaffProfileByFilters": InternalStaffProfileObjectType,
  "internalStaffProfileAll": [
    InternalStaffProfileObjectType
  ],
  "internalStaffOffset": OffsetPaginatedInternalStaffProfiles,
  "internalStaffCursor": CursorPaginatedInternalStaffProfiles,
  "staffExists": false,
  "createInternalStaffProfile": InternalStaffProfileObjectType,
  "updateInternalStaffProfile": InternalStaffProfileObjectType,
  "assignStaffToShop": InternalStaffProfileObjectType,
  "assignStaffToRegion": InternalStaffProfileObjectType,
  "updateStaffAvailability": InternalStaffProfileObjectType,
  "removeStaffFromPartners": InternalStaffProfileObjectType,
  "removeStaffFromShop": InternalStaffProfileObjectType
}

InternalStaffProfileFilterInput

Fields
Input Field Description
searchTerm - String
employee_id - String
operational_role - OperationalRoleEnum
department - DepartmentEnum
employment_type - EmploymentTypeEnum
assigned_shop_id - String
assigned_region - String
reports_to_id - String
is_offline - Boolean
agent_profile_id - String
partner_profile_id - String
staff_profile_ids - [String!]
employee_ids - [String!]
operational_roles - [OperationalRoleEnum!]
departments - [DepartmentEnum!]
assigned_regions - [String!]
start_date_from - DateTime
start_date_to - DateTime
end_date_from - DateTime
end_date_to - DateTime
created_from - DateTime
created_to - DateTime
agent - AgentProfileFilterInput
Example
{
  "searchTerm": "abc123",
  "employee_id": "abc123",
  "operational_role": "SALES_FORCE_MANAGER",
  "department": "SALES",
  "employment_type": "FULL_TIME",
  "assigned_shop_id": "xyz789",
  "assigned_region": "xyz789",
  "reports_to_id": "abc123",
  "is_offline": false,
  "agent_profile_id": "xyz789",
  "partner_profile_id": "xyz789",
  "staff_profile_ids": ["xyz789"],
  "employee_ids": ["abc123"],
  "operational_roles": ["SALES_FORCE_MANAGER"],
  "departments": ["SALES"],
  "assigned_regions": ["xyz789"],
  "start_date_from": "2007-12-03T10:15:30Z",
  "start_date_to": "2007-12-03T10:15:30Z",
  "end_date_from": "2007-12-03T10:15:30Z",
  "end_date_to": "2007-12-03T10:15:30Z",
  "created_from": "2007-12-03T10:15:30Z",
  "created_to": "2007-12-03T10:15:30Z",
  "agent": AgentProfileFilterInput
}

InternalStaffProfileObjectType

Fields
Field Name Description
_id - String!
id - String
partner_profile_id - String
operational_role - OperationalRoleEnum!
department - DepartmentEnum!
employee_id - String
employment_type - EmploymentTypeEnum!
reports_to_id - PartnerProfileObjectType
team_members - [UserObjectType!]!
assigned_shop_id - PartnerProfileObjectType
assigned_region - String
assigned_territory - TerritoryType
assigned_cohorts - [CohortObjectType!]!
assigned_sfm_partners - [PartnerProfileObjectType!]!
assigned_promoter_partners - [PartnerProfileObjectType!]!
work_schedule - WorkScheduleType
is_offline - Boolean!
kyc_metadata - KYCMetadataObjectType
created_by - String
agent_profile_id - AgentProfileObjectType
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "_id": "abc123",
  "id": "xyz789",
  "partner_profile_id": "xyz789",
  "operational_role": "SALES_FORCE_MANAGER",
  "department": "SALES",
  "employee_id": "abc123",
  "employment_type": "FULL_TIME",
  "reports_to_id": PartnerProfileObjectType,
  "team_members": [UserObjectType],
  "assigned_shop_id": PartnerProfileObjectType,
  "assigned_region": "abc123",
  "assigned_territory": TerritoryType,
  "assigned_cohorts": [CohortObjectType],
  "assigned_sfm_partners": [PartnerProfileObjectType],
  "assigned_promoter_partners": [
    PartnerProfileObjectType
  ],
  "work_schedule": WorkScheduleType,
  "is_offline": false,
  "kyc_metadata": KYCMetadataObjectType,
  "created_by": "xyz789",
  "agent_profile_id": AgentProfileObjectType,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

PartnerContactPersonInput

Fields
Input Field Description
contact_first_name - String!
contact_middle_name - String
contact_surname - String!
contact_phone - String!
contact_id_number - String!
contact_email - String!
role - String
Example
{
  "contact_first_name": "xyz789",
  "contact_middle_name": "xyz789",
  "contact_surname": "xyz789",
  "contact_phone": "xyz789",
  "contact_id_number": "xyz789",
  "contact_email": "abc123",
  "role": "xyz789"
}

PartnerKycNamespace

Fields
Field Name Description
submitIndividualKYC - PartnerProfileObjectType! Submit individual KYC documents for a partner (for individuals)
Arguments
partnerId - String!
submitOrganizationKYC - PartnerProfileObjectType! Submit organization KYC documents for a partner (for organizations)
Arguments
partnerId - String!
submitStaffKYC - InternalStaffProfileObjectType! Submit KYC documents for internal staff (passport photo only)
Arguments
staffId - String!
reviewKYC - AgentProfileObjectType! Review and approve/reject KYC documents (works for both partner and staff)
Arguments
input - ReviewKYCInput!
requestPartnerKYCResubmission - AgentProfileObjectType! Request KYC resubmission from a partner
Arguments
partnerId - String!
reason - String!
reviewNotes - String
requestStaffKYCResubmission - AgentProfileObjectType! Request KYC resubmission from a staff member
Arguments
staffId - String!
reason - String!
reviewNotes - String
partnersWithPendingKYC - [AgentProfileObjectType!]! Get all partners with pending KYC review
partnersWithRejectedKYC - [AgentProfileObjectType!]! Get all partners with rejected KYC
partnersWithIncompleteKYC - [AgentProfileObjectType!]! Get all partners with incomplete KYC
partnersWithApprovedKYC - [AgentProfileObjectType!]! Get all partners with approved KYC
getStaffKYC - InternalStaffProfileObjectType Get staff KYC details by staff ID
Arguments
staffId - String!
Example
{
  "submitIndividualKYC": PartnerProfileObjectType,
  "submitOrganizationKYC": PartnerProfileObjectType,
  "submitStaffKYC": InternalStaffProfileObjectType,
  "reviewKYC": AgentProfileObjectType,
  "requestPartnerKYCResubmission": AgentProfileObjectType,
  "requestStaffKYCResubmission": AgentProfileObjectType,
  "partnersWithPendingKYC": [AgentProfileObjectType],
  "partnersWithRejectedKYC": [AgentProfileObjectType],
  "partnersWithIncompleteKYC": [AgentProfileObjectType],
  "partnersWithApprovedKYC": [AgentProfileObjectType],
  "getStaffKYC": InternalStaffProfileObjectType
}

PartnerModuleNamespace

Fields
Field Name Description
partnerProfile - PartnerProfileNamespace!
cohort - CohortNamespace!
agentProfile - AgentProfileNamespace!
internalStaff - InternalStaffNamespace!
partnerKyc - PartnerKycNamespace!
onlineAgent - OnlineAgentNamespace!
leadGeneration - LeadGenerationNamespace!
offlineAgent - OfflineAgentNamespace!
externalShop - ExternalShopNamespace!
dealer - DealerNamespace!
telesalesAgent - TelesalesAgentNamespace!
telesalesParentAgent - TelesalesParentAgentNamespace!
moShop - MoShopNamespace!
partnerOwner - PartnerOwnerNamespace!
trainer - TrainerNamespace!
sfm - SfmNamespace!
retailer - RetailerNamespace!
agentPermissions - AgentPermissionsNamespace!
Example
{
  "partnerProfile": PartnerProfileNamespace,
  "cohort": CohortNamespace,
  "agentProfile": AgentProfileNamespace,
  "internalStaff": InternalStaffNamespace,
  "partnerKyc": PartnerKycNamespace,
  "onlineAgent": OnlineAgentNamespace,
  "leadGeneration": LeadGenerationNamespace,
  "offlineAgent": OfflineAgentNamespace,
  "externalShop": ExternalShopNamespace,
  "dealer": DealerNamespace,
  "telesalesAgent": TelesalesAgentNamespace,
  "telesalesParentAgent": TelesalesParentAgentNamespace,
  "moShop": MoShopNamespace,
  "partnerOwner": PartnerOwnerNamespace,
  "trainer": TrainerNamespace,
  "sfm": SfmNamespace,
  "retailer": RetailerNamespace,
  "agentPermissions": AgentPermissionsNamespace
}

PartnerOwnerNamespace

Fields
Field Name Description
createPartnerOwner - PartnerProfileObjectType! Create Partner Owner
Arguments
createPartnerShopAttendant - PartnerProfileObjectType! Create Partner Shop Attendant
updatePartnerOwner - PartnerProfileObjectType! Update Partner Owner
Arguments
partnerProfileId - String!
updatePartnerShopAttendant - PartnerProfileObjectType! Update Partner Shop Attendant
Arguments
partnerProfileId - String!
createSellerForPartner - PartnerProfileObjectType! Create seller for partner
Arguments
partnerId - String!
partnerOwnersOffset - OffsetPaginatedPartnerProfiles! Get all Partner Owners with offset pagination
Arguments
Example
{
  "createPartnerOwner": PartnerProfileObjectType,
  "createPartnerShopAttendant": PartnerProfileObjectType,
  "updatePartnerOwner": PartnerProfileObjectType,
  "updatePartnerShopAttendant": PartnerProfileObjectType,
  "createSellerForPartner": PartnerProfileObjectType,
  "partnerOwnersOffset": OffsetPaginatedPartnerProfiles
}

PartnerProfileFilterInput

Fields
Input Field Description
searchTerm - String
partner_profile_id - String
channel_type - ChannelTypeEnum
channel_category - ChannelCategoryEnum
partner_track - PartnerTrackEnum
entity_type - EntityTypeEnum
partner_status - PartnerStatusEnum
assignment_status - AssignmentStatusEnum
kyc_status - KYCStatusEnum
training_status - TrainingStatusEnum
assigned_sfm_id - String
assigned_promoter_id - String
assigned_trainer_id - String
current_cohort_id - String
assigned_shop_id - String
reports_to_id - String
shop_based - Boolean
platform_owner - Boolean
county - String
sub_county - String
region - String
partner_profile_ids - [String!]
channel_types - [ChannelTypeEnum!]
partner_statuses - [PartnerStatusEnum!]
created_from - DateTime
created_to - DateTime
activated_from - DateTime
activated_to - DateTime
agent_profile_id - String
kyc_metadata - KYCMetadataFilterInput
shop_metadata - KYCMetadataFilterInput
agent - AgentProfileFilterInput
is_owner - Boolean
Example
{
  "searchTerm": "xyz789",
  "partner_profile_id": "xyz789",
  "channel_type": "ONLINE_AGENT",
  "channel_category": "IN_HOUSE",
  "partner_track": "SALES",
  "entity_type": "INDIVIDUAL",
  "partner_status": "PROSPECT",
  "assignment_status": "UNASSIGNED",
  "kyc_status": "NOT_SUBMITTED",
  "training_status": "NOT_REQUIRED",
  "assigned_sfm_id": "abc123",
  "assigned_promoter_id": "abc123",
  "assigned_trainer_id": "xyz789",
  "current_cohort_id": "abc123",
  "assigned_shop_id": "xyz789",
  "reports_to_id": "abc123",
  "shop_based": false,
  "platform_owner": false,
  "county": "xyz789",
  "sub_county": "xyz789",
  "region": "xyz789",
  "partner_profile_ids": ["xyz789"],
  "channel_types": ["ONLINE_AGENT"],
  "partner_statuses": ["PROSPECT"],
  "created_from": "2007-12-03T10:15:30Z",
  "created_to": "2007-12-03T10:15:30Z",
  "activated_from": "2007-12-03T10:15:30Z",
  "activated_to": "2007-12-03T10:15:30Z",
  "agent_profile_id": "xyz789",
  "kyc_metadata": KYCMetadataFilterInput,
  "shop_metadata": KYCMetadataFilterInput,
  "agent": AgentProfileFilterInput,
  "is_owner": false
}

PartnerProfileNamespace

Fields
Field Name Description
createPartnerProfile - PartnerProfileObjectType! Create a new partner profile
Arguments
updatePartnerProfile - PartnerProfileObjectType! Update partner profile
Arguments
partnerId - String!
updatePartnerStatus - PartnerProfileObjectType! Update partner status: Activate/Deactivate/Suspend/Reactivate
Arguments
deletePartnerProfile - Boolean! Delete partner profile
Arguments
partnerId - String!
reason - String
partnerProfile - PartnerProfileObjectType Get partner profile by ID
Arguments
partnerId - String!
partnerProfileByFilters - PartnerProfileObjectType Get partner profile by filters
Arguments
partnerProfiles - [PartnerProfileObjectType!]! Get all partners with filters
Arguments
directReports - [PartnerProfileObjectType!]! Get direct reports (downlines)
Arguments
partnerId - String!
allDownlines - [PartnerProfileObjectType!]! Get all downlines (recursive)
Arguments
partnerId - String!
ancestors - [PartnerProfileObjectType!]! Get partner hierarchy ancestors
Arguments
partnerId - String!
parentPartner - PartnerProfileObjectType Get parent partner
Arguments
partnerId - String!
partnerExists - Boolean! Check if partner exists by user ID
Arguments
userId - String!
partnersProfileOffset - OffsetPaginatedPartnerProfiles!
Arguments
partnersProfileCursor - CursorPaginatedPartnerProfiles!
Arguments
Example
{
  "createPartnerProfile": PartnerProfileObjectType,
  "updatePartnerProfile": PartnerProfileObjectType,
  "updatePartnerStatus": PartnerProfileObjectType,
  "deletePartnerProfile": false,
  "partnerProfile": PartnerProfileObjectType,
  "partnerProfileByFilters": PartnerProfileObjectType,
  "partnerProfiles": [PartnerProfileObjectType],
  "directReports": [PartnerProfileObjectType],
  "allDownlines": [PartnerProfileObjectType],
  "ancestors": [PartnerProfileObjectType],
  "parentPartner": PartnerProfileObjectType,
  "partnerExists": false,
  "partnersProfileOffset": OffsetPaginatedPartnerProfiles,
  "partnersProfileCursor": CursorPaginatedPartnerProfiles
}

PartnerProfileObjectType

Fields
Field Name Description
_id - ID
id - String
channel_type - ChannelTypeEnum!
channel_category - ChannelCategoryEnum!
partner_track - PartnerTrackEnum!
entity_type - EntityTypeEnum!
is_owner - Boolean!
platform_owner - Boolean!
is_active - Boolean!
is_deleted - Boolean!
owner_user_id - String
staff_user_ids - [UserObjectType!]!
reports_to_id - PartnerProfileObjectType
hierarchy_depth - Float!
hierarchy_path - [String!]!
downline_partner_ids - [String!]!
whatsapp_number - String
secondary_number - String
location_details - LocationDetailsObjectType
partner_status - PartnerStatusEnum!
assignment_status - AssignmentStatusEnum!
training_status - TrainingStatusEnum
current_cohort_id - CohortObjectType
assigned_trainer_id - String
assigned_sfm_id - String
assigned_sfm - InternalStaffProfileObjectType
assigned_promoter_id - String
assigned_promoter - InternalStaffProfileObjectType
graduation_date - DateTime
cohort_history - [CohortEnrollmentObjectType!]!
assigned_shop_id - String
shop_based - Boolean!
outlets - [RetailerOutletObjectType!]
shop_metadata - StaticShopMetadataObjectType
kyc_metadata - KYCMetadataObjectType
activation_date - DateTime
reactivation_date - DateTime
deactivation_date - DateTime
created_by - UserObjectType
agent_profile_id - AgentProfileObjectType
shop_manager_id - InternalStaffProfileObjectType
seller_id - SellerObjectType
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": 4,
  "id": "abc123",
  "channel_type": "ONLINE_AGENT",
  "channel_category": "IN_HOUSE",
  "partner_track": "SALES",
  "entity_type": "INDIVIDUAL",
  "is_owner": true,
  "platform_owner": true,
  "is_active": true,
  "is_deleted": true,
  "owner_user_id": "abc123",
  "staff_user_ids": [UserObjectType],
  "reports_to_id": PartnerProfileObjectType,
  "hierarchy_depth": 123.45,
  "hierarchy_path": ["xyz789"],
  "downline_partner_ids": ["xyz789"],
  "whatsapp_number": "abc123",
  "secondary_number": "xyz789",
  "location_details": LocationDetailsObjectType,
  "partner_status": "PROSPECT",
  "assignment_status": "UNASSIGNED",
  "training_status": "NOT_REQUIRED",
  "current_cohort_id": CohortObjectType,
  "assigned_trainer_id": "abc123",
  "assigned_sfm_id": "abc123",
  "assigned_sfm": InternalStaffProfileObjectType,
  "assigned_promoter_id": "xyz789",
  "assigned_promoter": InternalStaffProfileObjectType,
  "graduation_date": "2007-12-03T10:15:30Z",
  "cohort_history": [CohortEnrollmentObjectType],
  "assigned_shop_id": "abc123",
  "shop_based": false,
  "outlets": [RetailerOutletObjectType],
  "shop_metadata": StaticShopMetadataObjectType,
  "kyc_metadata": KYCMetadataObjectType,
  "activation_date": "2007-12-03T10:15:30Z",
  "reactivation_date": "2007-12-03T10:15:30Z",
  "deactivation_date": "2007-12-03T10:15:30Z",
  "created_by": UserObjectType,
  "agent_profile_id": AgentProfileObjectType,
  "shop_manager_id": InternalStaffProfileObjectType,
  "seller_id": SellerObjectType,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

PartnerStatusAction

Description

activate/deactivate/reactivate/suspend agent

Values
Enum Value Description

ACTIVATE

SUSPEND

REACTIVATE

DEACTIVATE

Example
"ACTIVATE"

PartnerStatusEnum

Description

Status of partner in the system

Values
Enum Value Description

PROSPECT

IN_TRAINING

ACTIVE

INACTIVE

SUSPENDED

TERMINATED

Example
"PROSPECT"

PartnerTrackEnum

Description

Partner training and onboarding tracks

Values
Enum Value Description

SALES

RECRUITMENT

HYBRID

DISTRIBUTION

RETAIL

REFERRAL

Example
"SALES"

RetailerNamespace

Fields
Field Name Description
createRetailerOrganization - PartnerProfileObjectType! Create Retailer Organization (e.g., Carrefour, Naivas)
updateRetailerOrganization - PartnerProfileObjectType! Update Retailer Organization
Arguments
retailerOrganizationId - String!
createRetailerOutlet - PartnerProfileObjectType! Create Outlet under Retailer Organization
Arguments
updateRetailerOutlet - PartnerProfileObjectType! Update Retailer Outlet
Arguments
retailerOrganizationId - String!
outletId - String!
removeRetailerOutlet - PartnerProfileObjectType! Remove Retailer Outlet (Soft Delete)
Arguments
createRetailOutletStaff - InternalStaffProfileObjectType! Create Retail Outlet Staff
Arguments
updateRetailOutletStaff - InternalStaffProfileObjectType! Update Retail Outlet Staff
Arguments
staffProfileId - String!
assignStaffToOutlet - PartnerProfileObjectType! Assign Staff to Outlet
Arguments
staffProfileId - String!
retailerOrganizationId - String!
outletId - String!
transferStaffBetweenOutlets - PartnerProfileObjectType! Transfer Staff Between Outlets
findRetailerOrganizationById - PartnerProfileObjectType! Find Retailer Organization by ID
Arguments
retailerOrganizationId - String!
findOutletsByRetailerId - [RetailerOutletObjectType!]! Find all outlets for a retailer organization
Arguments
retailerOrganizationId - String!
includeDeleted - Boolean
findOutletById - RetailerOutletObjectType! Find specific outlet by ID
Arguments
retailerOrganizationId - String!
outletId - String!
includeDeleted - Boolean
retailerOrganizationsOffset - OffsetPaginatedPartnerProfiles! Get all Retailer Organizations with offset pagination
Arguments
retailerOrganizationsCursor - CursorPaginatedPartnerProfiles! Get Retailer Organizations with cursor pagination
Arguments
Example
{
  "createRetailerOrganization": PartnerProfileObjectType,
  "updateRetailerOrganization": PartnerProfileObjectType,
  "createRetailerOutlet": PartnerProfileObjectType,
  "updateRetailerOutlet": PartnerProfileObjectType,
  "removeRetailerOutlet": PartnerProfileObjectType,
  "createRetailOutletStaff": InternalStaffProfileObjectType,
  "updateRetailOutletStaff": InternalStaffProfileObjectType,
  "assignStaffToOutlet": PartnerProfileObjectType,
  "transferStaffBetweenOutlets": PartnerProfileObjectType,
  "findRetailerOrganizationById": PartnerProfileObjectType,
  "findOutletsByRetailerId": [RetailerOutletObjectType],
  "findOutletById": RetailerOutletObjectType,
  "retailerOrganizationsOffset": OffsetPaginatedPartnerProfiles,
  "retailerOrganizationsCursor": CursorPaginatedPartnerProfiles
}

RetailerOutletInput

Fields
Input Field Description
outlet_id - String!
outlet_name - String!
location - LocationDetailsInput!
outlet_staff_user_ids - [String!]
Example
{
  "outlet_id": "abc123",
  "outlet_name": "xyz789",
  "location": LocationDetailsInput,
  "outlet_staff_user_ids": ["abc123"]
}

RetailerOutletObjectType

Fields
Field Name Description
outlet_id - String!
outlet_name - String!
location - LocationDetailsObjectType!
outlet_staff_user_ids - [String!]!
is_deleted - Boolean!
staff_details - [InternalStaffProfileObjectType!]!
Example
{
  "outlet_id": "xyz789",
  "outlet_name": "abc123",
  "location": LocationDetailsObjectType,
  "outlet_staff_user_ids": ["xyz789"],
  "is_deleted": true,
  "staff_details": [InternalStaffProfileObjectType]
}

TelesalesAgentNamespace

Fields
Field Name Description
createTelesalesAgent - InternalStaffProfileObjectType! Create Telesales Agent
Arguments
updateTelesalesAgent - InternalStaffProfileObjectType! Update Telesales Agent
Arguments
telesalesAgent - InternalStaffProfileObjectType Get Telesales Agent by ID
Arguments
agentId - String!
telesalesAgentByFilters - InternalStaffProfileObjectType Get Telesales Agent by filters
Arguments
telesalesAgents - [InternalStaffProfileObjectType!]! Get all Telesales Agents
Arguments
telesalesAgentsOffset - OffsetPaginatedInternalStaffProfiles! Get Telesales Agents with offset pagination
telesalesAgentsCursor - CursorPaginatedInternalStaffProfiles! Get Telesales Agents with cursor pagination
Example
{
  "createTelesalesAgent": InternalStaffProfileObjectType,
  "updateTelesalesAgent": InternalStaffProfileObjectType,
  "telesalesAgent": InternalStaffProfileObjectType,
  "telesalesAgentByFilters": InternalStaffProfileObjectType,
  "telesalesAgents": [InternalStaffProfileObjectType],
  "telesalesAgentsOffset": OffsetPaginatedInternalStaffProfiles,
  "telesalesAgentsCursor": CursorPaginatedInternalStaffProfiles
}

TelesalesParentAgentNamespace

Fields
Field Name Description
telesalesParentAgents - [PartnerProfileObjectType!]! Get all telesales parent agents
Arguments
telesalesParentAgentsOffset - OffsetPaginatedPartnerProfiles! Get telesales parent agents with offset pagination
telesalesParentAgentsCursor - CursorPaginatedPartnerProfiles! Get telesales parent agents with cursor pagination
telesalesAgentsByParent - [InternalStaffProfileObjectType!]! Find telesales agents by parent agent ID
Arguments
parentAgentId - String!
telesalesAgentsByParentOffset - OffsetPaginatedInternalStaffProfiles! Find telesales agents by parent with offset pagination
Arguments
telesalesAgentsByParentCursor - CursorPaginatedInternalStaffProfiles! Find telesales agents by parent with cursor pagination
Arguments
createTelesalesParentAgent - PartnerProfileObjectType! Create telesales parent agent
Arguments
agentProfileId - String!
userId - String
updateTelesalesParentAgent - PartnerProfileObjectType! Update telesales parent agent
Arguments
parentAgentId - String!
deleteTelesalesParentAgent - Boolean! Delete telesales parent agent
Arguments
parentAgentId - String!
reason - String
Example
{
  "telesalesParentAgents": [PartnerProfileObjectType],
  "telesalesParentAgentsOffset": OffsetPaginatedPartnerProfiles,
  "telesalesParentAgentsCursor": CursorPaginatedPartnerProfiles,
  "telesalesAgentsByParent": [
    InternalStaffProfileObjectType
  ],
  "telesalesAgentsByParentOffset": OffsetPaginatedInternalStaffProfiles,
  "telesalesAgentsByParentCursor": CursorPaginatedInternalStaffProfiles,
  "createTelesalesParentAgent": PartnerProfileObjectType,
  "updateTelesalesParentAgent": PartnerProfileObjectType,
  "deleteTelesalesParentAgent": true
}

TrainerNamespace

Fields
Field Name Description
createTrainer - InternalStaffProfileObjectType! Create Trainer
Arguments
updateTrainer - InternalStaffProfileObjectType! Update Trainer
Arguments
staffProfileId - String!
trainersOffset - OffsetPaginatedInternalStaffProfiles! Get all Trainers with offset pagination
Example
{
  "createTrainer": InternalStaffProfileObjectType,
  "updateTrainer": InternalStaffProfileObjectType,
  "trainersOffset": OffsetPaginatedInternalStaffProfiles
}

Territory

CountryFilterInput

Fields
Input Field Description
is_active - Boolean
is_supported - Boolean
iso_code - String
Example
{
  "is_active": true,
  "is_supported": false,
  "iso_code": "xyz789"
}

CountryObjectType

Fields
Field Name Description
_id - ID!
name - String!
iso_code - String!
dial_code - String!
currency - String!
is_active - Boolean!
is_supported - Boolean!
metadata - JSON
createdAt - DateTime
updatedAt - DateTime
country_id - [RegionObjectType!]!
Example
{
  "_id": 4,
  "name": "xyz789",
  "iso_code": "xyz789",
  "dial_code": "xyz789",
  "currency": "xyz789",
  "is_active": false,
  "is_supported": false,
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "country_id": [RegionObjectType]
}

DistrictFilterInput

Fields
Input Field Description
region_id - String
is_active - Boolean
Example
{"region_id": "abc123", "is_active": true}

DistrictObjectType

Fields
Field Name Description
_id - ID!
name - String!
region_id - ID!
region - RegionObjectType
code - String!
is_active - Boolean!
metadata - JSON
createdAt - DateTime
updatedAt - DateTime
district_id - [WardObjectType!]!
Example
{
  "_id": 4,
  "name": "abc123",
  "region_id": "4",
  "region": RegionObjectType,
  "code": "xyz789",
  "is_active": true,
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "district_id": [WardObjectType]
}

GeographyNamespace

Fields
Field Name Description
countries - [CountryObjectType!]!
Arguments
country - CountryObjectType
Arguments
id - ID!
countryByFilter - CountryObjectType
Arguments
regions - [RegionObjectType!]!
Arguments
countryId - ID
inZoneOnly - Boolean
regionByIsocode - [RegionObjectType!]! Get regions for a country by ISO code
Arguments
isoCode - String!
inZoneOnly - Boolean
region - RegionObjectType
Arguments
id - ID!
districts - [DistrictObjectType!]!
Arguments
regionId - ID!
district - DistrictObjectType
Arguments
id - ID!
wards - [WardObjectType!]!
Arguments
districtId - ID!
zones - [ZoneObjectType!]!
Arguments
filter - ZoneFilterInput
zone - ZoneObjectType
Arguments
id - ID!
zonesByCoordinates - [ZoneObjectType!]!
Arguments
lat - Float!
lng - Float!
maxDistanceKm - Float
ward - WardObjectType
Arguments
id - ID!
hierarchyPath - HierarchyPath
Arguments
wardId - ID!
tree - TerritoryTreeNode
Arguments
countryId - ID!
countriesCursor - CursorPaginatedCountries!
Arguments
filters - CountryFilterInput
regexFilters - CountryFilterInput
regionsCursor - CursorPaginatedRegions!
Arguments
filters - RegionFilterInput
regexFilters - RegionFilterInput
districtsCursor - CursorPaginatedDistricts!
Arguments
wardsCursor - CursorPaginatedWards!
Arguments
filters - WardFilterInput
regexFilters - WardFilterInput
updateRegion - RegionObjectType!
Arguments
id - ID!
updateZone - ZoneObjectType!
Arguments
id - ID!
createZone - ZoneObjectType!
Arguments
toggleRegionInZone - RegionObjectType!
Arguments
id - ID!
Example
{
  "countries": [CountryObjectType],
  "country": CountryObjectType,
  "countryByFilter": CountryObjectType,
  "regions": [RegionObjectType],
  "regionByIsocode": [RegionObjectType],
  "region": RegionObjectType,
  "districts": [DistrictObjectType],
  "district": DistrictObjectType,
  "wards": [WardObjectType],
  "zones": [ZoneObjectType],
  "zone": ZoneObjectType,
  "zonesByCoordinates": [ZoneObjectType],
  "ward": WardObjectType,
  "hierarchyPath": HierarchyPath,
  "tree": TerritoryTreeNode,
  "countriesCursor": CursorPaginatedCountries,
  "regionsCursor": CursorPaginatedRegions,
  "districtsCursor": CursorPaginatedDistricts,
  "wardsCursor": CursorPaginatedWards,
  "updateRegion": RegionObjectType,
  "updateZone": ZoneObjectType,
  "createZone": ZoneObjectType,
  "toggleRegionInZone": RegionObjectType
}

HierarchyPath

Fields
Field Name Description
country - HierarchyPathCountry!
region - HierarchyPathRegion!
district - HierarchyPathDistrict!
ward - HierarchyPathWard
zone - HierarchyPathZone
Example
{
  "country": HierarchyPathCountry,
  "region": HierarchyPathRegion,
  "district": HierarchyPathDistrict,
  "ward": HierarchyPathWard,
  "zone": HierarchyPathZone
}

HierarchyPathCountry

Fields
Field Name Description
id - ID!
name - String!
iso_code - String!
Example
{
  "id": 4,
  "name": "xyz789",
  "iso_code": "abc123"
}

HierarchyPathDistrict

Fields
Field Name Description
id - ID!
name - String!
code - String!
Example
{
  "id": "4",
  "name": "abc123",
  "code": "abc123"
}

HierarchyPathRegion

Fields
Field Name Description
id - ID!
name - String!
code - String!
Example
{
  "id": "4",
  "name": "xyz789",
  "code": "xyz789"
}

HierarchyPathWard

Fields
Field Name Description
id - ID!
name - String!
code - String!
Example
{
  "id": 4,
  "name": "xyz789",
  "code": "xyz789"
}

HierarchyPathZone

Fields
Field Name Description
id - ID!
name - String!
Example
{"id": 4, "name": "xyz789"}

RegionFilterInput

Fields
Input Field Description
country_id - String
is_active - Boolean
is_in_zone - Boolean
Example
{
  "country_id": "xyz789",
  "is_active": true,
  "is_in_zone": false
}

RegionObjectType

Fields
Field Name Description
_id - ID!
name - String!
country_id - ID!
country - CountryObjectType
code - String!
is_active - Boolean!
is_in_zone - Boolean!
metadata - JSON
createdAt - DateTime
updatedAt - DateTime
region_id - [DistrictObjectType!]!
Example
{
  "_id": "4",
  "name": "xyz789",
  "country_id": "4",
  "country": CountryObjectType,
  "code": "abc123",
  "is_active": true,
  "is_in_zone": true,
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "region_id": [DistrictObjectType]
}

TerritoryAssignmentFilterInput

Fields
Input Field Description
entity_type - EntityType
territory_id - ID
entity_id - String
is_active - Boolean
start_date - String
end_date - String
unassignment_reason - String
Example
{
  "entity_type": "AGENT",
  "territory_id": "4",
  "entity_id": "xyz789",
  "is_active": false,
  "start_date": "xyz789",
  "end_date": "abc123",
  "unassignment_reason": "xyz789"
}

TerritoryAssignmentNamespace

Fields
Field Name Description
entityTerritories - [TerritoryAssignmentObjectType!]!
Arguments
entityId - String!
entityType - EntityType!
territoryEntities - [TerritoryAssignmentObjectType!]!
Arguments
territoryId - ID!
entityType - EntityType
history - [TerritoryAssignmentObjectType!]!
Arguments
entityId - String!
entityType - EntityType!
list - [TerritoryAssignmentObjectType!]!
Arguments
assign - TerritoryAssignmentObjectType!
Arguments
unassign - TerritoryAssignmentObjectType!
Arguments
transfer - TerritoryTransferResultType!
Arguments
Example
{
  "entityTerritories": [TerritoryAssignmentObjectType],
  "territoryEntities": [TerritoryAssignmentObjectType],
  "history": [TerritoryAssignmentObjectType],
  "list": [TerritoryAssignmentObjectType],
  "assign": TerritoryAssignmentObjectType,
  "unassign": TerritoryAssignmentObjectType,
  "transfer": TerritoryTransferResultType
}

TerritoryAssignmentObjectType

Fields
Field Name Description
_id - ID!
entity_id - String!
entity_type - EntityType!
territory_id - ID!
assigned_at - DateTime!
unassigned_at - DateTime
is_active - Boolean!
unassignment_reason - String
assigned_by - String
unassigned_by - String
metadata - JSON
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": "4",
  "entity_id": "abc123",
  "entity_type": "AGENT",
  "territory_id": 4,
  "assigned_at": "2007-12-03T10:15:30Z",
  "unassigned_at": "2007-12-03T10:15:30Z",
  "is_active": false,
  "unassignment_reason": "abc123",
  "assigned_by": "abc123",
  "unassigned_by": "xyz789",
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

TerritoryCoverageNamespace

Fields
Field Name Description
forTerritory - [TerritoryCoverageObjectType!]!
Arguments
territoryId - ID!
flagged - [TerritoryCoverageObjectType!]!
gaps - [TerritoryCoverageObjectType!]!
overlaps - [TerritoryCoverageObjectType!]!
resolve - TerritoryCoverageObjectType!
Arguments
coverageId - ID!
Example
{
  "forTerritory": [TerritoryCoverageObjectType],
  "flagged": [TerritoryCoverageObjectType],
  "gaps": [TerritoryCoverageObjectType],
  "overlaps": [TerritoryCoverageObjectType],
  "resolve": TerritoryCoverageObjectType
}

TerritoryCoverageObjectType

Fields
Field Name Description
_id - ID!
zone_id - ID!
zone - ZoneObjectType
territory_id - ID
territory - TerritoryObjectType
coverage_type - CoverageType!
entity_count - Int!
is_flagged - Boolean!
flag_reason - String
flagged_at - DateTime
resolved_at - DateTime
resolved_by - String
metadata - JSON
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": 4,
  "zone_id": 4,
  "zone": ZoneObjectType,
  "territory_id": "4",
  "territory": TerritoryObjectType,
  "coverage_type": "EXCLUSIVE",
  "entity_count": 987,
  "is_flagged": true,
  "flag_reason": "abc123",
  "flagged_at": "2007-12-03T10:15:30Z",
  "resolved_at": "2007-12-03T10:15:30Z",
  "resolved_by": "abc123",
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

TerritoryFilterInput

Fields
Input Field Description
level - TerritoryLevel
region_id - ID
created_by - String
is_active - Boolean
Example
{
  "level": "COUNTRY",
  "region_id": "4",
  "created_by": "xyz789",
  "is_active": false
}

TerritoryInput

Fields
Input Field Description
counties - [String!]
sub_counties - [String!]
coverage_area - String!
Example
{
  "counties": ["abc123"],
  "sub_counties": ["abc123"],
  "coverage_area": "abc123"
}

TerritoryLevel

Description

Territory hierarchical levels

Values
Enum Value Description

COUNTRY

REGION

DISTRICT

WARD

ZONE

Example
"COUNTRY"

TerritoryModuleNamespace

Fields
Field Name Description
geography - GeographyNamespace!
territory - TerritoryNamespace!
territoryAssignment - TerritoryAssignmentNamespace!
territoryCoverage - TerritoryCoverageNamespace!
Example
{
  "geography": GeographyNamespace,
  "territory": TerritoryNamespace,
  "territoryAssignment": TerritoryAssignmentNamespace,
  "territoryCoverage": TerritoryCoverageNamespace
}

TerritoryNamespace

Fields
Field Name Description
list - [TerritoryObjectType!]!
Arguments
get - TerritoryObjectType
Arguments
id - ID!
byRegion - [TerritoryObjectType!]!
Arguments
regionId - ID!
byLevel - [TerritoryObjectType!]!
Arguments
level - TerritoryLevel!
create - TerritoryObjectType!
Arguments
update - TerritoryObjectType!
Arguments
id - ID!
deactivate - TerritoryObjectType!
Arguments
id - ID!
addWards - TerritoryObjectType!
Arguments
id - ID!
wardIds - [ID!]!
removeWards - TerritoryObjectType!
Arguments
id - ID!
wardIds - [ID!]!
addZones - TerritoryObjectType!
Arguments
id - ID!
zoneIds - [ID!]!
removeZones - TerritoryObjectType!
Arguments
id - ID!
zoneIds - [ID!]!
Example
{
  "list": [TerritoryObjectType],
  "get": TerritoryObjectType,
  "byRegion": [TerritoryObjectType],
  "byLevel": [TerritoryObjectType],
  "create": TerritoryObjectType,
  "update": TerritoryObjectType,
  "deactivate": TerritoryObjectType,
  "addWards": TerritoryObjectType,
  "removeWards": TerritoryObjectType,
  "addZones": TerritoryObjectType,
  "removeZones": TerritoryObjectType
}

TerritoryObjectType

Fields
Field Name Description
_id - ID!
name - String!
description - String
level - TerritoryLevel!
ward_ids - [WardObjectType!]!
zone_ids - [ZoneObjectType!]!
region_id - RegionObjectType
is_active - Boolean!
created_by - String!
updated_by - String
metadata - JSON
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": 4,
  "name": "abc123",
  "description": "abc123",
  "level": "COUNTRY",
  "ward_ids": [WardObjectType],
  "zone_ids": [ZoneObjectType],
  "region_id": RegionObjectType,
  "is_active": true,
  "created_by": "abc123",
  "updated_by": "xyz789",
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

TerritoryTransferResultType

Fields
Field Name Description
oldAssignment - TerritoryAssignmentObjectType!
newAssignment - TerritoryAssignmentObjectType!
Example
{
  "oldAssignment": TerritoryAssignmentObjectType,
  "newAssignment": TerritoryAssignmentObjectType
}

TerritoryTreeNode

Fields
Field Name Description
id - ID!
name - String!
code - String
type - String!
children - [TerritoryTreeNode!]
Example
{
  "id": "4",
  "name": "xyz789",
  "code": "xyz789",
  "type": "xyz789",
  "children": [TerritoryTreeNode]
}

TerritoryType

Fields
Field Name Description
counties - [String!]!
sub_counties - [String!]
coverage_area - String!
Example
{
  "counties": ["xyz789"],
  "sub_counties": ["abc123"],
  "coverage_area": "xyz789"
}

WardFilterInput

Fields
Input Field Description
district_id - String
is_active - Boolean
Example
{"district_id": "abc123", "is_active": true}

WardObjectType

Fields
Field Name Description
_id - ID!
name - String!
district_id - ID!
district - DistrictObjectType
code - String!
is_active - Boolean!
metadata - JSON
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": "4",
  "name": "xyz789",
  "district_id": "4",
  "district": DistrictObjectType,
  "code": "xyz789",
  "is_active": true,
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ZoneFilterInput

Fields
Input Field Description
ward_id - ID
district_id - ID
is_active - Boolean
created_by - String
Example
{
  "ward_id": "4",
  "district_id": 4,
  "is_active": true,
  "created_by": "xyz789"
}

ZoneObjectType

Fields
Field Name Description
_id - ID!
name - String!
ward_id - ID
district_id - ID
lat - Float
lng - Float
radius_km - Float
polygon - JSON
is_active - Boolean!
metadata - JSON
created_by - String
updated_by - String
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": 4,
  "name": "abc123",
  "ward_id": "4",
  "district_id": 4,
  "lat": 987.65,
  "lng": 987.65,
  "radius_km": 987.65,
  "polygon": {},
  "is_active": false,
  "metadata": {},
  "created_by": "abc123",
  "updated_by": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

Auth

AuthResponse

Fields
Field Name Description
access_token - String!
refresh_token - String!
expires_in - Int!
refresh_expires_in - Int!
token_type - String!
user - UserObjectType
customer - RawCustomersDto
Example
{
  "access_token": "xyz789",
  "refresh_token": "abc123",
  "expires_in": 987,
  "refresh_expires_in": 123,
  "token_type": "abc123",
  "user": UserObjectType,
  "customer": RawCustomersDto
}

GroupFilterInput

Fields
Input Field Description
name - String
realm - String
parent_id - String
level - Int
is_active - Boolean
keycloak_id - String
path - String
Example
{
  "name": "xyz789",
  "realm": "xyz789",
  "parent_id": "abc123",
  "level": 123,
  "is_active": true,
  "keycloak_id": "abc123",
  "path": "abc123"
}

GroupListResponse

Fields
Field Name Description
groups - [GroupObjectType!]!
total - Int!
realm - String
Example
{
  "groups": [GroupObjectType],
  "total": 123,
  "realm": "xyz789"
}

GroupMembershipInput

Fields
Input Field Description
groupId - String!
userKeycloakId - String!
realm - String
Example
{
  "groupId": "xyz789",
  "userKeycloakId": "xyz789",
  "realm": "xyz789"
}

GroupMembershipResponse

Fields
Field Name Description
success - Boolean!
message - String
group - GroupObjectType
Example
{
  "success": true,
  "message": "abc123",
  "group": GroupObjectType
}

GroupObjectType

Fields
Field Name Description
_id - String!
keycloak_id - String
name - String!
realm - String!
path - String
description - String
attributes - JSONObject
parent_id - String
children - [String!]!
level - Int!
member_keycloak_ids - [String!]!
member_count - Int!
synced_at - DateTime
is_active - Boolean!
created_at - DateTime
updated_at - DateTime
parent - GroupObjectType
childrenDetails - [GroupObjectType!]
Example
{
  "_id": "xyz789",
  "keycloak_id": "abc123",
  "name": "abc123",
  "realm": "xyz789",
  "path": "xyz789",
  "description": "xyz789",
  "attributes": {},
  "parent_id": "xyz789",
  "children": ["abc123"],
  "level": 123,
  "member_keycloak_ids": ["abc123"],
  "member_count": 987,
  "synced_at": "2007-12-03T10:15:30Z",
  "is_active": false,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "parent": GroupObjectType,
  "childrenDetails": [GroupObjectType]
}

GroupTreeResponse

Fields
Field Name Description
roots - [GroupObjectType!]!
totalGroups - Int!
realm - String!
Example
{
  "roots": [GroupObjectType],
  "totalGroups": 987,
  "realm": "xyz789"
}

RoleFilterInput

Fields
Input Field Description
name - String
realm - String
minLevel - Int
maxLevel - Int
Example
{
  "name": "abc123",
  "realm": "xyz789",
  "minLevel": 987,
  "maxLevel": 987
}

RoleObjectType

Fields
Field Name Description
_id - String
id - String
name - String!
level - Int!
permissions - [String!]!
description - String
canManage - [String!]
realm - String
Example
{
  "_id": "xyz789",
  "id": "xyz789",
  "name": "abc123",
  "level": 987,
  "permissions": ["abc123"],
  "description": "abc123",
  "canManage": ["xyz789"],
  "realm": "xyz789"
}

UserAvailabilityStatusEnum

Description

Current availability / shift status of a user

Values
Enum Value Description

AVAILABLE

UNAVAILABLE

ON_LEAVE

OFF_SHIFT

Example
"AVAILABLE"

UserFilterInput

Fields
Input Field Description
user_id - String
keycloak_id - String
username - String
role - String
phone_number - String
email - String
first_name - String
surname - String
last_name - String
user_type - UserTypeEnum
availability_status - UserAvailabilityStatusEnum
enabled - Boolean
is_internal - Boolean
created_after - DateTime
created_before - DateTime
group_memberships - StringFilterInput Filter by group memberships
and - [UserFilterInput!] All conditions must match
or - [UserFilterInput!] At least one condition must match
Example
{
  "user_id": "abc123",
  "keycloak_id": "xyz789",
  "username": "xyz789",
  "role": "xyz789",
  "phone_number": "abc123",
  "email": "abc123",
  "first_name": "abc123",
  "surname": "abc123",
  "last_name": "abc123",
  "user_type": "SYSTEM_ADMIN",
  "availability_status": "AVAILABLE",
  "enabled": false,
  "is_internal": false,
  "created_after": "2007-12-03T10:15:30Z",
  "created_before": "2007-12-03T10:15:30Z",
  "group_memberships": StringFilterInput,
  "and": [UserFilterInput],
  "or": [UserFilterInput]
}

UserObjectType

Fields
Field Name Description
_id - ID!
id - String!
keycloak_id - String!
username - String!
email - String!
first_name - String
surname - String
last_name - String
phone_number - String
role - String
enabled - Boolean!
user_type - UserTypeEnum!
is_internal - Boolean!
first_login - DateTime
last_login - DateTime
availability_status - UserAvailabilityStatusEnum
synced_at - DateTime
group_memberships - [String!]
permissions - [String!]
created_at - DateTime!
updated_at - DateTime!
Example
{
  "_id": "4",
  "id": "abc123",
  "keycloak_id": "abc123",
  "username": "xyz789",
  "email": "abc123",
  "first_name": "abc123",
  "surname": "xyz789",
  "last_name": "abc123",
  "phone_number": "abc123",
  "role": "abc123",
  "enabled": false,
  "user_type": "SYSTEM_ADMIN",
  "is_internal": true,
  "first_login": "2007-12-03T10:15:30Z",
  "last_login": "2007-12-03T10:15:30Z",
  "availability_status": "AVAILABLE",
  "synced_at": "2007-12-03T10:15:30Z",
  "group_memberships": ["xyz789"],
  "permissions": ["abc123"],
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

UserRefInput

Fields
Input Field Description
user_id - String
create_user - CreateSimpleUserInput
Example
{
  "user_id": "xyz789",
  "create_user": CreateSimpleUserInput
}

UserRoleConfigValueResponse

Fields
Field Name Description
key - String!
value - JSON
scope - String!
userId - String
roleId - String
clientId - String
Example
{
  "key": "abc123",
  "value": {},
  "scope": "abc123",
  "userId": "abc123",
  "roleId": "abc123",
  "clientId": "xyz789"
}

UserRoleConfigsNamespace

Fields
Field Name Description
value - UserRoleConfigValueResponse! Get a config value using the user→role→client→system fallback chain. User is always the current authenticated user.
Arguments
myConfigs - [ConfigType!]! Get all configs belonging to the current authenticated user
roleConfigs - [ConfigType!]! Get all configs for a role
Arguments
roleId - ID!
setMyConfig - ConfigType! Create or update a config for the current authenticated user. user_id is always derived from the auth token.
Arguments
setRoleConfig - ConfigType! Create or update a role-scoped config
Arguments
deleteMyConfig - Boolean! Delete a config key for the current authenticated user
Arguments
key - String!
deleteRoleConfig - Boolean! Delete a role-scoped config by key
Arguments
key - String!
roleId - ID!
Example
{
  "value": UserRoleConfigValueResponse,
  "myConfigs": [ConfigType],
  "roleConfigs": [ConfigType],
  "setMyConfig": ConfigType,
  "setRoleConfig": ConfigType,
  "deleteMyConfig": false,
  "deleteRoleConfig": true
}

UserTypeEnum

Values
Enum Value Description

SYSTEM_ADMIN

INTERNAL_STAFF

EXTERNAL_PARTNER

CUSTOMER

SUPPLIER

VENDOR

Example
"SYSTEM_ADMIN"

Config

ConfigCategory

Description

Configuration category

Values
Enum Value Description

GENERAL

DEMO

FEATURE

LIMIT

SALE_APP

RIDER_APP

PAYMENT

LOAN

SCORING

COMMISSION

PRICING

DEVICE

INVENTORY

AGENT

CUSTOMER

ONBOARDING

CREDIT

NOTIFICATION

TEMPLATE

INTEGRATION

VERIFICATION

WORKFLOW

COLLECTION

COMPLIANCE

REPORTING

MONITORING

SECURITY

FRAUD

RISK

Example
"GENERAL"

ConfigCategoryFilterInput

Fields
Input Field Description
eq - ConfigCategory
ne - ConfigCategory
in - [ConfigCategory!]
notIn - [ConfigCategory!]
Example
{"eq": "GENERAL", "ne": "GENERAL", "in": ["GENERAL"], "notIn": ["GENERAL"]}

ConfigCursorPaginatedResponse

Description

Cursor paginated configs response

Fields
Field Name Description
data - [ConfigType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ConfigType],
  "pagination": CursorPaginationMetadata
}

ConfigDeleteResponse

Description

Config delete response

Fields
Field Name Description
success - Boolean!
message - String!
key - String!
scope - String!
clientId - String
Example
{
  "success": false,
  "message": "xyz789",
  "key": "abc123",
  "scope": "abc123",
  "clientId": "xyz789"
}

ConfigExistsResponse

Description

Config exists check response

Fields
Field Name Description
key - String!
exists - Boolean!
scope - String!
clientId - String
Example
{
  "key": "abc123",
  "exists": false,
  "scope": "abc123",
  "clientId": "xyz789"
}

ConfigFilterInput

Description

Config filter input for queries

Fields
Input Field Description
key - StringFilterInput
category - ConfigCategoryFilterInput
scope - ConfigScopeFilterInput
client_id - StringFilterInput
platform - ConfigPlatformFilterInput
status - ConfigStatusFilterInput
value_type - ConfigValueTypeFilterInput
is_versioned - BooleanFilterInput
is_ui_hidden - BooleanFilterInput
createdAt - DateFilterInput
updatedAt - DateFilterInput
or - [ConfigFilterInput!]
and - [ConfigFilterInput!]
Example
{
  "key": StringFilterInput,
  "category": ConfigCategoryFilterInput,
  "scope": ConfigScopeFilterInput,
  "client_id": StringFilterInput,
  "platform": ConfigPlatformFilterInput,
  "status": ConfigStatusFilterInput,
  "value_type": ConfigValueTypeFilterInput,
  "is_versioned": BooleanFilterInput,
  "is_ui_hidden": BooleanFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput,
  "or": [ConfigFilterInput],
  "and": [ConfigFilterInput]
}

ConfigModuleNamespace

Fields
Field Name Description
configs - ConfigsNamespace!
userRoleConfigs - UserRoleConfigsNamespace!
sharedResources - SharedResourcesNamespace!
Example
{
  "configs": ConfigsNamespace,
  "userRoleConfigs": UserRoleConfigsNamespace,
  "sharedResources": SharedResourcesNamespace
}

ConfigMutationResponse

Description

Config mutation response

Fields
Field Name Description
success - Boolean!
message - String!
data - ConfigType
Example
{
  "success": false,
  "message": "xyz789",
  "data": ConfigType
}

ConfigOffsetPaginatedResponse

Description

Offset paginated configs response

Fields
Field Name Description
data - [ConfigType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ConfigType],
  "metadata": OffsetPaginationMetadata
}

ConfigPlatformEnum

Description

Target platform for config

Values
Enum Value Description

ALL

IOS

ANDROID

Example
"ALL"

ConfigPlatformFilterInput

Fields
Input Field Description
eq - ConfigPlatformEnum
ne - ConfigPlatformEnum
in - [ConfigPlatformEnum!]
notIn - [ConfigPlatformEnum!]
Example
{"eq": "ALL", "ne": "ALL", "in": ["ALL"], "notIn": ["ALL"]}

ConfigScopeFilterInput

Fields
Input Field Description
eq - ConfigSystemEnum
ne - ConfigSystemEnum
in - [ConfigSystemEnum!]
notIn - [ConfigSystemEnum!]
Example
{"eq": "SYSTEM", "ne": "SYSTEM", "in": ["SYSTEM"], "notIn": ["SYSTEM"]}

ConfigStatusEnum

Description

Config version status

Values
Enum Value Description

DRAFT

PUBLISHED

ARCHIVED

Example
"DRAFT"

ConfigStatusFilterInput

Fields
Input Field Description
eq - ConfigStatusEnum
ne - ConfigStatusEnum
in - [ConfigStatusEnum!]
notIn - [ConfigStatusEnum!]
Example
{"eq": "DRAFT", "ne": "DRAFT", "in": ["DRAFT"], "notIn": ["DRAFT"]}

ConfigSystemEnum

Description

Configuration scope (system or client)

Values
Enum Value Description

SYSTEM

CLIENT

ROLE

USER

Example
"SYSTEM"

ConfigSystemType

Description

Configuration value type

Values
Enum Value Description

STRING

NUMBER

BOOLEAN

JSON

ARRAY

OBJECT

TEMPLATE

ENUM

Example
"STRING"

ConfigType

Description

Configuration record

Fields
Field Name Description
_id - ID!
key - String!
value - JSON!
options - [String!]
scope - ConfigSystemEnum!
client_id - ID
value_type - ConfigSystemType!
description - String
category - ConfigCategory!
is_active - Boolean!
is_encrypted - Boolean!
is_versioned - Boolean!
is_protected - Boolean!
is_ui_hidden - Boolean! When true, this config is hidden from the config editor UI
requires_validation - Boolean! Whether the config value should be validated against its JSON schema. Defaults to true.
value_schema - JSON JSON Schema for validating the config value
ui_hints - JSON UI rendering hints for the config editor (e.g. component type)
updated_by - String
platform - ConfigPlatformEnum
version - Int
status - ConfigStatusEnum
published_at - DateTime
published_by - String
parent_version_id - ID Reference to parent version for version tracking
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": "4",
  "key": "abc123",
  "value": {},
  "options": ["abc123"],
  "scope": "SYSTEM",
  "client_id": "4",
  "value_type": "STRING",
  "description": "xyz789",
  "category": "GENERAL",
  "is_active": true,
  "is_encrypted": true,
  "is_versioned": true,
  "is_protected": true,
  "is_ui_hidden": false,
  "requires_validation": false,
  "value_schema": {},
  "ui_hints": {},
  "updated_by": "abc123",
  "platform": "ALL",
  "version": 123,
  "status": "DRAFT",
  "published_at": "2007-12-03T10:15:30Z",
  "published_by": "xyz789",
  "parent_version_id": 4,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ConfigUpdatePayload

Description

Config update payload for subscriptions

Fields
Field Name Description
key - String! Config key
value - JSON! Config value
category - String Config category
clientId - String Client/tenant ID
timestamp - DateTime! Timestamp of the update
Example
{
  "key": "abc123",
  "value": {},
  "category": "abc123",
  "clientId": "xyz789",
  "timestamp": "2007-12-03T10:15:30Z"
}

ConfigValueResponse

Description

Config value response

Fields
Field Name Description
key - String!
value - JSON
scope - String!
clientId - String
Example
{
  "key": "abc123",
  "value": {},
  "scope": "abc123",
  "clientId": "xyz789"
}

ConfigValueTypeFilterInput

Fields
Input Field Description
eq - ConfigSystemType
ne - ConfigSystemType
in - [ConfigSystemType!]
notIn - [ConfigSystemType!]
Example
{"eq": "STRING", "ne": "STRING", "in": ["STRING"], "notIn": ["STRING"]}

ConfigVersionHistory

Description

Config version history entry

Fields
Field Name Description
version - Int!
value - JSON!
status - ConfigStatusEnum!
published_at - DateTime
published_by - String
createdAt - DateTime!
Example
{
  "version": 987,
  "value": {},
  "status": "DRAFT",
  "published_at": "2007-12-03T10:15:30Z",
  "published_by": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z"
}

ConfigWithHistory

Description

Config with version history

Fields
Field Name Description
key - String!
client_id - String
platform - ConfigPlatformEnum!
current - ConfigType
draft - ConfigType
history - [ConfigVersionHistory!]!
Example
{
  "key": "xyz789",
  "client_id": "xyz789",
  "platform": "ALL",
  "current": ConfigType,
  "draft": ConfigType,
  "history": [ConfigVersionHistory]
}

ConfigsNamespace

Fields
Field Name Description
byId - ConfigType Get config by ID
Arguments
id - ID!
byFilters - ConfigType Get config by filters
Arguments
filters - ConfigFilterInput!
count - Float! Count configs matching filters
Arguments
filters - ConfigFilterInput
value - ConfigValueResponse! Get config value by key
Arguments
key - String!
clientId - String
exists - ConfigExistsResponse! Check if config key exists
Arguments
key - String!
clientId - String
offsetPaginated - ConfigOffsetPaginatedResponse! Get configs with offset pagination
Arguments
cursorPaginated - ConfigCursorPaginatedResponse! Get configs with cursor pagination
Arguments
clientConfigs - JSON! Get all configs for a client
Arguments
clientId - String!
byCategory - JSON! Get configs by category
Arguments
category - String!
clientId - String
inventory - InventoryUiConfigType! Get typed inventory UI configs from category inventory
Arguments
clientId - String
featureFlags - JSON! Get all feature flags
Arguments
clientId - String
isFeatureEnabled - FeatureStatusResponse! Check if a feature flag is enabled
Arguments
feature - String!
clientId - String
withHistory - ConfigWithHistory Get config with version history
Arguments
key - String!
clientId - String
platform - ConfigPlatformEnum
create - ConfigType! Create a new config
Arguments
updateById - ConfigType! Update config by ID
Arguments
id - ID!
updateMany - Int! Update multiple configs matching filters
Arguments
deleteById - Boolean! Delete config by ID
Arguments
id - ID!
deleteMany - Int! Delete multiple configs matching filters
Arguments
filters - ConfigFilterInput!
bulkCreate - BulkConfigMutationResponse! Bulk create configs (max 100)
Arguments
delete - ConfigDeleteResponse! Delete config by key
Arguments
key - String!
clientId - String
publish - ConfigMutationResponse! Publish a versioned config
Arguments
rollback - ConfigMutationResponse! Rollback a versioned config
Arguments
clearCache - CacheCleared! Clear the config cache
Example
{
  "byId": ConfigType,
  "byFilters": ConfigType,
  "count": 123.45,
  "value": ConfigValueResponse,
  "exists": ConfigExistsResponse,
  "offsetPaginated": ConfigOffsetPaginatedResponse,
  "cursorPaginated": ConfigCursorPaginatedResponse,
  "clientConfigs": {},
  "byCategory": {},
  "inventory": InventoryUiConfigType,
  "featureFlags": {},
  "isFeatureEnabled": FeatureStatusResponse,
  "withHistory": ConfigWithHistory,
  "create": ConfigType,
  "updateById": ConfigType,
  "updateMany": 123,
  "deleteById": true,
  "deleteMany": 123,
  "bulkCreate": BulkConfigMutationResponse,
  "delete": ConfigDeleteResponse,
  "publish": ConfigMutationResponse,
  "rollback": ConfigMutationResponse,
  "clearCache": CacheCleared
}

FeatureStatusResponse

Description

Feature status response

Fields
Field Name Description
feature - String!
enabled - Boolean!
clientId - String
Example
{
  "feature": "xyz789",
  "enabled": true,
  "clientId": "xyz789"
}

GateStatusPayload

Description

Gate status payload for subscriptions

Fields
Field Name Description
gate - String! Gate name
status - String! Gate status
message - String Gate message
timestamp - DateTime! Timestamp of the update
Example
{
  "gate": "xyz789",
  "status": "xyz789",
  "message": "xyz789",
  "timestamp": "2007-12-03T10:15:30Z"
}

SharedResourceFilterInput

Fields
Input Field Description
_id - StringFilterInput
name - StringFilterInput
key - StringFilterInput
owner_user_id - StringFilterInput
client_id - StringFilterInput
resource_type - StringFilterInput
createdAt - DateFilterInput
updatedAt - DateFilterInput
view_config - ViewConfigFilterInput
or - [SharedResourceFilterInput!]
and - [SharedResourceFilterInput!]
Example
{
  "_id": StringFilterInput,
  "name": StringFilterInput,
  "key": StringFilterInput,
  "owner_user_id": StringFilterInput,
  "client_id": StringFilterInput,
  "resource_type": StringFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput,
  "view_config": ViewConfigFilterInput,
  "or": [SharedResourceFilterInput],
  "and": [SharedResourceFilterInput]
}

SharedResourceObjectType

Fields
Field Name Description
_id - ID!
resource_type - ShareResourceTypeEnum!
name - String!
key - String
description - String
owner_user_id - String!
client_id - String
is_public - Boolean!
shared_with_user_ids - [String!]!
shared_with_roles - [String!]!
view_config - ViewConfigObjectType
owner - UserObjectType
shared_with_users - [UserObjectType!]
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "_id": 4,
  "resource_type": "VIEW",
  "name": "abc123",
  "key": "xyz789",
  "description": "abc123",
  "owner_user_id": "abc123",
  "client_id": "xyz789",
  "is_public": false,
  "shared_with_user_ids": ["xyz789"],
  "shared_with_roles": ["xyz789"],
  "view_config": ViewConfigObjectType,
  "owner": UserObjectType,
  "shared_with_users": [UserObjectType],
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

SharedResourcesNamespace

Fields
Field Name Description
mySharedResources - OffsetPaginatedSharedResources!
Arguments
sharedWithMe - OffsetPaginatedSharedResources!
Arguments
sharedResource - SharedResourceObjectType
Arguments
id - ID!
sharedResourcesByKey - [SharedResourceObjectType!]!
Arguments
key - String!
clientId - String
createSharedResource - SharedResourceObjectType!
Arguments
updateSharedResource - SharedResourceObjectType!
Arguments
deleteSharedResource - Boolean!
Arguments
id - ID!
addUsersToSharedResource - SharedResourceObjectType!
Arguments
id - ID!
userIds - [ID!]!
Example
{
  "mySharedResources": OffsetPaginatedSharedResources,
  "sharedWithMe": OffsetPaginatedSharedResources,
  "sharedResource": SharedResourceObjectType,
  "sharedResourcesByKey": [SharedResourceObjectType],
  "createSharedResource": SharedResourceObjectType,
  "updateSharedResource": SharedResourceObjectType,
  "deleteSharedResource": true,
  "addUsersToSharedResource": SharedResourceObjectType
}

Communication

CommunicationFilterInput

Example
{
  "_id": StringFilterInput,
  "userId": StringFilterInput,
  "channel": NotificationChannelFilterInput,
  "status": NotificationStatusFilterInput,
  "type": NotificationTypeFilterInput,
  "campaignId": StringFilterInput,
  "campaignName": StringFilterInput,
  "tags": StringFilterInput,
  "queueName": StringFilterInput,
  "retryCount": IntFilterInput,
  "priority": IntFilterInput,
  "delivery": DeliveryInfoFilterInput,
  "smsData": SmsDataFilterInput,
  "scheduledFor": DateFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput,
  "or": [CommunicationFilterInput],
  "and": [CommunicationFilterInput]
}

CommunicationModuleNamespace

Fields
Field Name Description
communication - CommunicationObjectType
Arguments
id - ID!
communicationsOffset - OffsetPaginatedCommunications!
Arguments
communicationsCursor - CursorPaginatedCommunications!
Arguments
createCommunication - CommunicationObjectType!
Arguments
bulkCreateCommunications - [CommunicationObjectType!]!
Arguments
updateCommunication - CommunicationObjectType!
Arguments
retryCommunication - Boolean!
Arguments
id - ID!
markNotificationAsRead - CommunicationObjectType!
Arguments
id - ID!
markAllNotificationsAsRead - Int!
Arguments
userId - String!
trackNotificationClick - CommunicationObjectType!
Arguments
id - ID!
deleteCommunication - Boolean!
Arguments
id - ID!
deleteManyCommunications - Int!
Arguments
subscribeToTopic - Boolean!
Arguments
tokens - [String!]!
topic - String!
unsubscribeFromTopic - Boolean!
Arguments
tokens - [String!]!
topic - String!
subscribeToDefaultTopics - Boolean!
Arguments
tokens - [String!]!
unsubscribeFromDefaultTopics - Boolean!
Arguments
tokens - [String!]!
Example
{
  "communication": CommunicationObjectType,
  "communicationsOffset": OffsetPaginatedCommunications,
  "communicationsCursor": CursorPaginatedCommunications,
  "createCommunication": CommunicationObjectType,
  "bulkCreateCommunications": [CommunicationObjectType],
  "updateCommunication": CommunicationObjectType,
  "retryCommunication": true,
  "markNotificationAsRead": CommunicationObjectType,
  "markAllNotificationsAsRead": 123,
  "trackNotificationClick": CommunicationObjectType,
  "deleteCommunication": false,
  "deleteManyCommunications": 987,
  "subscribeToTopic": true,
  "unsubscribeFromTopic": true,
  "subscribeToDefaultTopics": false,
  "unsubscribeFromDefaultTopics": false
}

CommunicationObjectType

Fields
Field Name Description
_id - ID!
id - String!
userId - String!
channel - NotificationChannel!
status - NotificationStatus!
type - NotificationType
message - BaseMessageObjectType!
emailData - EmailDataObjectType
smsData - SmsDataObjectType
pushData - PushDataObjectType
inAppData - InAppDataObjectType
delivery - DeliveryInfoObjectType
retryCount - Int!
maxRetries - Int!
campaignId - String
campaignName - String
tags - [String!]
scheduledFor - DateTime
timezone - String
queueJobId - String
queueName - String
priority - Int
metadata - JSON
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "_id": "4",
  "id": "xyz789",
  "userId": "xyz789",
  "channel": "PUSH",
  "status": "PENDING",
  "type": "INFO",
  "message": BaseMessageObjectType,
  "emailData": EmailDataObjectType,
  "smsData": SmsDataObjectType,
  "pushData": PushDataObjectType,
  "inAppData": InAppDataObjectType,
  "delivery": DeliveryInfoObjectType,
  "retryCount": 987,
  "maxRetries": 987,
  "campaignId": "abc123",
  "campaignName": "abc123",
  "tags": ["xyz789"],
  "scheduledFor": "2007-12-03T10:15:30Z",
  "timezone": "abc123",
  "queueJobId": "xyz789",
  "queueName": "abc123",
  "priority": 987,
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

DeliveryAddress

Fields
Field Name Description
street - String
city - String
state - String
postal_code - String
country - String
geo - GeoLocation
Example
{
  "street": "abc123",
  "city": "abc123",
  "state": "xyz789",
  "postal_code": "abc123",
  "country": "xyz789",
  "geo": GeoLocation
}

DeliveryCallFilterInput

Fields
Input Field Description
call_id - ID
order_id - ID
called_by - ID
outcome - DeliveryCallOutcomeEnum
confirmed_delivery_slot - DeliverySlotEnum
confirmed_delivery_type - ConfirmedDeliveryTypeEnum
confirmed_delivery_type_name - ConfirmedDeliveryTypeNameEnum
Example
{
  "call_id": 4,
  "order_id": "4",
  "called_by": 4,
  "outcome": "CALL_BACK",
  "confirmed_delivery_slot": "MORNING",
  "confirmed_delivery_type": "DELIVERY",
  "confirmed_delivery_type_name": "MO"
}

DeliveryCallGeo

Fields
Field Name Description
lat - Float
lng - Float
Example
{"lat": 987.65, "lng": 123.45}

DeliveryCallObjectType

Fields
Field Name Description
call_id - ID!
order_id - ID!
called_by - ID!
caller - UserObjectType
confirmed_delivery_location - ConfirmedDeliveryLocationObjectType
spec_preference - SpecPreferenceObjectType
confirmed_delivery_date - String
confirmed_delivery_slot - DeliverySlotEnum
call_time - DateTime!
outcome - DeliveryCallOutcomeEnum!
confirmed_delivery_type - ConfirmedDeliveryTypeEnum
confirmed_delivery_type_name - ConfirmedDeliveryTypeNameEnum
notes - String
metadata - JSON
created_at - DateTime!
order - OrderObjectType
Example
{
  "call_id": "4",
  "order_id": "4",
  "called_by": "4",
  "caller": UserObjectType,
  "confirmed_delivery_location": ConfirmedDeliveryLocationObjectType,
  "spec_preference": SpecPreferenceObjectType,
  "confirmed_delivery_date": "xyz789",
  "confirmed_delivery_slot": "MORNING",
  "call_time": "2007-12-03T10:15:30Z",
  "outcome": "CALL_BACK",
  "confirmed_delivery_type": "DELIVERY",
  "confirmed_delivery_type_name": "MO",
  "notes": "xyz789",
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "order": OrderObjectType
}

DeliveryCallOutcomeEnum

Description

Outcome of a delivery-related call

Values
Enum Value Description

CALL_BACK

NO_RESPONSE

UNREACHABLE

CONFIRMED

NOT_READY_TO_PURCHASE

LOOKING_FOR_DEPOSIT

WANTS_TO_RESCHEDULE

WANTS_TO_PICKUP

NO_LONGER_INTERESTED

ALREADY_PURCHASED_ELSEWHERE

UNAUTHORIZED_DELIVERY_LOCATION

WANTS_DIFFERENT_SKU

SKU_OUT_OF_STOCK

Example
"CALL_BACK"

DeliveryFilterInput

Fields
Input Field Description
delivery_id - ID
order_id - ID
seller_id - ID
assigned_rider_id - ID
delivery_status - DeliveryStatusEnum
delivery_status_any - [DeliveryStatusEnum!]
tracking_number - String
estimated_arrival - DateTime
actual_arrival - DateTime
created_at_from - DateTime
created_at_to - DateTime
order - OrderFilterInput
customer - RawCustomersFilterInput
Example
{
  "delivery_id": 4,
  "order_id": "4",
  "seller_id": "4",
  "assigned_rider_id": "4",
  "delivery_status": "PENDING",
  "delivery_status_any": ["PENDING"],
  "tracking_number": "abc123",
  "estimated_arrival": "2007-12-03T10:15:30Z",
  "actual_arrival": "2007-12-03T10:15:30Z",
  "created_at_from": "2007-12-03T10:15:30Z",
  "created_at_to": "2007-12-03T10:15:30Z",
  "order": OrderFilterInput,
  "customer": RawCustomersFilterInput
}

DeliveryInfoFilterInput

Description

Filter by delivery tracking fields

Fields
Input Field Description
provider - StringFilterInput
externalId - StringFilterInput
error - StringFilterInput
sentAt - DateFilterInput
deliveredAt - DateFilterInput
failedAt - DateFilterInput
readAt - DateFilterInput
clickedAt - DateFilterInput
Example
{
  "provider": StringFilterInput,
  "externalId": StringFilterInput,
  "error": StringFilterInput,
  "sentAt": DateFilterInput,
  "deliveredAt": DateFilterInput,
  "failedAt": DateFilterInput,
  "readAt": DateFilterInput,
  "clickedAt": DateFilterInput
}

DeliveryInfoObjectType

Fields
Field Name Description
sentAt - DateTime
deliveredAt - DateTime
failedAt - DateTime
readAt - DateTime
clickedAt - DateTime
error - String
externalId - String
provider - String
providerResponse - JSON
Example
{
  "sentAt": "2007-12-03T10:15:30Z",
  "deliveredAt": "2007-12-03T10:15:30Z",
  "failedAt": "2007-12-03T10:15:30Z",
  "readAt": "2007-12-03T10:15:30Z",
  "clickedAt": "2007-12-03T10:15:30Z",
  "error": "xyz789",
  "externalId": "xyz789",
  "provider": "xyz789",
  "providerResponse": {}
}

DeliveryItemFilterInput

Fields
Input Field Description
id - ID
delivery_id - ID
order_item_id - ID
quantity_shipped - Int
Example
{
  "id": 4,
  "delivery_id": "4",
  "order_item_id": "4",
  "quantity_shipped": 123
}

DeliveryItemObjectType

Fields
Field Name Description
id - ID!
delivery_id - ID!
order_item_id - ID!
quantity_shipped - Float!
delivery - DeliveryObjectType
order_item - OrderItemObjectType
Example
{
  "id": 4,
  "delivery_id": 4,
  "order_item_id": "4",
  "quantity_shipped": 987.65,
  "delivery": DeliveryObjectType,
  "order_item": OrderItemObjectType
}

DeliveryObjectType

Fields
Field Name Description
delivery_id - ID!
order_id - ID!
seller_id - ID!
assigned_rider_id - ID
delivery_status - DeliveryStatusEnum!
delivery_address - DeliveryAddress
tracking_number - String
provider_info - ProviderInfo
proof_of_delivery - ProofOfDelivery
delivery_notes - String
destination_location - GeoLocation
estimated_arrival - DateTime
actual_arrival - DateTime
metadata - JSON
assigned_rider - UserObjectType
seller - SellerObjectType
order - OrderObjectType!
items - [DeliveryItemObjectType!]
calls - [DeliveryCallObjectType!]
latestAnsweredCall - DeliveryCallObjectType
created_at - DateTime!
updated_at - DateTime!
deliveryItems - [DeliveryItemObjectType!]!
Example
{
  "delivery_id": "4",
  "order_id": 4,
  "seller_id": 4,
  "assigned_rider_id": 4,
  "delivery_status": "PENDING",
  "delivery_address": DeliveryAddress,
  "tracking_number": "abc123",
  "provider_info": ProviderInfo,
  "proof_of_delivery": ProofOfDelivery,
  "delivery_notes": "xyz789",
  "destination_location": GeoLocation,
  "estimated_arrival": "2007-12-03T10:15:30Z",
  "actual_arrival": "2007-12-03T10:15:30Z",
  "metadata": {},
  "assigned_rider": UserObjectType,
  "seller": SellerObjectType,
  "order": OrderObjectType,
  "items": [DeliveryItemObjectType],
  "calls": [DeliveryCallObjectType],
  "latestAnsweredCall": DeliveryCallObjectType,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "deliveryItems": [DeliveryItemObjectType]
}

DeliverySlotEnum

Description

Confirmed delivery time slot

Values
Enum Value Description

MORNING

LUNCH

AFTERNOON

EVENING

AFTER_HOURS

Example
"MORNING"

DeliveryStatusEnum

Description

Status of delivery

Values
Enum Value Description

PENDING

ALLOCATED

READY_FOR_DELIVERY

ASSIGNED

PICKED_UP

IN_TRANSIT

OUT_FOR_DELIVERY

DELIVERED

FAILED

RETURNED

CANCELLED

PICKUP_ONLY

FAILED_PICKUP

READY_FOR_PICKUP

Example
"PENDING"

NotificationChannel

Description

Channel through which notification is sent

Values
Enum Value Description

PUSH

SMS

EMAIL

IN_APP

Example
"PUSH"

NotificationChannelFilterInput

Fields
Input Field Description
eq - NotificationChannel
ne - NotificationChannel
in - [NotificationChannel!]
notIn - [NotificationChannel!]
Example
{"eq": "PUSH", "ne": "PUSH", "in": ["PUSH"], "notIn": ["PUSH"]}

NotificationStatus

Description

Status of notification delivery

Values
Enum Value Description

PENDING

QUEUED

SENT

DELIVERED

FAILED

READ

CLICKED

BOUNCED

SPAM

UNSUBSCRIBED

EXPIRED

Example
"PENDING"

NotificationStatusFilterInput

Fields
Input Field Description
eq - NotificationStatus
ne - NotificationStatus
in - [NotificationStatus!]
notIn - [NotificationStatus!]
Example
{"eq": "PENDING", "ne": "PENDING", "in": ["PENDING"], "notIn": ["PENDING"]}

NotificationType

Description

Type of notification

Values
Enum Value Description

INFO

WARNING

ERROR

SUCCESS

PROMOTIONAL

Example
"INFO"

NotificationTypeFilterInput

Fields
Input Field Description
eq - NotificationType
ne - NotificationType
in - [NotificationType!]
notIn - [NotificationType!]
Example
{"eq": "INFO", "ne": "INFO", "in": ["INFO"], "notIn": ["INFO"]}

Sales & Orders

CommissionAttributeType

Description

What attribute is matched to find the commission rule

Values
Enum Value Description

ALL

SKU

PRICE_RANGE

Example
"ALL"

CommissionCalculationType

Fields
Field Name Description
product_commission - Float!
loan_commission - Float!
cash_commission - Float!
channel_type - ChannelTypeEnum
commission_type - CommissionDeterminationType
is_override - Boolean!
commission_override_id - String
commission_rule - CommissionObjectType
Example
{
  "product_commission": 123.45,
  "loan_commission": 123.45,
  "cash_commission": 123.45,
  "channel_type": "ONLINE_AGENT",
  "commission_type": "FLAT",
  "is_override": false,
  "commission_override_id": "abc123",
  "commission_rule": CommissionObjectType
}

CommissionDeterminationType

Description

How commission is determined for a channel

Values
Enum Value Description

FLAT

PRODUCT

PRICE

Example
"FLAT"

CommissionFilterInput

Fields
Input Field Description
id - String
channel_type - ChannelTypeEnum
commission_type - CommissionDeterminationType
attribute_type - CommissionAttributeType
commission_value_type - CommissionValueType
sku_id - String
is_active - Boolean
Example
{
  "id": "abc123",
  "channel_type": "ONLINE_AGENT",
  "commission_type": "FLAT",
  "attribute_type": "ALL",
  "commission_value_type": "FLAT",
  "sku_id": "xyz789",
  "is_active": true
}

CommissionObjectType

Fields
Field Name Description
id - ID!
channel_type - ChannelTypeEnum!
commission_type - CommissionDeterminationType!
attribute_type - CommissionAttributeType!
commission_value_type - CommissionValueType!
sku_id - String
min_price - Float
max_price - Float
product_commission - Float!
loan_commission - Float!
cash_commission - Float!
start_date - DateTime!
end_date - DateTime
is_active - Boolean!
created_at - DateTime!
updated_at - DateTime!
sku - SkuObjectType
overrides - [CommissionOverrideObjectType!]
Example
{
  "id": 4,
  "channel_type": "ONLINE_AGENT",
  "commission_type": "FLAT",
  "attribute_type": "ALL",
  "commission_value_type": "FLAT",
  "sku_id": "xyz789",
  "min_price": 123.45,
  "max_price": 123.45,
  "product_commission": 123.45,
  "loan_commission": 987.65,
  "cash_commission": 987.65,
  "start_date": "2007-12-03T10:15:30Z",
  "end_date": "2007-12-03T10:15:30Z",
  "is_active": true,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "sku": SkuObjectType,
  "overrides": [CommissionOverrideObjectType]
}

CommissionOverrideFilterInput

Fields
Input Field Description
id - String
agent_profile_id - String
commission_rule_id - String
is_active - Boolean
Example
{
  "id": "xyz789",
  "agent_profile_id": "xyz789",
  "commission_rule_id": "xyz789",
  "is_active": true
}

CommissionOverrideObjectType

Fields
Field Name Description
id - ID!
agent_profile_id - String!
commission_rule_id - String!
product_commission - Float
loan_commission - Float
cash_commission - Float
commission_value_type - CommissionValueType
is_active - Boolean!
created_at - DateTime!
updated_at - DateTime!
agent_profile - AgentProfileObjectType
commission_rule - CommissionObjectType
Example
{
  "id": "4",
  "agent_profile_id": "xyz789",
  "commission_rule_id": "abc123",
  "product_commission": 987.65,
  "loan_commission": 987.65,
  "cash_commission": 123.45,
  "commission_value_type": "FLAT",
  "is_active": false,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "agent_profile": AgentProfileObjectType,
  "commission_rule": CommissionObjectType
}

CommissionSnapshotType

Fields
Field Name Description
product_commission - Float!
loan_commission - Float!
cash_commission - Float!
channel_type - String
commission_type - String
commission_rule_id - String
commission_override_id - String
is_override - Boolean!
Example
{
  "product_commission": 987.65,
  "loan_commission": 123.45,
  "cash_commission": 123.45,
  "channel_type": "abc123",
  "commission_type": "abc123",
  "commission_rule_id": "xyz789",
  "commission_override_id": "abc123",
  "is_override": true
}

CommissionValueType

Description

Whether commission amounts are flat values or percentages of cash price

Values
Enum Value Description

FLAT

PERCENTAGE

Example
"FLAT"

OrderFilterInput

Fields
Input Field Description
order_id - ID
customer_id - ID
order_status - OrderStatusEnum
order_status_any - [OrderStatusEnum!]
payment_status - SalePaymentStatusEnum
currency - String
sub_total - Float
total_discount - Float
delivery_fee - Float
service_fee - Float
tax_amount - Float
total_amount - Float
application_id - String
sale_agent_id - String
submitting_agent_id - String
manual_override - Boolean
order_date - DateTime
order_date_from - DateTime
order_date_to - DateTime
delivery_status_any - [DeliveryStatusEnum!]
application_channel_any - [ApplicationChannelEnum!]
delivery_location_type_any - [String!]
delivery_or_collection_location_any - [String!]
preferred_delivery_date_from - DateTime
preferred_delivery_date_to - DateTime
confirmed_delivery_date_from - DateTime
confirmed_delivery_date_to - DateTime
effective_delivery_date_from - DateTime
effective_delivery_date_to - DateTime
customer_phone_contains - String
customer_official_id_contains - String
metadata - JSON
Example
{
  "order_id": 4,
  "customer_id": 4,
  "order_status": "PENDING",
  "order_status_any": ["PENDING"],
  "payment_status": "UNPAID",
  "currency": "xyz789",
  "sub_total": 987.65,
  "total_discount": 123.45,
  "delivery_fee": 123.45,
  "service_fee": 123.45,
  "tax_amount": 987.65,
  "total_amount": 987.65,
  "application_id": "xyz789",
  "sale_agent_id": "xyz789",
  "submitting_agent_id": "xyz789",
  "manual_override": false,
  "order_date": "2007-12-03T10:15:30Z",
  "order_date_from": "2007-12-03T10:15:30Z",
  "order_date_to": "2007-12-03T10:15:30Z",
  "delivery_status_any": ["PENDING"],
  "application_channel_any": ["SALES_APP"],
  "delivery_location_type_any": ["abc123"],
  "delivery_or_collection_location_any": [
    "abc123"
  ],
  "preferred_delivery_date_from": "2007-12-03T10:15:30Z",
  "preferred_delivery_date_to": "2007-12-03T10:15:30Z",
  "confirmed_delivery_date_from": "2007-12-03T10:15:30Z",
  "confirmed_delivery_date_to": "2007-12-03T10:15:30Z",
  "effective_delivery_date_from": "2007-12-03T10:15:30Z",
  "effective_delivery_date_to": "2007-12-03T10:15:30Z",
  "customer_phone_contains": "abc123",
  "customer_official_id_contains": "abc123",
  "metadata": {}
}

OrderGeo

Fields
Field Name Description
lat - Float!
lng - Float!
Example
{"lat": 987.65, "lng": 123.45}

OrderItemFilterInput

Fields
Input Field Description
order_item_id - ID
order_id - ID
seller_id - ID
item_type - OrderItemTypeEnum
catalog_id - ID
quantity - Float
unit_price - Float
discount_amount - Float
subtotal - Float
purchase_type - PurchaseTypeEnum
status - String
metadata - JSON
Example
{
  "order_item_id": "4",
  "order_id": "4",
  "seller_id": 4,
  "item_type": "PRODUCT",
  "catalog_id": "4",
  "quantity": 987.65,
  "unit_price": 123.45,
  "discount_amount": 987.65,
  "subtotal": 123.45,
  "purchase_type": "CASH",
  "status": "abc123",
  "metadata": {}
}

OrderItemObjectType

Fields
Field Name Description
order_item_id - ID!
order_id - ID!
seller_id - ID!
item_type - OrderItemTypeEnum!
catalog_id - ID
quantity - Float!
unit_price - Float!
discount_amount - Float!
adjustments - JSON
subtotal - Float!
purchase_type - PurchaseTypeEnum!
status - String!
metadata - JSON
created_at - DateTime!
updated_at - DateTime!
sellerCatalog - SellerCatalogObjectType
order - OrderObjectType!
delivery_items - [DeliveryItemObjectType!]
inventory_allocations - [InventoryAllocationObjectType!]
inventory_allocation - InventoryAllocationObjectType
Example
{
  "order_item_id": 4,
  "order_id": 4,
  "seller_id": 4,
  "item_type": "PRODUCT",
  "catalog_id": 4,
  "quantity": 123.45,
  "unit_price": 123.45,
  "discount_amount": 987.65,
  "adjustments": {},
  "subtotal": 987.65,
  "purchase_type": "CASH",
  "status": "abc123",
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "sellerCatalog": SellerCatalogObjectType,
  "order": OrderObjectType,
  "delivery_items": [DeliveryItemObjectType],
  "inventory_allocations": [
    InventoryAllocationObjectType
  ],
  "inventory_allocation": InventoryAllocationObjectType
}

OrderItemTypeEnum

Description

Type of order item

Values
Enum Value Description

PRODUCT

SERVICE

Example
"PRODUCT"

OrderObjectType

Fields
Field Name Description
order_id - ID!
customer_id - ID!
order_status - OrderStatusEnum!
payment_status - SalePaymentStatusEnum!
shipping_address - ShippingAddress
currency - String
sub_total - Float!
total_discount - Float!
delivery_fee - Float!
service_fee - Float!
tax_amount - Float!
total_amount - Float!
application_id - String
sale_agent_id - String
submitting_agent_id - String
manual_override - Boolean!
order_date - DateTime!
created_at - DateTime!
updated_at - DateTime!
metadata - JSON
customer - RawCustomersDto
application - ApplicationEntityGraphQL
orderItems - [OrderItemObjectType!]
deliveries - [DeliveryObjectType!]
sales - [SalesObjectType!]
deliveryCalls - [DeliveryCallObjectType!]
Example
{
  "order_id": "4",
  "customer_id": "4",
  "order_status": "PENDING",
  "payment_status": "UNPAID",
  "shipping_address": ShippingAddress,
  "currency": "abc123",
  "sub_total": 123.45,
  "total_discount": 123.45,
  "delivery_fee": 123.45,
  "service_fee": 987.65,
  "tax_amount": 987.65,
  "total_amount": 987.65,
  "application_id": "abc123",
  "sale_agent_id": "abc123",
  "submitting_agent_id": "xyz789",
  "manual_override": false,
  "order_date": "2007-12-03T10:15:30Z",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "metadata": {},
  "customer": RawCustomersDto,
  "application": ApplicationEntityGraphQL,
  "orderItems": [OrderItemObjectType],
  "deliveries": [DeliveryObjectType],
  "sales": [SalesObjectType],
  "deliveryCalls": [DeliveryCallObjectType]
}

OrderStatusEnum

Description

Status of the order

Values
Enum Value Description

PENDING

CONFIRMED

PROCESSING

SHIPPED

DELIVERED

CANCELLED

RETURNED

REFUNDED

Example
"PENDING"

SaleCorrectionResultType

Fields
Field Name Description
sale_id - String!
customer_id - String!
excess - Float!
reversed_allocation_ids - [String!]!
wallet_credited - Float!
reallocation_adjustment_id - String
new_payment_status - String!
Example
{
  "sale_id": "abc123",
  "customer_id": "abc123",
  "excess": 123.45,
  "reversed_allocation_ids": ["xyz789"],
  "wallet_credited": 123.45,
  "reallocation_adjustment_id": "xyz789",
  "new_payment_status": "xyz789"
}

SaleLifecycleStatusEnum

Description

Lifecycle status of the sale (active or type of return)

Values
Enum Value Description

ACTIVE

RETURNED

UPGRADED

DOWNGRADED

SWAPPED

REPOSSESSED

Example
"ACTIVE"

SalePaymentStatusEnum

Description

Payment status of the sale

Values
Enum Value Description

UNPAID

PARTIAL

PAID

CANCELLED

Example
"UNPAID"

SaleReportingType

Fields
Field Name Description
loan_id - String
business_model - String
is_3p_sale - String
partner_name - String
credit_check_done - String
cash_price - Float
loan_price - Float
loan_period - Float
Example
{
  "loan_id": "abc123",
  "business_model": "xyz789",
  "is_3p_sale": "xyz789",
  "partner_name": "abc123",
  "credit_check_done": "abc123",
  "cash_price": 987.65,
  "loan_price": 123.45,
  "loan_period": 987.65
}

SalesFilterInput

Fields
Input Field Description
sale_id - ID
sale_date - DateTime
order_id - ID
customer_id - ID
sale_agent_id - ID
submitting_agent_id - ID
sfm_id - ID
price_plan_id - ID
inventory_id - ID
payment_type - SalesPaymentTypeEnum
payment_status - SalePaymentStatusEnum
normal_high_deposit - NormalHighDepositEnum
final_sale_price - Float
invoice_number - String
status - SaleLifecycleStatusEnum
return_date - DateTime
hasInventory - Boolean
order_filters - OrderFilterInput
Example
{
  "sale_id": "4",
  "sale_date": "2007-12-03T10:15:30Z",
  "order_id": "4",
  "customer_id": 4,
  "sale_agent_id": "4",
  "submitting_agent_id": "4",
  "sfm_id": 4,
  "price_plan_id": 4,
  "inventory_id": 4,
  "payment_type": "REPAIR",
  "payment_status": "UNPAID",
  "normal_high_deposit": "NORMAL",
  "final_sale_price": 123.45,
  "invoice_number": "abc123",
  "status": "ACTIVE",
  "return_date": "2007-12-03T10:15:30Z",
  "hasInventory": true,
  "order_filters": OrderFilterInput
}

SalesObjectType

Fields
Field Name Description
sale_id - ID!
sale_date - DateTime
order_id - ID
customer_id - ID
sale_agent_id - ID
submitting_agent_id - ID
sfm_id - ID
price_plan_id - ID
pricePlan - PricePlanObjectType
inventory_id - ID
inventory - InventoryObjectType
payment_type - SalesPaymentTypeEnum
payment_status - SalePaymentStatusEnum
normal_high_deposit - NormalHighDepositEnum
final_sale_price - Float
upfront_payment - Float
gross_loan_amount - Float
marketplace_fee - Float
seller_payout - Float
invoice_number - String
status - SaleLifecycleStatusEnum!
return_date - DateTime
created_at - DateTime!
metadata - JSON
customer - RawCustomersDto
order - OrderObjectType
loan_contract - LoanContractDto
commission - CommissionSnapshotType
cash_price - Float
reporting - SaleReportingType
Example
{
  "sale_id": "4",
  "sale_date": "2007-12-03T10:15:30Z",
  "order_id": "4",
  "customer_id": 4,
  "sale_agent_id": "4",
  "submitting_agent_id": 4,
  "sfm_id": 4,
  "price_plan_id": "4",
  "pricePlan": PricePlanObjectType,
  "inventory_id": 4,
  "inventory": InventoryObjectType,
  "payment_type": "REPAIR",
  "payment_status": "UNPAID",
  "normal_high_deposit": "NORMAL",
  "final_sale_price": 987.65,
  "upfront_payment": 987.65,
  "gross_loan_amount": 987.65,
  "marketplace_fee": 987.65,
  "seller_payout": 123.45,
  "invoice_number": "abc123",
  "status": "ACTIVE",
  "return_date": "2007-12-03T10:15:30Z",
  "created_at": "2007-12-03T10:15:30Z",
  "metadata": {},
  "customer": RawCustomersDto,
  "order": OrderObjectType,
  "loan_contract": LoanContractDto,
  "commission": CommissionSnapshotType,
  "cash_price": 123.45,
  "reporting": SaleReportingType
}

SalesPaymentTypeEnum

Description

Payment type of the sale

Values
Enum Value Description

REPAIR

CASH

CREDIT

Example
"REPAIR"

SalesProcessingJobStatusGraphQL

Fields
Field Name Description
status - SalesProcessingStatusEnum Current status of the async processing job
error - String Error message if the job failed or needs review
conflicting_order_ids - [String!] Order IDs that caused a conflict when status is needs_review
job_id - String BullMQ job ID
started_at - DateTime Timestamp when the worker picked up the job
completed_at - DateTime Timestamp when the job reached a terminal state
Example
{
  "status": "IDLE",
  "error": "xyz789",
  "conflicting_order_ids": ["xyz789"],
  "job_id": "xyz789",
  "started_at": "2007-12-03T10:15:30Z",
  "completed_at": "2007-12-03T10:15:30Z"
}

SalesProcessingStatusEnum

Description

Status of an async sales processing job (order or sale creation)

Values
Enum Value Description

IDLE

PENDING

PROCESSING

COMPLETED

FAILED

NEEDS_REVIEW

Example
"IDLE"

Price Plans

EarlyPayoffCalculationType

Fields
Field Name Description
total_loan_amount - Float!
deposit_amount - Float!
outstanding_loan - Float!
discount_percent - Float!
discount_amount - Float!
outstanding_discount_applied - Float!
total_customer_pays - Float!
accurate_total_customer_pays - Float!
monthly_instalment_amount - Float!
weekly_instalment_amount - Float!
daily_instalment_amount - Float!
duration_months - Int!
payment_frequency - String!
total_loan_amount_high - Float
discount_amount_high - Float
total_customer_pays_high - Float
outstanding_loan_high - Float
monthly_instalment_amount_high - Float
weekly_instalment_amount_high - Float
daily_instalment_amount_high - Float
Example
{
  "total_loan_amount": 987.65,
  "deposit_amount": 123.45,
  "outstanding_loan": 987.65,
  "discount_percent": 123.45,
  "discount_amount": 123.45,
  "outstanding_discount_applied": 987.65,
  "total_customer_pays": 123.45,
  "accurate_total_customer_pays": 987.65,
  "monthly_instalment_amount": 987.65,
  "weekly_instalment_amount": 123.45,
  "daily_instalment_amount": 987.65,
  "duration_months": 123,
  "payment_frequency": "abc123",
  "total_loan_amount_high": 123.45,
  "discount_amount_high": 987.65,
  "total_customer_pays_high": 987.65,
  "outstanding_loan_high": 123.45,
  "monthly_instalment_amount_high": 987.65,
  "weekly_instalment_amount_high": 987.65,
  "daily_instalment_amount_high": 123.45
}

EarlyPayoffDiscountInput

Fields
Input Field Description
within_months - Int!
discount_percent - Float!
Example
{"within_months": 987, "discount_percent": 987.65}

EarlyPayoffDiscountObjectType

Fields
Field Name Description
within_months - Int!
discount_percent - Float!
Example
{"within_months": 123, "discount_percent": 987.65}

EarlyPayoffDiscountType

Fields
Field Name Description
within_months - Int!
discount_percent - Float!
Example
{"within_months": 123, "discount_percent": 987.65}

PricePlanFilterInput

Fields
Input Field Description
id - String
tier_id - String
code - String
name - String
min_device_value - Float
max_device_value - Float
deposit_percent - Float
subsequent_loan_discount_percent - Float
deposit_percent_high - Float
loan_multiplier - Float
loan_multiplier_high - Float
mocare_percent - Float
duration_months - Int
duration_months_high - Int
payment_frequency - PaymentFrequencyEnum
effective_from - String
effective_to - String
status - PricePlanStatusEnum
is_private - Boolean
metadata - JSON
Example
{
  "id": "xyz789",
  "tier_id": "xyz789",
  "code": "abc123",
  "name": "xyz789",
  "min_device_value": 987.65,
  "max_device_value": 123.45,
  "deposit_percent": 987.65,
  "subsequent_loan_discount_percent": 123.45,
  "deposit_percent_high": 123.45,
  "loan_multiplier": 123.45,
  "loan_multiplier_high": 987.65,
  "mocare_percent": 987.65,
  "duration_months": 123,
  "duration_months_high": 987,
  "payment_frequency": "DAILY",
  "effective_from": "xyz789",
  "effective_to": "abc123",
  "status": "ACTIVE",
  "is_private": false,
  "metadata": {}
}

PricePlanObjectType

Fields
Field Name Description
id - ID!
tier_id - String
parent_plan_id - String
code - String!
name - String!
min_device_value - Float!
max_device_value - Float
deposit_percent - Float!
deposit_percent_high - Float
subsequent_loan_discount_percent - Float!
loan_multiplier - Float!
loan_multiplier_high - Float
mocare_percent - Float!
duration_months - Int!
duration_months_high - Int
payment_frequency - PaymentFrequencyEnum!
effective_from - DateTime
effective_to - DateTime
early_payoff_discounts - [EarlyPayoffDiscountObjectType!]!
status - PricePlanStatusEnum!
is_private - Boolean!
version - Int!
metadata - JSON
created_at - DateTime!
updated_at - DateTime!
tier - SellerTierObjectType
versions - [PricePlanObjectType!]
Example
{
  "id": 4,
  "tier_id": "xyz789",
  "parent_plan_id": "xyz789",
  "code": "xyz789",
  "name": "abc123",
  "min_device_value": 987.65,
  "max_device_value": 987.65,
  "deposit_percent": 123.45,
  "deposit_percent_high": 123.45,
  "subsequent_loan_discount_percent": 123.45,
  "loan_multiplier": 987.65,
  "loan_multiplier_high": 987.65,
  "mocare_percent": 123.45,
  "duration_months": 987,
  "duration_months_high": 123,
  "payment_frequency": "DAILY",
  "effective_from": "2007-12-03T10:15:30Z",
  "effective_to": "2007-12-03T10:15:30Z",
  "early_payoff_discounts": [
    EarlyPayoffDiscountObjectType
  ],
  "status": "ACTIVE",
  "is_private": false,
  "version": 123,
  "metadata": {},
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "tier": SellerTierObjectType,
  "versions": [PricePlanObjectType]
}

PricePlanStatusEnum

Values
Enum Value Description

ACTIVE

DRAFT

CLOSED

Example
"ACTIVE"

PricingCalculationType

Fields
Field Name Description
cash_price - Float!
deposit_amount - Float!
deposit_amount_high - Float
subsequent_loan_discount_percent - Float!
subsequent_loan_initial_pay - Float!
subsequent_loan_total_customer_pays - Float!
loan_principal - Float!
loan_principal_high - Float
total_loan_amount - Float!
total_loan_amount_high - Float
outstanding_loan - Float!
outstanding_loan_high - Float
mocare_value - Float!
total_customer_pays - Float!
total_customer_pays_high - Float
accurate_total_customer_pays - Float!
accurate_total_customer_pays_high - Float
instalment_amount - Float!
instalment_amount_high - Float
daily_instalment_amount - Float!
daily_instalment_amount_high - Float
weekly_instalment_amount - Float!
weekly_instalment_amount_high - Float
monthly_instalment_amount - Float!
monthly_instalment_amount_high - Float
weekly_installment_count_high - Int
duration_months - Int!
duration_months_high - Int
payment_frequency - String!
plan_code - String!
plan_id - ID!
plan_name - String!
early_payoff_discounts - [EarlyPayoffDiscountType!]
Example
{
  "cash_price": 987.65,
  "deposit_amount": 123.45,
  "deposit_amount_high": 987.65,
  "subsequent_loan_discount_percent": 123.45,
  "subsequent_loan_initial_pay": 987.65,
  "subsequent_loan_total_customer_pays": 123.45,
  "loan_principal": 123.45,
  "loan_principal_high": 123.45,
  "total_loan_amount": 123.45,
  "total_loan_amount_high": 123.45,
  "outstanding_loan": 123.45,
  "outstanding_loan_high": 123.45,
  "mocare_value": 987.65,
  "total_customer_pays": 987.65,
  "total_customer_pays_high": 987.65,
  "accurate_total_customer_pays": 123.45,
  "accurate_total_customer_pays_high": 123.45,
  "instalment_amount": 123.45,
  "instalment_amount_high": 987.65,
  "daily_instalment_amount": 987.65,
  "daily_instalment_amount_high": 987.65,
  "weekly_instalment_amount": 123.45,
  "weekly_instalment_amount_high": 987.65,
  "monthly_instalment_amount": 123.45,
  "monthly_instalment_amount_high": 123.45,
  "weekly_installment_count_high": 987,
  "duration_months": 123,
  "duration_months_high": 987,
  "payment_frequency": "xyz789",
  "plan_code": "xyz789",
  "plan_id": 4,
  "plan_name": "xyz789",
  "early_payoff_discounts": [EarlyPayoffDiscountType]
}

Export

DataExportDateRangeInput

Fields
Input Field Description
field - String!
start - String!
end - String!
Example
{
  "field": "abc123",
  "start": "xyz789",
  "end": "abc123"
}

DataExportDomain

Values
Enum Value Description

INVENTORY

PAYMENTS

LOANS

REFUNDS

SALES

ADJUSTMENTS

RETURNS

Example
"INVENTORY"

DataExportFileFormat

Values
Enum Value Description

XLSX

CSV

Example
"XLSX"

DataExportFilterInput

Fields
Input Field Description
status - DataExportStatus
limit - Int
mineOnly - Boolean
Example
{"status": "PENDING", "limit": 987, "mineOnly": true}

DataExportNamespace

Fields
Field Name Description
scheduleDataExport - DataExportType! Schedule a background data export job
Arguments
estimateRowCount - Int! Estimate row count for export filters before scheduling
Arguments
exportColumnCatalog - ExportDomainColumnCatalogType! Column metadata and presets for a domain export
Arguments
dataExport - DataExportType Get a single export job by ID
Arguments
id - ID!
dataExports - [DataExportType!]! List export jobs for the current user
Arguments
Example
{
  "scheduleDataExport": DataExportType,
  "estimateRowCount": 987,
  "exportColumnCatalog": ExportDomainColumnCatalogType,
  "dataExport": DataExportType,
  "dataExports": [DataExportType]
}

DataExportStatus

Values
Enum Value Description

PENDING

PROCESSING

COMPLETED

FAILED

Example
"PENDING"

DataExportType

Fields
Field Name Description
id - ID!
export_name - String!
domain - DataExportDomain!
status - DataExportStatus!
file_format - DataExportFileFormat!
filters - JSON
date_range - JSON
row_count - Int
file_key - String
file_url - String
error_message - String
requested_by - String!
requested_by_email - String
created_at - DateTime!
updated_at - DateTime!
Example
{
  "id": 4,
  "export_name": "xyz789",
  "domain": "INVENTORY",
  "status": "PENDING",
  "file_format": "XLSX",
  "filters": {},
  "date_range": {},
  "row_count": 987,
  "file_key": "xyz789",
  "file_url": "xyz789",
  "error_message": "abc123",
  "requested_by": "xyz789",
  "requested_by_email": "xyz789",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

ExportColumnMetaType

Fields
Field Name Description
key - String!
header - String!
group - String
default - Boolean!
Example
{
  "key": "abc123",
  "header": "abc123",
  "group": "abc123",
  "default": true
}

ExportDomainColumnCatalogType

Fields
Field Name Description
domain - DataExportDomain!
columns - [ExportColumnMetaType!]!
presets - [ExportPresetMetaType!]!
Example
{
  "domain": "INVENTORY",
  "columns": [ExportColumnMetaType],
  "presets": [ExportPresetMetaType]
}

ExportModuleNamespace

Fields
Field Name Description
dataExport - DataExportNamespace!
Example
{"dataExport": DataExportNamespace}

ExportPresetMetaType

Fields
Field Name Description
id - String!
label - String!
columnKeys - [String!]!
Example
{
  "id": "xyz789",
  "label": "xyz789",
  "columnKeys": ["abc123"]
}

Audit

AuditLogFilterInput

Fields
Input Field Description
audit_log_id - ID
object_type - String
object_types - [String!]
object_id - ID
action_type - ActionTypeEnum
action_status - ActionStatusEnum
auditor_id - ID
auditor_email - String
action_requires_approval - Boolean
action_approval_levels - [String!]
action_approval_status - ActionApprovalStatusEnum
session_id - String
Example
{
  "audit_log_id": 4,
  "object_type": "xyz789",
  "object_types": ["abc123"],
  "object_id": 4,
  "action_type": "NOTE",
  "action_status": "DRAFT",
  "auditor_id": 4,
  "auditor_email": "abc123",
  "action_requires_approval": true,
  "action_approval_levels": ["abc123"],
  "action_approval_status": "PENDING",
  "session_id": "abc123"
}

AuditLogNamespace

Fields
Field Name Description
auditLog - AuditLogObjectType Get a single audit log by its ID
Arguments
id - ID!
auditLogByFilters - AuditLogObjectType Get a single audit log by specific filters
Arguments
auditLogCount - Float! Get audit log count for a specific object
Arguments
auditLogsCursor - CursorPaginatedAuditLogs! Get paginated audit logs using cursor-based pagination
Arguments
regexFilters - AuditLogFilterInput
auditLogsOffset - OffsetPaginatedAuditLogs! Get paginated audit logs using offset-based pagination
Arguments
regexFilters - AuditLogFilterInput
createAuditLog - AuditLogObjectType! Create a new audit log entry
Arguments
createNote - AuditLogObjectType! Create a new audit note
Arguments
updateAuditLog - AuditLogObjectType! Update an existing audit log entry
Arguments
id - ID!
updateAuditLogs - Float! Update multiple audit logs matching the filters
Arguments
deleteAuditLog - Boolean! Delete a single audit log by its ID
Arguments
id - ID!
deleteAuditLogs - Float! Delete multiple audit logs matching the filters
Arguments
Example
{
  "auditLog": AuditLogObjectType,
  "auditLogByFilters": AuditLogObjectType,
  "auditLogCount": 987.65,
  "auditLogsCursor": CursorPaginatedAuditLogs,
  "auditLogsOffset": OffsetPaginatedAuditLogs,
  "createAuditLog": AuditLogObjectType,
  "createNote": AuditLogObjectType,
  "updateAuditLog": AuditLogObjectType,
  "updateAuditLogs": 987.65,
  "deleteAuditLog": true,
  "deleteAuditLogs": 987.65
}

AuditLogObjectType

Fields
Field Name Description
audit_log_id - ID!
object_type - String!
object_id - ID!
action_type - ActionTypeEnum!
action_description - String!
action_status - ActionStatusEnum!
auditor_id - ID
auditor_username - String
auditor_email - String
actor_metadata - JSON
object_old_value - JSON
object_new_value - JSON
field_changes - JSON
action_requires_approval - Boolean!
action_approval_levels - [String!]
action_requested_by_id - ID
action_requested_by_username - String
action_approver_id - ID
action_approver_username - String
action_approved_at - DateTime
action_approval_status - ActionApprovalStatusEnum!
action_approval_notes - String
ip_address - String
user_agent - String
device_info - JSON
session_id - String
audited_at - DateTime!
visibility_level - VisibilityLevelEnum
created_at - DateTime!
updated_at - DateTime!
Example
{
  "audit_log_id": 4,
  "object_type": "abc123",
  "object_id": "4",
  "action_type": "NOTE",
  "action_description": "abc123",
  "action_status": "DRAFT",
  "auditor_id": 4,
  "auditor_username": "xyz789",
  "auditor_email": "xyz789",
  "actor_metadata": {},
  "object_old_value": {},
  "object_new_value": {},
  "field_changes": {},
  "action_requires_approval": true,
  "action_approval_levels": ["abc123"],
  "action_requested_by_id": 4,
  "action_requested_by_username": "abc123",
  "action_approver_id": "4",
  "action_approver_username": "abc123",
  "action_approved_at": "2007-12-03T10:15:30Z",
  "action_approval_status": "PENDING",
  "action_approval_notes": "xyz789",
  "ip_address": "abc123",
  "user_agent": "abc123",
  "device_info": {},
  "session_id": "xyz789",
  "audited_at": "2007-12-03T10:15:30Z",
  "visibility_level": "PUBLIC",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

AuditModuleNamespace

Fields
Field Name Description
auditLog - AuditLogNamespace!
Example
{"auditLog": AuditLogNamespace}

After-Sale

RefundFilterInput

Description

Filter input for querying refunds

Fields
Input Field Description
status - RefundStatus Filter by status
customer_id - String Filter by customer ID
sale_id - String Filter by sale ID
returns_request_id - String Filter by returns request ID
refund_workflow_type - RefundWorkflowType Filter by workflow type
refund_method - RefundMethod Filter by refund method
submitted_by - String Filter by submitted_by user ID
approved_by - String Filter by approved_by user ID
Example
{
  "status": "PENDING",
  "customer_id": "abc123",
  "sale_id": "xyz789",
  "returns_request_id": "xyz789",
  "refund_workflow_type": "RETURN",
  "refund_method": "MPESA",
  "submitted_by": "xyz789",
  "approved_by": "abc123"
}

RefundGraphQL

Fields
Field Name Description
refund_id - ID!
customer_id - String!
sale_id - String!
returns_request_id - String!
order_id - String
loan_contract_id - String
source_payment_id - String
adjustment_id - String
refund_workflow_type - RefundWorkflowType
refund_amount - Float!
status - RefundStatus!
refund_method - RefundMethod
transaction_reference - String
submitted_by - String
submitted_by_name - String
actor_id - String
approved_by - String
approved_by_name - String
customer_name - String
customer_phone - String
customer_official_id - String
approved_at - DateTime
processed_at - DateTime
completed_at - DateTime
notes - String
rejection_reason - String
returns_request_type - String
created_at - DateTime!
updated_at - DateTime!
Example
{
  "refund_id": "4",
  "customer_id": "xyz789",
  "sale_id": "xyz789",
  "returns_request_id": "xyz789",
  "order_id": "xyz789",
  "loan_contract_id": "xyz789",
  "source_payment_id": "xyz789",
  "adjustment_id": "abc123",
  "refund_workflow_type": "RETURN",
  "refund_amount": 987.65,
  "status": "PENDING",
  "refund_method": "MPESA",
  "transaction_reference": "abc123",
  "submitted_by": "abc123",
  "submitted_by_name": "xyz789",
  "actor_id": "abc123",
  "approved_by": "abc123",
  "approved_by_name": "xyz789",
  "customer_name": "abc123",
  "customer_phone": "xyz789",
  "customer_official_id": "abc123",
  "approved_at": "2007-12-03T10:15:30Z",
  "processed_at": "2007-12-03T10:15:30Z",
  "completed_at": "2007-12-03T10:15:30Z",
  "notes": "xyz789",
  "rejection_reason": "abc123",
  "returns_request_type": "abc123",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

RefundMethod

Description

Method used to process the refund

Values
Enum Value Description

MPESA

BANK_TRANSFER

WALLET

MANUAL

Example
"MPESA"

RefundStatus

Description

Status of a refund request

Values
Enum Value Description

PENDING

APPROVED

PROCESSING

COMPLETED

REJECTED

FAILED

Example
"PENDING"

RefundWorkflowType

Description

Returns workflow that originated the refund

Values
Enum Value Description

RETURN

DOWNGRADE

REPOSSESSION

Example
"RETURN"

RepossessionDetailsType

Fields
Field Name Description
repossession_date - DateTime
repossession_method - CollectionMethod
repossession_notes - String
Example
{
  "repossession_date": "2007-12-03T10:15:30Z",
  "repossession_method": "FIELD_AGENT",
  "repossession_notes": "xyz789"
}

ReturnPolicy

Description

Whether the return is within or outside policy

Values
Enum Value Description

WITHIN_POLICY

OUTSIDE_POLICY

WITHIN_WARRANTY

OUTSIDE_WARRANTY

Example
"WITHIN_POLICY"

ReturnReason

Description

Reason for a device return

Values
Enum Value Description

FUNCTIONAL_ISSUES

GRADING_COSMETICS

CLIENT_UNHAPPY_WITH_PRODUCT

CLIENT_UNHAPPY_WITH_SERVICE

CLIENT_WANTS_DIFFERENT_SKU

CLIENT_UNABLE_TO_PAY_REPAIR

CLIENT_UNABLE_TO_PAY_DEVICE

TAMPERING_FRAUD

OTHER

REPAIR_RELATED

CLIENT_UNHAPPY_WITH_LOAN_TERMS

CLIENT_UNAUTHORIZED_REPAIR

CLIENT_TAMPERED_LOCKING_SYSTEM

HELD_UNDER_INVESTIGATION_NO_REFUND

HELD_UNDER_INVESTIGATION_REFUNDED

FORCED_REPAIR_COST

HOLD_CUSTOMER_AGREED_NO_REFUND

FORCED_TAMPERED

FORCED_REPOSSESSION

AGREED_AND_REFUNDED

Example
"FUNCTIONAL_ISSUES"

ReturnsAction

Description

Action to perform on a returns request

Values
Enum Value Description

SUBMIT

VERIFY_INTENT_OTP

CONFIRM_INTENT_WITHOUT_OTP

START_OPS_REVIEW

APPROVE_DECISION

APPROVE_ARREARS_CLEARANCE

CONFIRM_ARREARS_PAYMENT

REJECT_DECISION

ASSIGN_DEVICE

DETACH_DEVICE

DETACH_SALE_DEVICE

CAPTURE_CONSENT

CONFIRM_TOPUP

SEND_SWAP_EXECUTION_OTP

VERIFY_SWAP_EXECUTION_OTP

RECORD_SWAP_REPAIR_MPESA_CLEARANCE

ACTIVATE_SWAP

EXECUTE

COMPLETE

CANCEL

Example
"SUBMIT"

ReturnsActionPayloadInput

Description

Payload for action-specific data

Fields
Input Field Description
consent_stage - ConsentStage Consent stage
consent_type - ConsentType Consent type
consent_declined - Boolean Whether consent was declined
decisioner_id - String Decisioner user ID
decisioner_notes - String Decisioner notes
customer_notes - String Customer notes
confirmed_price_plan - String Confirmed price plan
confirmed_target_device_model - String Confirmed target device model
confirmed_cash_price - Float Confirmed cash price
new_device_deposit - Float Confirmed new device deposit (tier-aware HIGH/NORMAL from device picker)
confirmed_weekly_instalment_amount - Float Confirmed weekly instalment (tier-aware HIGH/NORMAL from device picker)
confirmed_topup_amount - Float Confirmed top-up amount
confirmed_refund_amount - Float Confirmed refund amount
refund_eligible - Boolean Credit decision: customer refund eligible at loan closure
expected_refund_amount - Float Gross refund before repair deduction
qc_fail_refund_override_reason - String Override reason when approving refund on QC-fail device grade
required_arrears_payment_amount - Float KES customer must pay toward arrears (APPROVE_ARREARS_CLEARANCE on PENDING_ARREARS_WAIVER). CONFIRM_ARREARS_PAYMENT validates ledger reduction.
new_loan_term_months - Int New loan term in months
operations_user_id - String Operations user ID
operations_notes - String Operations notes
repair_cost - Float Repair cost
device_condition - DeviceConditionGrade Device condition grade
locking_system_condition - LockingSystemCondition Locking system condition from ops device assessment
device_unlock_password - String Device unlock password noted during ops inspection
new_device_id - String New device ID (IMEI/serial)
replace_existing - Boolean When a new device is already assigned, set true to replace it (swap / upgrade / downgrade).
repossession_date - DateTime Repossession date
repossession_method - CollectionMethod Repossession method
repossession_notes - String Repossession notes
otp - String OTP for intent consent verification
bypass_otp - Boolean Bypass OTP verification (requires bypass_reason)
bypass_reason - String Reason for bypassing OTP verification
bypass_arrears_gate - Boolean Skip partial-arrears ledger gate on advance actions (requires bypass_arrears_reason)
bypass_arrears_reason - String Audited reason for overriding the arrears payment gate
cancellation_reason - String Reason for cancellation
notes - String General notes for the action
fulfillment_mode - String Fulfillment for new order after upgrade/downgrade: home_delivery (default) or shop_pickup
mpesa_reference - String M-Pesa or payment reference for CX verification (metadata)
bypass_mpesa_verification - Boolean Skip live M-Pesa payment lookup (requires mpesa_bypass_reason). Use when the payments API is unavailable.
mpesa_bypass_reason - String Audited reason for overriding M-Pesa verification (e.g. M-Pesa / payments API downtime)
bypass_repair_payment - Boolean Skip swap repair M-Pesa verification on RECORD_SWAP_REPAIR_MPESA_CLEARANCE (requires bypass_reason).
upgrade_policy_mode - String Policy bucket for top-up messaging (e.g. two_day_window, beyond_two_day)
customer_age_weeks_at_decision - Int Customer age in weeks at decision (for beyond-2-day formula hints)
force_detach - Boolean Skip inventory stock update on DETACH_DEVICE (clears Mongo assignment only). Admin override.
Example
{
  "consent_stage": "INTENT",
  "consent_type": "OTP",
  "consent_declined": false,
  "decisioner_id": "xyz789",
  "decisioner_notes": "xyz789",
  "customer_notes": "xyz789",
  "confirmed_price_plan": "xyz789",
  "confirmed_target_device_model": "xyz789",
  "confirmed_cash_price": 123.45,
  "new_device_deposit": 987.65,
  "confirmed_weekly_instalment_amount": 123.45,
  "confirmed_topup_amount": 123.45,
  "confirmed_refund_amount": 123.45,
  "refund_eligible": false,
  "expected_refund_amount": 123.45,
  "qc_fail_refund_override_reason": "abc123",
  "required_arrears_payment_amount": 123.45,
  "new_loan_term_months": 987,
  "operations_user_id": "xyz789",
  "operations_notes": "xyz789",
  "repair_cost": 123.45,
  "device_condition": "GRADE_A",
  "locking_system_condition": "OK",
  "device_unlock_password": "abc123",
  "new_device_id": "xyz789",
  "replace_existing": false,
  "repossession_date": "2007-12-03T10:15:30Z",
  "repossession_method": "FIELD_AGENT",
  "repossession_notes": "xyz789",
  "otp": "xyz789",
  "bypass_otp": true,
  "bypass_reason": "abc123",
  "bypass_arrears_gate": true,
  "bypass_arrears_reason": "xyz789",
  "cancellation_reason": "abc123",
  "notes": "abc123",
  "fulfillment_mode": "abc123",
  "mpesa_reference": "xyz789",
  "bypass_mpesa_verification": true,
  "mpesa_bypass_reason": "abc123",
  "bypass_repair_payment": false,
  "upgrade_policy_mode": "xyz789",
  "customer_age_weeks_at_decision": 123,
  "force_detach": false
}

ReturnsDevicePickerCurrentPlanType

Description

Current credit plan snapshot for the sale’s application (same resolution as activeCreditPricePlan).

Fields
Field Name Description
plan_id - ID!
plan_name - String!
cash_price - Float!
deposit_amount - Float!
weekly_instalment_amount - Float!
deposit_amount_high - Float High-deposit tier deposit for the current plan quote.
weekly_instalment_amount_high - Float High-deposit tier weekly instalment for the current plan quote.
deposit_tier - String Deposit tier on the sale application (e.g. normal, high), from normal_high_deposit or Fate Guide.
duration_months - Int Loan duration in months for this credit price plan.
Example
{
  "plan_id": "4",
  "plan_name": "abc123",
  "cash_price": 987.65,
  "deposit_amount": 987.65,
  "weekly_instalment_amount": 987.65,
  "deposit_amount_high": 123.45,
  "weekly_instalment_amount_high": 987.65,
  "deposit_tier": "xyz789",
  "duration_months": 987
}

ReturnsDevicePickerDeviceRowType

Fields
Field Name Description
seller_catalog_id - ID!
sku_id - ID!
seller_id - ID!
device_display_name - String!
retail_price - Float!
available_stock - Int!
platform_owner - Boolean True when seller catalog row belongs to platform owner (1P).
deposit_amount - Float
weekly_instalment_amount - Float
deposit_amount_high - Float High-deposit tier deposit for the quoted plan.
weekly_instalment_amount_high - Float High-deposit tier weekly instalment for the quoted plan.
total_loan_amount - Float Total loan amount for the quoted price plan (cash × multiplier). Used for upgrade/downgrade refund threshold.
weekly_installment_count - Int Full-term weekly instalment count for schedule preview.
duration_months - Int Loan duration in months for the quoted plan.
top_up_or_refund_delta - Float Difference vs current_plan.deposit_amount for the requested price plan (positive ≈ top-up, negative ≈ refund).
top_up_or_refund_delta_high - Float High-deposit delta vs current_plan.deposit_amount_high (falls back to standard deposit).
difference_outcome - String Difference outcome for standard tier (to_pay, prepayment, refund).
difference_outcome_high - String Difference outcome for high tier (to_pay, prepayment, refund).
difference_display_amount - Float Display amount for standard-tier outcome. For refund, this is refund amount; for prepayment, this is overpayment amount; otherwise top-up amount.
difference_display_amount_high - Float Display amount for high-tier outcome. For refund, this is refund amount; for prepayment, this is overpayment amount; otherwise top-up amount.
difference_unavailable_reason - String Reason code when backend cannot compute outcome (for example missing ledger inputs).
quote_error - String
Example
{
  "seller_catalog_id": "4",
  "sku_id": "4",
  "seller_id": "4",
  "device_display_name": "xyz789",
  "retail_price": 123.45,
  "available_stock": 123,
  "platform_owner": true,
  "deposit_amount": 987.65,
  "weekly_instalment_amount": 987.65,
  "deposit_amount_high": 987.65,
  "weekly_instalment_amount_high": 987.65,
  "total_loan_amount": 123.45,
  "weekly_installment_count": 123,
  "duration_months": 987,
  "top_up_or_refund_delta": 123.45,
  "top_up_or_refund_delta_high": 123.45,
  "difference_outcome": "xyz789",
  "difference_outcome_high": "abc123",
  "difference_display_amount": 123.45,
  "difference_display_amount_high": 987.65,
  "difference_unavailable_reason": "xyz789",
  "quote_error": "abc123"
}

ReturnsDevicePickerFateGuideCeilingsType

Description

Fate Guide cash ceilings for returns device picker (normal vs high deposit).

Fields
Field Name Description
max_cash_price - Float Max cash price at standard deposit.
max_cash_price_high - Float Max cash price at high deposit (when Fate Guide provides it).
max_cash_price_mosaver - Float Max cash price on MoSaver terms (opt-in ceiling).
catalog_max_cash_price - Float Ceiling used to filter the device catalog (max_cash_price_high ?? max_cash_price).
deposit_level - String Fate Guide deposit level constraint (e.g. normal, high).
Example
{
  "max_cash_price": 123.45,
  "max_cash_price_high": 123.45,
  "max_cash_price_mosaver": 123.45,
  "catalog_max_cash_price": 987.65,
  "deposit_level": "abc123"
}

ReturnsDevicePickerFatePlanOptionType

Description

A price plan id allowed for this customer per their latest Fate Guide scores.

Fields
Field Name Description
plan_id - ID!
plan_name - String!
duration_months - Int Loan duration in months for this price plan.
Example
{
  "plan_id": "4",
  "plan_name": "abc123",
  "duration_months": 123
}

ReturnsDevicePickerInput

Fields
Input Field Description
sale_id - ID!
price_plan_id - String When the Fate Guide lists price plans, must match a plan_id in fate_guide_available_price_plans; otherwise ignored and the active plan is used for quotes.
seller_id - String
show_top_products_only - Boolean
exclude_out_of_stock - Boolean
page - Int
limit - Int Seller-catalog page size (max 10). Use name or product_id to search the catalog. Default = 10
brand - String
model - String
product_id - String
name - String
Example
{
  "sale_id": 4,
  "price_plan_id": "abc123",
  "seller_id": "xyz789",
  "show_top_products_only": true,
  "exclude_out_of_stock": false,
  "page": 987,
  "limit": 123,
  "brand": "xyz789",
  "model": "abc123",
  "product_id": "xyz789",
  "name": "abc123"
}

ReturnsDevicePickerPayload

Fields
Field Name Description
application_id - ID
customer_id - ID
price_restrictions - OnboardingProductFilterType
current_plan - ReturnsDevicePickerCurrentPlanType
devices - [ReturnsDevicePickerDeviceRowType!]!
fate_guide_available_price_plans - [ReturnsDevicePickerFatePlanOptionType!]! Price plans listed on the latest Fate Guide (available_plans), resolved to names. When the Fate Guide has no entries, this is empty and quotes use the application’s active plan.
pagination - OnboardingPaginationMetadataType
fate_guide_id - ID
fate_guide_ceilings - ReturnsDevicePickerFateGuideCeilingsType Separate normal/high cash ceilings from the latest Fate Guide; null when no guide.
effective_price_plan_id - ID Price plan id used for per-row quotes: optional price_plan_id when the Fate Guide lists plans and it matches one of them; otherwise the application’s active / stored credit plan.
unavailable_reason - String When set, device list may be empty; client should fall back to manual SKU entry.
quotes_use_present_day_pricing - Boolean True when device quotes use present-day ceiling plans rather than the application active credit plan.
legacy_price_plan_reference - String Original legacy price plan slug stored on the application, when not a UUID.
Example
{
  "application_id": 4,
  "customer_id": 4,
  "price_restrictions": OnboardingProductFilterType,
  "current_plan": ReturnsDevicePickerCurrentPlanType,
  "devices": [ReturnsDevicePickerDeviceRowType],
  "fate_guide_available_price_plans": [
    ReturnsDevicePickerFatePlanOptionType
  ],
  "pagination": OnboardingPaginationMetadataType,
  "fate_guide_id": 4,
  "fate_guide_ceilings": ReturnsDevicePickerFateGuideCeilingsType,
  "effective_price_plan_id": 4,
  "unavailable_reason": "abc123",
  "quotes_use_present_day_pricing": true,
  "legacy_price_plan_reference": "xyz789"
}

ReturnsFilterInput

Description

Filter input for returns queries

Fields
Input Field Description
request_type - ReturnsRequestTypeFilterInput Filter by request type
status - ReturnsStatusFilterInput Filter by status
customer_id - StringFilterInput Filter by customer ID
sale_id - StringFilterInput Filter by sale ID
ticket_id - StringFilterInput Filter by ticket ID
submitted_by - StringFilterInput Filter by submitted by
return_reason - StringFilterInput Filter by return reason
return_policy - StringFilterInput Filter by return policy
current_device_id - StringFilterInput Filter by current device inventory id
sku_id - StringFilterInput Cross-domain filter by inventory sku id
stock_location - StringFilterInput Cross-domain filter by stock location name
sales_person_id - StringFilterInput Cross-domain filter by sales person id
sales_channel - StringFilterInput Cross-domain filter by sales channel
refund_applicable - BooleanFilterInput Filter by refund applicable
has_refund_awarded - BooleanFilterInput When eq/ne true: refund_applicable and a positive confirmed or calculated refund amount. When eq/ne false: the inverse (no awarded refund).
imei - StringFilterInput Filter by old product snapshot IMEI (partial match via regexFilters)
sku_code - StringFilterInput Filter by old product snapshot SKU code (partial match via regexFilters)
decisioner_id - StringFilterInput Filter by decisioner who approved (decisioner_details.decisioner_id)
operations_user_id - StringFilterInput Filter by ops assignee (operations_details.operations_user_id)
pending_manual_detach - BooleanFilterInput Filter by metadata.pending_manual_detach (devices awaiting OPS detach)
manual_detach_completed - BooleanFilterInput Filter by completed manual sale-device detach (metadata.manual_detach_audit)
submitted_at - DateFilterInput Filter by submitted date
createdAt - DateFilterInput Filter by creation date
updatedAt - DateFilterInput Filter by last update date
or - [ReturnsFilterInput!] Logical OR — match documents satisfying any of the given filters
and - [ReturnsFilterInput!] Logical AND — match documents satisfying all of the given filters
Example
{
  "request_type": ReturnsRequestTypeFilterInput,
  "status": ReturnsStatusFilterInput,
  "customer_id": StringFilterInput,
  "sale_id": StringFilterInput,
  "ticket_id": StringFilterInput,
  "submitted_by": StringFilterInput,
  "return_reason": StringFilterInput,
  "return_policy": StringFilterInput,
  "current_device_id": StringFilterInput,
  "sku_id": StringFilterInput,
  "stock_location": StringFilterInput,
  "sales_person_id": StringFilterInput,
  "sales_channel": StringFilterInput,
  "refund_applicable": BooleanFilterInput,
  "has_refund_awarded": BooleanFilterInput,
  "imei": StringFilterInput,
  "sku_code": StringFilterInput,
  "decisioner_id": StringFilterInput,
  "operations_user_id": StringFilterInput,
  "pending_manual_detach": BooleanFilterInput,
  "manual_detach_completed": BooleanFilterInput,
  "submitted_at": DateFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput,
  "or": [ReturnsFilterInput],
  "and": [ReturnsFilterInput]
}

ReturnsGraphQL

Fields
Field Name Description
_id - ID!
request_type - ReturnsRequestType!
status - ReturnsStatus!
customer_id - String!
sale_id - String!
ticket_id - String
current_device_id - String!
target_device_model - String
return_reason - ReturnReason
customer_notes - String
cxc_notes - String
submitted_by - String!
customer - ResolvedCustomerType
current_device - ResolvedDeviceType
submitted_by_user - ResolvedUserType
operations_user - ResolvedUserType
decisioner_user - ResolvedUserType
submitted_at - DateTime
return_policy - ReturnPolicy
current_device_balance - Float
amount_paid_to_date - Float
current_device_deposit - Float
new_device_deposit - Float
new_device_price - Float
device_allocation_details - DeviceAllocationDetailsType
operations_details - OperationsDetailsType
decisioner_details - DecisionerDetailsType
consent_records - [ConsentRecordType!]
refund_applicable - Boolean!
repossession_details - RepossessionDetailsType
status_history - [StatusHistoryEntryType!]
notes_history - [ReturnsNoteEntryType!] Append-only audit trail of notes submitted on create and actions
price_plan - String
lane_owner - String
superseded_by_request_id - String
supersedes_request_id - String
workflow_switch_reason - String
workflow_switch - WorkflowSwitchType
reverse_progress - ReverseProgress
no_stock_at_request - Boolean True when an originating swap had no platform-owner stock at request time
old_product_snapshot - ProductSnapshotType
new_product_snapshot - ProductSnapshotType
createdAt - DateTime!
updatedAt - DateTime!
intake_return_type_label - String
fulfillment_mode - String
mpesa_reference - String
upgrade_policy_mode - String
customer_age_weeks_at_decision - Int
new_credit_sale_id - ID
new_credit_sale_activated_at - String
topup_confirmed_at - String
swap_repair_mpesa_clearance - JSON
inventory_sync - JSON
pending_manual_detach - Boolean
pending_detach_inventory_id - ID
manual_detach_detached_at - String
manual_detach_inventory_id - ID
linked_application_id - ID
Example
{
  "_id": 4,
  "request_type": "SWAP",
  "status": "PENDING",
  "customer_id": "xyz789",
  "sale_id": "xyz789",
  "ticket_id": "abc123",
  "current_device_id": "abc123",
  "target_device_model": "xyz789",
  "return_reason": "FUNCTIONAL_ISSUES",
  "customer_notes": "abc123",
  "cxc_notes": "abc123",
  "submitted_by": "xyz789",
  "customer": ResolvedCustomerType,
  "current_device": ResolvedDeviceType,
  "submitted_by_user": ResolvedUserType,
  "operations_user": ResolvedUserType,
  "decisioner_user": ResolvedUserType,
  "submitted_at": "2007-12-03T10:15:30Z",
  "return_policy": "WITHIN_POLICY",
  "current_device_balance": 123.45,
  "amount_paid_to_date": 987.65,
  "current_device_deposit": 123.45,
  "new_device_deposit": 987.65,
  "new_device_price": 987.65,
  "device_allocation_details": DeviceAllocationDetailsType,
  "operations_details": OperationsDetailsType,
  "decisioner_details": DecisionerDetailsType,
  "consent_records": [ConsentRecordType],
  "refund_applicable": false,
  "repossession_details": RepossessionDetailsType,
  "status_history": [StatusHistoryEntryType],
  "notes_history": [ReturnsNoteEntryType],
  "price_plan": "abc123",
  "lane_owner": "abc123",
  "superseded_by_request_id": "xyz789",
  "supersedes_request_id": "xyz789",
  "workflow_switch_reason": "xyz789",
  "workflow_switch": WorkflowSwitchType,
  "reverse_progress": "TO_BE_PICKED_UP",
  "no_stock_at_request": false,
  "old_product_snapshot": ProductSnapshotType,
  "new_product_snapshot": ProductSnapshotType,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "intake_return_type_label": "xyz789",
  "fulfillment_mode": "xyz789",
  "mpesa_reference": "abc123",
  "upgrade_policy_mode": "xyz789",
  "customer_age_weeks_at_decision": 123,
  "new_credit_sale_id": 4,
  "new_credit_sale_activated_at": "xyz789",
  "topup_confirmed_at": "abc123",
  "swap_repair_mpesa_clearance": {},
  "inventory_sync": {},
  "pending_manual_detach": false,
  "pending_detach_inventory_id": "4",
  "manual_detach_detached_at": "xyz789",
  "manual_detach_inventory_id": "4",
  "linked_application_id": 4
}

ReturnsIntakeFinancialPreviewType

Fields
Field Name Description
sale_id - ID!
has_loan_ledger - Boolean!
arrears_amount - Float
balance_due - Float
amount_paid - Float
loan_age_days - Int
days_since_last_payment - Int Days since the last payment (from latest ledger snapshot).
last_payment_date - DateTime Date of the last payment applied to the loan.
last_payment_amount - Float Amount of the last payment (resolved from ledger payment_id when present).
days_past_due - Float
requires_arrears_escalation - Boolean True when days_past_due >= 14 and arrears remain — intake may escalate to credit
ledger_id - ID
contract_id - ID
credit_expiry_date - DateTime Latest ledger credit expiry (device lock horizon).
opening_date - DateTime Loan contract opening date.
upfront_payment - Float Loan contract upfront payment (deposit component).
Example
{
  "sale_id": 4,
  "has_loan_ledger": false,
  "arrears_amount": 123.45,
  "balance_due": 987.65,
  "amount_paid": 987.65,
  "loan_age_days": 123,
  "days_since_last_payment": 123,
  "last_payment_date": "2007-12-03T10:15:30Z",
  "last_payment_amount": 987.65,
  "days_past_due": 987.65,
  "requires_arrears_escalation": false,
  "ledger_id": "4",
  "contract_id": 4,
  "credit_expiry_date": "2007-12-03T10:15:30Z",
  "opening_date": "2007-12-03T10:15:30Z",
  "upfront_payment": 123.45
}

ReturnsNoteEntryType

Fields
Field Name Description
_id - ID!
text - String!
author_id - String!
author_name - String
lane - String!
source_action - String
source_field - String
created_at - DateTime!
Example
{
  "_id": 4,
  "text": "xyz789",
  "author_id": "xyz789",
  "author_name": "abc123",
  "lane": "abc123",
  "source_action": "xyz789",
  "source_field": "xyz789",
  "created_at": "2007-12-03T10:15:30Z"
}

ReturnsOpsActionedBy

Fields
Field Name Description
user_id - ID
user_name - String
action - String
at - DateTime
Example
{
  "user_id": 4,
  "user_name": "abc123",
  "action": "abc123",
  "at": "2007-12-03T10:15:30Z"
}

ReturnsOpsAssignee

Fields
Field Name Description
operations_user_id - ID
operations_user_name - String
decisioner_id - ID
decisioner_name - String
Example
{
  "operations_user_id": "4",
  "operations_user_name": "abc123",
  "decisioner_id": 4,
  "decisioner_name": "abc123"
}

ReturnsOpsCreditInformation

Fields
Field Name Description
account_status - String
pending_repair_damage_payment - Float
pending_upgrade_payment_calculated - Float
refund_status - String
amount_refunded - Float
required_arrears_payment_amount - Float
arrears_amount_at_escalation - Float
Example
{
  "account_status": "xyz789",
  "pending_repair_damage_payment": 987.65,
  "pending_upgrade_payment_calculated": 987.65,
  "refund_status": "abc123",
  "amount_refunded": 987.65,
  "required_arrears_payment_amount": 123.45,
  "arrears_amount_at_escalation": 123.45
}

ReturnsOpsCustomerDetails

Fields
Field Name Description
full_name - String
national_id - String
ticket_number - String
phone - String
Example
{
  "full_name": "xyz789",
  "national_id": "abc123",
  "ticket_number": "abc123",
  "phone": "xyz789"
}

ReturnsOpsNewProduct

Fields
Field Name Description
requested_target_model - String
requested_target_display - String
assigned_device - ReturnsOpsProductSnapshot
Example
{
  "requested_target_model": "xyz789",
  "requested_target_display": "abc123",
  "assigned_device": ReturnsOpsProductSnapshot
}

ReturnsOpsNotes

Fields
Field Name Description
customer_notes - String
ops_notes - String
cxc_notes - String
decisioner_notes - String
Example
{
  "customer_notes": "xyz789",
  "ops_notes": "xyz789",
  "cxc_notes": "abc123",
  "decisioner_notes": "abc123"
}

ReturnsOpsOldProduct

Fields
Field Name Description
device - ReturnsOpsProductSnapshot
Example
{"device": ReturnsOpsProductSnapshot}

ReturnsOpsProductSnapshot

Fields
Field Name Description
inventory_id - ID
imei - String
sku_id - ID
sku_code - String
sku_name - String
stock_location - String
stock_type_1p_3p - String
Example
{
  "inventory_id": "4",
  "imei": "abc123",
  "sku_id": "4",
  "sku_code": "xyz789",
  "sku_name": "xyz789",
  "stock_location": "xyz789",
  "stock_type_1p_3p": "xyz789"
}

ReturnsOpsQueueResult

Fields
Field Name Description
items - [ReturnsGraphQL!]!
total - Int!
hasMore - Boolean! True when more queue items exist than returned (see limit).
limit - Int!
Example
{
  "items": [ReturnsGraphQL],
  "total": 987,
  "hasMore": false,
  "limit": 123
}

ReturnsOpsReturnInfo

Fields
Field Name Description
return_type - ReturnsRequestType!
display_return_type - String OPS display label from intake metadata (for example "Return" or "Loan Canceller").
status - ReturnsStatus!
return_policy - ReturnPolicy
return_reason - ReturnReason
reverse_progress - ReverseProgress
Example
{
  "return_type": "SWAP",
  "display_return_type": "abc123",
  "status": "PENDING",
  "return_policy": "WITHIN_POLICY",
  "return_reason": "FUNCTIONAL_ISSUES",
  "reverse_progress": "TO_BE_PICKED_UP"
}

ReturnsOpsSaleDetails

Fields
Field Name Description
channel - String
sfm_id - String
sfm_dsr_id - String
sfm_name - String
sales_person_id - String
sales_agent_dsr_id - String
sales_person_name - String
payment_status - String
sale_status - String
Example
{
  "channel": "xyz789",
  "sfm_id": "abc123",
  "sfm_dsr_id": "abc123",
  "sfm_name": "xyz789",
  "sales_person_id": "xyz789",
  "sales_agent_dsr_id": "abc123",
  "sales_person_name": "abc123",
  "payment_status": "abc123",
  "sale_status": "xyz789"
}

ReturnsOpsTableRow

Fields
Field Name Description
returns_request_id - ID!
customer_id - ID!
sale_id - ID!
request_type - ReturnsRequestType!
status - ReturnsStatus!
ticket_id - String
return_reason - ReturnReason
return_policy - ReturnPolicy
submitted_at - DateTime
createdAt - DateTime
updatedAt - DateTime
customer - JSON
products - JSON
sale - JSON
delivery - JSON
notes - String
superseded_by_request_id - ID
supersedes_request_id - ID
workflow_switch - ReturnsOpsWorkflowSwitch
customerDetails - ReturnsOpsCustomerDetails
oldProduct - ReturnsOpsOldProduct
newProduct - ReturnsOpsNewProduct
returnInfo - ReturnsOpsReturnInfo
creditInformation - ReturnsOpsCreditInformation
saleDetails - ReturnsOpsSaleDetails
timeline - ReturnsOpsTimeline
notesDetail - ReturnsOpsNotes
assignee - ReturnsOpsAssignee
actionedBy - ReturnsOpsActionedBy User who performed the most recent workflow action
financeEmailSentTo - String Comma-separated finance notification recipients from linked refund
swap_repair_mpesa_clearance - JSON
intent_consent_collected - Boolean True when customer intent OTP is verified or bypassed on consent_records
topup_confirmed_at - String ISO timestamp when upgrade top-up payment was confirmed (from metadata)
pending_manual_detach - Boolean True when loan is closed but OPS must manually detach the sale device
pending_detach_inventory_id - ID Inventory id awaiting manual detach after loan closure
manual_detach_detached_at - String When OPS completed manual sale-device detach
manual_detach_inventory_id - ID Inventory id detached from the sale
Example
{
  "returns_request_id": 4,
  "customer_id": "4",
  "sale_id": 4,
  "request_type": "SWAP",
  "status": "PENDING",
  "ticket_id": "abc123",
  "return_reason": "FUNCTIONAL_ISSUES",
  "return_policy": "WITHIN_POLICY",
  "submitted_at": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "customer": {},
  "products": {},
  "sale": {},
  "delivery": {},
  "notes": "xyz789",
  "superseded_by_request_id": "4",
  "supersedes_request_id": "4",
  "workflow_switch": ReturnsOpsWorkflowSwitch,
  "customerDetails": ReturnsOpsCustomerDetails,
  "oldProduct": ReturnsOpsOldProduct,
  "newProduct": ReturnsOpsNewProduct,
  "returnInfo": ReturnsOpsReturnInfo,
  "creditInformation": ReturnsOpsCreditInformation,
  "saleDetails": ReturnsOpsSaleDetails,
  "timeline": ReturnsOpsTimeline,
  "notesDetail": ReturnsOpsNotes,
  "assignee": ReturnsOpsAssignee,
  "actionedBy": ReturnsOpsActionedBy,
  "financeEmailSentTo": "xyz789",
  "swap_repair_mpesa_clearance": {},
  "intent_consent_collected": true,
  "topup_confirmed_at": "xyz789",
  "pending_manual_detach": true,
  "pending_detach_inventory_id": 4,
  "manual_detach_detached_at": "abc123",
  "manual_detach_inventory_id": "4"
}

ReturnsOpsTimeline

Fields
Field Name Description
sale_date - DateTime
return_date - DateTime
loan_closed_date - DateTime
Example
{
  "sale_date": "2007-12-03T10:15:30Z",
  "return_date": "2007-12-03T10:15:30Z",
  "loan_closed_date": "2007-12-03T10:15:30Z"
}

ReturnsOpsWorkflowSwitch

Fields
Field Name Description
from_type - ReturnsRequestType
to_type - ReturnsRequestType
switched_at - DateTime
switched_by - ID
reason - String
force_switch - Boolean
source_status - ReturnsStatus
child_request_id - ID
Example
{
  "from_type": "SWAP",
  "to_type": "SWAP",
  "switched_at": "2007-12-03T10:15:30Z",
  "switched_by": "4",
  "reason": "abc123",
  "force_switch": true,
  "source_status": "PENDING",
  "child_request_id": 4
}

ReturnsRequestType

Description

Type of returns request

Values
Enum Value Description

SWAP

UPGRADE

DOWNGRADE

RETURN

REPOSSESSION

Example
"SWAP"

ReturnsRequestTypeFilterInput

Fields
Input Field Description
eq - ReturnsRequestType
ne - ReturnsRequestType
in - [ReturnsRequestType!]
notIn - [ReturnsRequestType!]
Example
{"eq": "SWAP", "ne": "SWAP", "in": ["SWAP"], "notIn": ["SWAP"]}

ReturnsStatus

Description

Status of a returns request

Values
Enum Value Description

PENDING

AWAITING_INTENT_CONSENT

OPS_REVIEW

PENDING_DECISION

PENDING_ARREARS_WAIVER

AWAITING_ARREARS_PAYMENT

AWAITING_TOPUP

DEVICE_ASSIGNMENT

AWAITING_FINAL_CONSENT

TOPUP_CONFIRMED

EXECUTING_LOAN_SWAP

EXECUTING_UPGRADE

EXECUTING_DOWNGRADE

EXECUTING_RETURN

EXECUTING_REPOSSESSION

RETURN_INITIATED

DEVICE_RECEIVED

LOAN_CANCELLATION_PENDING

LOAN_CANCELLED

REFUND_INITIATED

REPOSSESSION_INITIATED

CONFIRMED

AWAITING_COLLECTION

DEVICE_COLLECTED

AWAITING_REFUND_CONSENT

COMPLETED

REJECTED_BY_OPS

REJECTED_BY_DECISIONER

CONSENT_DECLINED

CANCELLED

DISMISSED

MERGED_TO_REPOSSESSION

Example
"PENDING"

ReturnsStatusFilterInput

Fields
Input Field Description
eq - ReturnsStatus
ne - ReturnsStatus
in - [ReturnsStatus!]
notIn - [ReturnsStatus!]
Example
{"eq": "PENDING", "ne": "PENDING", "in": ["PENDING"], "notIn": ["PENDING"]}

Other

AccountStatusNamespace

Fields
Field Name Description
calculateAccountStatus - StatusCalculationResult! Calculate account status
Arguments
Example
{"calculateAccountStatus": StatusCalculationResult}

ActionApprovalStatusEnum

Values
Enum Value Description

PENDING

APPROVED

REJECTED

NOT_REQUIRED

Example
"PENDING"

ActionStatusEnum

Values
Enum Value Description

DRAFT

PENDING

IN_PROGRESS

COMPLETED

CANCELLED

FAILED

Example
"DRAFT"

ActionTypeEnum

Values
Enum Value Description

NOTE

READ

CREATE

UPDATE

DELETE

APPROVE

REJECT

ASSIGN

SUSPEND

REACTIVATE

ACTIVATE

PROMOTION_REQUEST

AUTHORIZATION_CHECK

DEACTIVATE

PASSWORD_RESET

DISABLE

ENABLE

UPDATE_CONFIG

LOGIN

LOGOUT

GRANT_ACCESS

REVOKE_ACCESS

TRANSFER

GENERATE_REPORT

AUDIT

SUBMIT

ENROLL

GRADUATE

START

COMPLETE

CANCEL

INTEGRATION_SUCCESS

INTEGRATION_FAILURE

SYNCHRONIZATION

DATA_MIGRATION

UPDATE_APPLICATION_STAGE

ASSIGN_APPLICATION_AGENT

UPDATE_APPLICATION_STATUS

UPDATE_APPLICATION

UPDATE_CREDIT_APPLICATION

UPDATE_APPLICATION_CALL

UPDATE_APPLICATION_VALIDITY

UPDATE_CRB_INFO

APPLICATION_RESUBMISSION

UPDATE_APPLICATION_RISK_ASSESSMENT

APPLICATION_CREDIT_EXEMPTION

RETRY_ORDER_CREATION

CREATE_REFERRAL_RELATIONSHIP

VALIDATE_REFERRAL_ELIGIBILITY

PROCESS_REFERRAL_REWARDS

GENERATE_REFERRAL_CODE

MANUALLY_MODIFY_REFERRAL

BULK_VALIDATE_REFERRALS

RESOLVE_REFERRAL_CODE

Example
"NOTE"

AddAgentToCohortInput

Fields
Input Field Description
cohort_id - String!
agent_profile_ids - [String!]!
enrollment_notes - String
enrolled_by - String!
Example
{
  "cohort_id": "xyz789",
  "agent_profile_ids": ["xyz789"],
  "enrollment_notes": "abc123",
  "enrolled_by": "abc123"
}

AdjustmentReasonEnum

Description

Reason of payment adjustment

Values
Enum Value Description

DEPOSIT

OUTSTANDING_BALANCE

REPAYMENT

EARLY_SETTLEMENT

POLICY_RETURN

REPOSSESSION

FIRST_2_DAYS_RETURN

VOLUNTARY_RETURN_CANCELLED_RETURNED_IN_3_MO

VOLUNTARY_RETURN_CANCELLED_RETURNED_PAST_3_MO

VOLUNTARY_RETURN_FIRST_MONTH_DEFAULT_WITH_INVENTORY

OVERPAYMENT

CANCELLED_DELIVERY

NOT_HAPPY_WITH_DEVICE

ERRONEOUS_PAYMENT_TO_PAYBILL

ADMIN_CORRECTION

PAID_OFF_AT_NOT_MOOS_BAL_LT_1

PAID_OFF_AT_NOT_MOOS_BAL_GT_1

REPEAT_LOANS_ERROR_STATUS

STAFF_LOANS_ERROR_STATUS

FMD_AT_FPD_MOOS

PAID_OFF_BAL_MISMATCH_OVERPAYMENT

PAID_OFF_BAL_GT_1_Y_LOAN

PAID_OFF_BAL_GT_1_Y_LOST

PAID_OFF_MOOS_BAL_EQ_1

Example
"DEPOSIT"

AdjustmentStatusEnum

Description

Status of payment adjustment

Values
Enum Value Description

EFFECTED

APPLIED_EOL

REVOKED

PENDING

Example
"EFFECTED"

AdjustmentTypeEnum

Description

Type of payment adjustment

Values
Enum Value Description

REFUND

PROMO

TRADE_IN

PAY_OFF_OFFER

REPAYMENT_OFFER

BULK_PAY_OFFER

WRITE_OFF_ORDER

PENALTY

SYSTEM_ADJUSTMENTS

TRANSACTION_EDIT

MANUAL_RECONCILIATION

MIGRATION_ADJUSTMENT

Example
"REFUND"

AgingBucketType

Fields
Field Name Description
lessThan1h - Int! Applications waiting less than 1 hour
from1hTo4h - Int! Applications waiting 1–4 hours
from4hTo12h - Int! Applications waiting 4–12 hours
moreThan12h - Int! Applications waiting more than 12 hours
Example
{"lessThan1h": 123, "from1hTo4h": 123, "from4hTo12h": 987, "moreThan12h": 987}

AgingResult

Fields
Field Name Description
success - Boolean!
message - String!
contractsProcessed - Int
statusChanges - Int
errors - [String!]
processingTime - Int
Example
{
  "success": true,
  "message": "xyz789",
  "contractsProcessed": 123,
  "statusChanges": 123,
  "errors": ["abc123"],
  "processingTime": 987
}

AirtimeDistributionModeEnum

Description

Mode of airtime distribution

Values
Enum Value Description

MANUAL

AFRICA_TALKING

Example
"MANUAL"

AllocatePaymentToRepairSaleInput

Fields
Input Field Description
payment_id - ID!
sale_id - ID!
excess_action - RepairExcessActionEnum
excess_target_sale_id - ID
excess_reason - String
Example
{
  "payment_id": 4,
  "sale_id": "4",
  "excess_action": "LEAVE_IN_WALLET",
  "excess_target_sale_id": 4,
  "excess_reason": "xyz789"
}

AllocationStatusEnum

Description

Status of an inventory allocation

Values
Enum Value Description

RESERVED

ALLOCATED

RELEASED

EXPIRED

CANCELLED

Example
"RESERVED"

ApplyEarlySettlementInput

Fields
Input Field Description
contract_id - ID!
payment_id - ID!
as_of_date - DateTime
Example
{
  "contract_id": "4",
  "payment_id": 4,
  "as_of_date": "2007-12-03T10:15:30Z"
}

ApplyEarlySettlementResultType

Fields
Field Name Description
payment_id - ID!
adjustment_id - ID!
settled_at - DateTime!
quote_used - EarlySettlementQuoteType!
contract - LoanContractDto!
latest_ledger - LoanLedgerDto
Example
{
  "payment_id": 4,
  "adjustment_id": 4,
  "settled_at": "2007-12-03T10:15:30Z",
  "quote_used": EarlySettlementQuoteType,
  "contract": LoanContractDto,
  "latest_ledger": LoanLedgerDto
}

AssignAgentInput

Fields
Input Field Description
agentId - String!
agentType - AssignedAgentType!
hasStarted - Boolean Whether the agent has started working. Default = false
applicationId - String!
justification - String Reason for this assignment, added to the audit log
Example
{
  "agentId": "xyz789",
  "agentType": "SCORER",
  "hasStarted": true,
  "applicationId": "abc123",
  "justification": "abc123"
}

AssignAgentPayload

Fields
Input Field Description
agentId - String!
agentType - AssignedAgentType!
hasStarted - Boolean Whether the agent has started working. Default = false
Example
{
  "agentId": "xyz789",
  "agentType": "SCORER",
  "hasStarted": true
}

AssignStaffToRegionInput

Fields
Input Field Description
staff_Id - String!
region - String!
territory - TerritoryInput
assignment_notes - String
assigned_by - String!
Example
{
  "staff_Id": "abc123",
  "region": "xyz789",
  "territory": TerritoryInput,
  "assignment_notes": "abc123",
  "assigned_by": "xyz789"
}

AssignStaffToShopInput

Fields
Input Field Description
id - String!
shop_id - String!
assignment_notes - String
assigned_by - String!
Example
{
  "id": "xyz789",
  "shop_id": "abc123",
  "assignment_notes": "xyz789",
  "assigned_by": "abc123"
}

AssignTerritoryInput

Fields
Input Field Description
entityId - String!
entityType - EntityType!
territoryId - ID!
effectiveDate - String
Example
{
  "entityId": "xyz789",
  "entityType": "AGENT",
  "territoryId": "4",
  "effectiveDate": "abc123"
}

AssignTrainerToCohortInput

Fields
Input Field Description
cohort_id - String!
trainer_id - String!
assignment_notes - String
assigned_by - String!
Example
{
  "cohort_id": "abc123",
  "trainer_id": "xyz789",
  "assignment_notes": "abc123",
  "assigned_by": "abc123"
}

AssignedAgentType

Description

Type of agent assigned to a credit application

Values
Enum Value Description

SCORER

CALLER

DECISIONER

Example
"SCORER"

AssignmentStatusEnum

Description

Assignment status of partners

Values
Enum Value Description

UNASSIGNED

ASSIGNED

REASSIGNMENT_PENDING

Example
"UNASSIGNED"

AttachRolesToUserInput

Fields
Input Field Description
userId - ID!
roleNames - [String!]!
realm - String
Example
{
  "userId": "4",
  "roleNames": ["abc123"],
  "realm": "xyz789"
}

AvailableDevicesResultGraphQL

Fields
Field Name Description
fateGuide - FateGuideScoresType!
products - [SellerCatalogObjectType!]!
preferredProduct - SellerCatalogObjectType
productFilter - OnboardingProductFilterType
pagination - OnboardingPaginationMetadataType
availablePlans - [PricingCalculationType!]
pricePlans - [PricePlanObjectType!]
Example
{
  "fateGuide": FateGuideScoresType,
  "products": [SellerCatalogObjectType],
  "preferredProduct": SellerCatalogObjectType,
  "productFilter": OnboardingProductFilterType,
  "pagination": OnboardingPaginationMetadataType,
  "availablePlans": [PricingCalculationType],
  "pricePlans": [PricePlanObjectType]
}

BaseMessageInput

Fields
Input Field Description
title - String
body - String
subject - String
Example
{
  "title": "abc123",
  "body": "xyz789",
  "subject": "xyz789"
}

BaseMessageObjectType

Fields
Field Name Description
title - String
body - String
subject - String
Example
{
  "title": "xyz789",
  "body": "abc123",
  "subject": "xyz789"
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

BooleanFilterInput

Fields
Input Field Description
eq - Boolean
ne - Boolean
Example
{"eq": false, "ne": true}

BulkConfigInput

Description

Bulk config input

Fields
Input Field Description
configs - [CreateConfigInput!]!
Example
{"configs": [CreateConfigInput]}

BulkConfigMutationResponse

Description

Bulk config mutation response

Fields
Field Name Description
success - Boolean!
message - String!
count - Int!
Example
{
  "success": false,
  "message": "xyz789",
  "count": 123
}

BulkInventoryError

Fields
Field Name Description
serial_number - String! Serial number that failed to be created
error - String! Error message describing why creation failed
Example
{
  "serial_number": "xyz789",
  "error": "abc123"
}

BulkInventoryResult

Fields
Field Name Description
success - [InventoryObjectType!]! Successfully created inventory items
failed - [BulkInventoryError!]! Failed inventory items with error details
Example
{
  "success": [InventoryObjectType],
  "failed": [BulkInventoryError]
}

CacheCleared

Description

Cache cleared response

Fields
Field Name Description
success - Boolean!
message - String!
Example
{"success": true, "message": "abc123"}

CalculateOnboardingFateGuideInput

Fields
Input Field Description
applicationId - ID!
queuePrescreening - Boolean
type - FateGuideType!
source - OnboardingFateGuideSource!
Example
{
  "applicationId": 4,
  "queuePrescreening": false,
  "type": "PRESCREENING",
  "source": "PRESCREENING"
}

CallActivityStatsType

Description

Actual call activity sourced from application_call_details records. Only populated for the CREDIT_CALL queue.

Fields
Field Name Description
totalCalls - Int! Total number of call records started within the time frame. Includes repeat attempts on the same application.
completedCalls - Int! Number of call records that have a call_ended_at within the time frame (treated as completed calls).
uniqueApplications - Int! Distinct applications that were called within the time frame
totalCallDurationSeconds - Float! Sum of call_duration_seconds across calls within the time frame
averageCallDurationSeconds - Float! Average call_duration_seconds across calls within the time frame
Example
{
  "totalCalls": 987,
  "completedCalls": 123,
  "uniqueApplications": 123,
  "totalCallDurationSeconds": 123.45,
  "averageCallDurationSeconds": 987.65
}

CallDetailsNokInput

Fields
Input Field Description
call_status - String NOK call status
notes - String NOK notes
relation - String Relation to customer
consent - String NOK consent
idNumber - String NOK ID number
Example
{
  "call_status": "abc123",
  "notes": "abc123",
  "relation": "abc123",
  "consent": "xyz789",
  "idNumber": "abc123"
}

CallDetailsNokType

Fields
Field Name Description
call_status - String
notes - String
relation - String
consent - String
idNumber - String
Example
{
  "call_status": "abc123",
  "notes": "xyz789",
  "relation": "abc123",
  "consent": "xyz789",
  "idNumber": "xyz789"
}

CallDispositionFilterInput

Description

Filter input for call disposition queries

Fields
Input Field Description
application - ApplicationFilterInput Filter by related application fields
application_id - StringFilterInput Filter by application ID
customer_id - StringFilterInput Filter by customer ID
disposition - StringFilterInput Filter by call disposition type
priority - CallPriorityFilterInput Filter by priority level
notes - StringFilterInput Filter by notes
next_call_date - DateFilterInput Filter by next call date
createdAt - DateFilterInput Filter by creation date
updatedAt - DateFilterInput Filter by last update date
or - [CallDispositionFilterInput!] Logical OR — match documents satisfying any of the given filters
and - [CallDispositionFilterInput!] Logical AND — match documents satisfying all of the given filters
Example
{
  "application": ApplicationFilterInput,
  "application_id": StringFilterInput,
  "customer_id": StringFilterInput,
  "disposition": StringFilterInput,
  "priority": CallPriorityFilterInput,
  "notes": StringFilterInput,
  "next_call_date": DateFilterInput,
  "createdAt": DateFilterInput,
  "updatedAt": DateFilterInput,
  "or": [CallDispositionFilterInput],
  "and": [CallDispositionFilterInput]
}

CallDispositionType

Fields
Field Name Description
_id - ID!
application_id - ID!
application - ApplicationEntityGraphQL The application associated with this call disposition
disposition - String!
notes - String
priority - String
next_call_date - DateTime
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "_id": "4",
  "application_id": 4,
  "application": ApplicationEntityGraphQL,
  "disposition": "abc123",
  "notes": "xyz789",
  "priority": "xyz789",
  "next_call_date": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

CallPriority

Values
Enum Value Description

NONE

HIGH

MEDIUM

LOW

Example
"NONE"

CallPriorityFilterInput

Fields
Input Field Description
eq - CallPriority
ne - CallPriority
in - [CallPriority!]
notIn - [CallPriority!]
Example
{"eq": "NONE", "ne": "NONE", "in": ["NONE"], "notIn": ["NONE"]}

CallStatus

Description

Status of the credit call

Values
Enum Value Description

ready

notReached

notReachedOn3x

preApprovedNotReached3x

preApprovedNotReached

preApprovedNotReachedOrNotReady

Example
"ready"

CardRequestInput

Fields
Input Field Description
amount - Float!
currency - String
reference - String!
customer_id - String
wallet_id - String
description - String
metadata - JSONObject
email - String!
cardToken - String
redirectUrl - String
Example
{
  "amount": 123.45,
  "currency": "abc123",
  "reference": "xyz789",
  "customer_id": "abc123",
  "wallet_id": "xyz789",
  "description": "xyz789",
  "metadata": {},
  "email": "abc123",
  "cardToken": "xyz789",
  "redirectUrl": "abc123"
}

CategoriesNamespace

Fields
Field Name Description
createCategory - CategoryObjectType!
Arguments
category - CategoryObjectType!
Arguments
id - ID!
categories - [CategoryObjectType!]!
Arguments
categoriesWithOffsetPagination - OffsetPaginatedCategories!
Arguments
categoriesWithCursorPagination - CursorPaginatedCategories!
Arguments
updateCategory - CategoryObjectType!
Arguments
id - ID!
deleteCategory - Boolean!
Arguments
id - ID!
categoriesCount - Float!
Arguments
categoryHierarchy - [CategoryObjectType!]!
Arguments
categoryId - ID
categoryPath - [CategoryObjectType!]!
Arguments
categoryId - ID!
activeCategories - [CategoryObjectType!]!
Arguments
level - Float
Example
{
  "createCategory": CategoryObjectType,
  "category": CategoryObjectType,
  "categories": [CategoryObjectType],
  "categoriesWithOffsetPagination": OffsetPaginatedCategories,
  "categoriesWithCursorPagination": CursorPaginatedCategories,
  "updateCategory": CategoryObjectType,
  "deleteCategory": false,
  "categoriesCount": 987.65,
  "categoryHierarchy": [CategoryObjectType],
  "categoryPath": [CategoryObjectType],
  "activeCategories": [CategoryObjectType]
}

CollectionMethod

Description

Method used to collect the device

Values
Enum Value Description

FIELD_AGENT

CUSTOMER_DROP_OFF

THIRD_PARTY_RECOVERY

Example
"FIELD_AGENT"

CombinedRiskFlag

Description

Combined risk flag: HIGH_RISK if active risk records exist, LOW_RISK otherwise

Values
Enum Value Description

HIGH_RISK

LOW_RISK

Example
"HIGH_RISK"

CombinedRiskFlagResultType

Fields
Field Name Description
flag - CombinedRiskFlag!
risks - [RawRiskDto!]!
Example
{"flag": "HIGH_RISK", "risks": [RawRiskDto]}

ConditionFilterInput

Description

Filter input for querying conditions

Fields
Input Field Description
grade - String Filter by grade
name - String Filter by name
is_active - Boolean Filter by active status
available_for_sellers - Boolean Filter by seller availability
Example
{
  "grade": "xyz789",
  "name": "xyz789",
  "is_active": false,
  "available_for_sellers": true
}

ConditionObjectType

Fields
Field Name Description
condition_id - ID! Unique condition identifier
grade - String! Condition grade code
name - String! Display name
sort_order - Int Display order
color_hex - String Badge color
badge_icon - String Icon identifier
criteria - JSON! Condition criteria
description - String Customer-facing description
internal_notes - String Staff guidelines
verification_requirements - JSON Required tests/photos
warranty_months - Int Warranty period in months
price_multiplier - Float Price adjustment (1.00 = 100%)
financing_impact - JSON PAYGO loan term adjustments
seller_requirements - JSON Who can sell this grade
is_active - Boolean! Is condition available?
available_for_sellers - Boolean! Can sellers list this?
created_at - DateTime! Creation timestamp
updated_at - DateTime! Last update timestamp
Example
{
  "condition_id": 4,
  "grade": "xyz789",
  "name": "xyz789",
  "sort_order": 987,
  "color_hex": "abc123",
  "badge_icon": "abc123",
  "criteria": {},
  "description": "abc123",
  "internal_notes": "abc123",
  "verification_requirements": {},
  "warranty_months": 987,
  "price_multiplier": 123.45,
  "financing_impact": {},
  "seller_requirements": {},
  "is_active": false,
  "available_for_sellers": false,
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z"
}

ConditionsNamespace

Fields
Field Name Description
createCondition - ConditionObjectType!
Arguments
condition - ConditionObjectType!
Arguments
id - ID!
conditions - [ConditionObjectType!]!
Arguments
conditionsWithOffsetPagination - OffsetPaginatedConditions!
Arguments
conditionsWithCursorPagination - CursorPaginatedConditions!
Arguments
updateCondition - ConditionObjectType!
Arguments
id - ID!
deleteCondition - Boolean!
Arguments
id - ID!
conditionsCount - Float!
Arguments
Example
{
  "createCondition": ConditionObjectType,
  "condition": ConditionObjectType,
  "conditions": [ConditionObjectType],
  "conditionsWithOffsetPagination": OffsetPaginatedConditions,
  "conditionsWithCursorPagination": CursorPaginatedConditions,
  "updateCondition": ConditionObjectType,
  "deleteCondition": false,
  "conditionsCount": 123.45
}

ConfirmedDeliveryLocationInput

Fields
Input Field Description
street - String
city - String
state - String
postal_code - String
country - String
geo - JSON
Example
{
  "street": "abc123",
  "city": "xyz789",
  "state": "abc123",
  "postal_code": "xyz789",
  "country": "abc123",
  "geo": {}
}

ConfirmedDeliveryLocationObjectType

Fields
Field Name Description
street - String
city - String
state - String
postal_code - String
country - String
geo - DeliveryCallGeo
Example
{
  "street": "abc123",
  "city": "xyz789",
  "state": "xyz789",
  "postal_code": "abc123",
  "country": "abc123",
  "geo": DeliveryCallGeo
}

ConfirmedDeliveryTypeEnum

Description

Whether the confirmed delivery is a delivery or a pickup

Values
Enum Value Description

DELIVERY

PICKUP

Example
"DELIVERY"

ConfirmedDeliveryTypeNameEnum

Description

Named delivery channel for the confirmed delivery type

Values
Enum Value Description

MO

PARTNER

INTERCITY

MO_SHOP

STATIC

DEALER

FARGO

RETAIL

Example
"MO"

ConsentRecordType

Fields
Field Name Description
stage - ConsentStage!
consent_type - ConsentType!
verified_at - DateTime
status - ConsentStatus
created_at - DateTime
is_bypassed - Boolean
bypass_reason - String
bypassed_by - String
Example
{
  "stage": "INTENT",
  "consent_type": "OTP",
  "verified_at": "2007-12-03T10:15:30Z",
  "status": "PENDING",
  "created_at": "2007-12-03T10:15:30Z",
  "is_bypassed": true,
  "bypass_reason": "xyz789",
  "bypassed_by": "xyz789"
}

ConsentStage

Description

Stage of consent in the lifecycle flow

Values
Enum Value Description

INTENT

FINAL

REFUND

SWAP_CREDIT_ACK

Example
"INTENT"

ConsentStatus

Description

Status of a consent record

Values
Enum Value Description

PENDING

VERIFIED

DECLINED

EXPIRED

Example
"PENDING"

ConsentType

Description

Type of consent verification

Values
Enum Value Description

OTP

EMAIL

Example
"OTP"

ContactPersonDto

Fields
Field Name Description
name - String! Contact person name
title - String Contact person title
phone - String! Contact person phone
email - String Contact person email
Example
{
  "name": "abc123",
  "title": "abc123",
  "phone": "xyz789",
  "email": "abc123"
}

ContactPersonInput

Fields
Input Field Description
name - String!
title - String
phone - String!
email - String
Example
{
  "name": "abc123",
  "title": "xyz789",
  "phone": "xyz789",
  "email": "xyz789"
}

CorrectCashSaleOverAllocationsInput

Fields
Input Field Description
reason - String!
dryRun - Boolean
saleIds - [String!]
Example
{
  "reason": "abc123",
  "dryRun": true,
  "saleIds": ["xyz789"]
}

CorrectCashSaleOverAllocationsResultType

Fields
Field Name Description
dry_run - Boolean!
corrected - [SaleCorrectionResultType!]!
skipped_sale_ids - [String!]!
corrected_count - Float!
skipped_count - Float!
total_excess - Float!
enqueue_failed_sale_ids - [String!]!
Example
{
  "dry_run": true,
  "corrected": [SaleCorrectionResultType],
  "skipped_sale_ids": ["abc123"],
  "corrected_count": 123.45,
  "skipped_count": 123.45,
  "total_excess": 987.65,
  "enqueue_failed_sale_ids": ["abc123"]
}

CoverageType

Description

Territory coverage status types

Values
Enum Value Description

EXCLUSIVE

SHARED

UNASSIGNED

Example
"EXCLUSIVE"

CreateApplicationCallDetailsInput

Fields
Input Field Description
application_id - ID! Application ID associated with the call details
status - String Call status
notes - String Notes or comments from the call
agent_name - String Agent name who made the call
caller_id - String Caller ID used during the call
delivery_location_type - String Type of delivery location (e.g., home, office)
priority - String Priority level of the call
call_date - DateTime Date when the call was made
follow_up_required - Boolean Whether a follow-up is required
customer_location - String Customer's physical location
employer_info - String Employer information provided during the call
employment_details - String Employment details shared by customer
delivery_location - String Delivery location provided during call
product_choice - String Product the customer chose
confirmed_price_plan - String Confirmed price plan chosen by the customer
geo_address - String Geographical address (geo-coded)
delivery_or_collection_location - String Delivery or collection location preference
other_delivery_notes - String Other notes about delivery instructions
call_outcome - String Outcome of the call
call_notes - String Notes from the call
call_ended_at - DateTime Timestamp when the call ended
call_started_at - DateTime Timestamp when the call started
call_duration_seconds - Int Duration of the call in seconds
call_type - CreditCallTypeEnum Type of credit call — NOK or NO_NOK
nok - CallDetailsNokInput Next of kin details
customer_general_location - String Customer general location
preferred_delivery_day - DateTime Preferred delivery day
preferred_delivery_slot - String Preferred delivery slot
work_location - String Work location of the customer
work_location_link - String Work location link for the customer
screening_consent - String Screening consent
accept_loan_terms - String Accept loan terms
extras - JSON Extra metadata for the call
createdAt - DateTime Creation timestamp
updatedAt - DateTime Last update timestamp
Example
{
  "application_id": 4,
  "status": "abc123",
  "notes": "abc123",
  "agent_name": "xyz789",
  "caller_id": "xyz789",
  "delivery_location_type": "xyz789",
  "priority": "xyz789",
  "call_date": "2007-12-03T10:15:30Z",
  "follow_up_required": true,
  "customer_location": "xyz789",
  "employer_info": "xyz789",
  "employment_details": "abc123",
  "delivery_location": "abc123",
  "product_choice": "xyz789",
  "confirmed_price_plan": "xyz789",
  "geo_address": "xyz789",
  "delivery_or_collection_location": "abc123",
  "other_delivery_notes": "abc123",
  "call_outcome": "xyz789",
  "call_notes": "abc123",
  "call_ended_at": "2007-12-03T10:15:30Z",
  "call_started_at": "2007-12-03T10:15:30Z",
  "call_duration_seconds": 123,
  "call_type": "NOK",
  "nok": CallDetailsNokInput,
  "customer_general_location": "xyz789",
  "preferred_delivery_day": "2007-12-03T10:15:30Z",
  "preferred_delivery_slot": "abc123",
  "work_location": "xyz789",
  "work_location_link": "xyz789",
  "screening_consent": "xyz789",
  "accept_loan_terms": "abc123",
  "extras": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

CreateAuditLogInput

Fields
Input Field Description
object_type - String
object_id - ID
action_type - ActionTypeEnum!
action_description - String
action_status - ActionStatusEnum
auditor_id - ID
auditor_username - String
auditor_email - String
actor_metadata - JSON
object_old_value - JSON
object_new_value - JSON
field_changes - JSON
action_requires_approval - Boolean
action_approval_levels - [String!]
action_requested_by_id - ID
action_requested_by_username - String
action_approver_id - ID
action_approver_username - String
action_approved_at - DateTime
action_approval_status - String
action_approval_notes - String
ip_address - String
user_agent - String
device_info - JSON
session_id - String
audited_at - DateTime
visibility_level - VisibilityLevelEnum
Example
{
  "object_type": "abc123",
  "object_id": 4,
  "action_type": "NOTE",
  "action_description": "xyz789",
  "action_status": "DRAFT",
  "auditor_id": 4,
  "auditor_username": "xyz789",
  "auditor_email": "xyz789",
  "actor_metadata": {},
  "object_old_value": {},
  "object_new_value": {},
  "field_changes": {},
  "action_requires_approval": true,
  "action_approval_levels": ["xyz789"],
  "action_requested_by_id": "4",
  "action_requested_by_username": "abc123",
  "action_approver_id": 4,
  "action_approver_username": "abc123",
  "action_approved_at": "2007-12-03T10:15:30Z",
  "action_approval_status": "abc123",
  "action_approval_notes": "xyz789",
  "ip_address": "abc123",
  "user_agent": "abc123",
  "device_info": {},
  "session_id": "xyz789",
  "audited_at": "2007-12-03T10:15:30Z",
  "visibility_level": "PUBLIC"
}

CreateCallDispositionInput

Fields
Input Field Description
application_id - String! Application ID associated with the call disposition
disposition - String Call disposition status
notes - String Notes or comments from the call
priority - CallPriority Priority level of the call
next_call_date - DateTime Next scheduled call date
Example
{
  "application_id": "abc123",
  "disposition": "abc123",
  "notes": "abc123",
  "priority": "NONE",
  "next_call_date": "2007-12-03T10:15:30Z"
}

CreateCategoryInput

Fields
Input Field Description
name - String! Category name
slug - String! URL-friendly name
description - String Category description
icon - String Category icon name
required_attributes - JSON Required attributes for this category
sku_attributes - JSON SKU attributes for this category
parent_category_id - String Parent category ID
level - Int! Hierarchy level (0, 1, or 2)
path - String Full path (materialized)
sort_order - Int Display order
is_active - Boolean Is category visible?
meta_title - String SEO title
meta_description - String SEO description
Example
{
  "name": "xyz789",
  "slug": "xyz789",
  "description": "abc123",
  "icon": "xyz789",
  "required_attributes": {},
  "sku_attributes": {},
  "parent_category_id": "xyz789",
  "level": 987,
  "path": "xyz789",
  "sort_order": 987,
  "is_active": true,
  "meta_title": "xyz789",
  "meta_description": "xyz789"
}

CreateCohortInput

Fields
Input Field Description
cohort_name - String
cohort_type - CohortType!
training_track - PartnerTrackEnum!
cohort_status - CohortStatus
start_date - DateTime
end_date - DateTime
duration_weeks - Int
assigned_trainer_ids - [String!]
enrolled_agent_ids - [String!]
max_capacity - Int
training_location - String
region - String
curriculum_modules - [String!]
notes - String
created_by - String
Example
{
  "cohort_name": "abc123",
  "cohort_type": "AGENT_ONBOARDING",
  "training_track": "SALES",
  "cohort_status": "PLANNED",
  "start_date": "2007-12-03T10:15:30Z",
  "end_date": "2007-12-03T10:15:30Z",
  "duration_weeks": 987,
  "assigned_trainer_ids": ["abc123"],
  "enrolled_agent_ids": ["abc123"],
  "max_capacity": 123,
  "training_location": "xyz789",
  "region": "abc123",
  "curriculum_modules": ["abc123"],
  "notes": "abc123",
  "created_by": "abc123"
}

CreateCommissionInput

Fields
Input Field Description
channel_type - ChannelTypeEnum!
commission_type - CommissionDeterminationType!
attribute_type - CommissionAttributeType!
commission_value_type - CommissionValueType
sku_id - String
min_price - Float
max_price - Float
product_commission - Float
loan_commission - Float
cash_commission - Float
start_date - String!
end_date - String
is_active - Boolean
Example
{
  "channel_type": "ONLINE_AGENT",
  "commission_type": "FLAT",
  "attribute_type": "ALL",
  "commission_value_type": "FLAT",
  "sku_id": "abc123",
  "min_price": 123.45,
  "max_price": 987.65,
  "product_commission": 123.45,
  "loan_commission": 987.65,
  "cash_commission": 123.45,
  "start_date": "xyz789",
  "end_date": "abc123",
  "is_active": false
}

CreateCommissionOverrideInput

Fields
Input Field Description
agent_profile_id - String!
commission_rule_id - String!
product_commission - Float
loan_commission - Float
cash_commission - Float
commission_value_type - CommissionValueType
is_active - Boolean
Example
{
  "agent_profile_id": "xyz789",
  "commission_rule_id": "xyz789",
  "product_commission": 987.65,
  "loan_commission": 123.45,
  "cash_commission": 987.65,
  "commission_value_type": "FLAT",
  "is_active": false
}

CreateCommunicationInput

Fields
Input Field Description
userId - String!
channel - NotificationChannel!
type - NotificationType
message - BaseMessageInput!
emailData - EmailDataInput
smsData - SmsDataInput
pushData - PushDataInput
inAppData - InAppDataInput
scheduledFor - DateTime
metadata - JSON
tags - [String!]
Example
{
  "userId": "xyz789",
  "channel": "PUSH",
  "type": "INFO",
  "message": BaseMessageInput,
  "emailData": EmailDataInput,
  "smsData": SmsDataInput,
  "pushData": PushDataInput,
  "inAppData": InAppDataInput,
  "scheduledFor": "2007-12-03T10:15:30Z",
  "metadata": {},
  "tags": ["xyz789"]
}

CreateConditionInput

Fields
Input Field Description
grade - String! Condition grade code
name - String! Display name
sort_order - Int! Display order
color_hex - String Badge color
badge_icon - String Icon identifier
criteria - JSON! Condition criteria
description - String! Customer-facing description
internal_notes - String Staff guidelines
verification_requirements - JSON Required tests/photos
warranty_months - Int Warranty period in months
price_multiplier - Float Price adjustment (1.00 = 100%)
financing_impact - JSON PAYGO loan term adjustments
seller_requirements - JSON Who can sell this grade
is_active - Boolean Is condition available?
available_for_sellers - Boolean Can sellers list this?
Example
{
  "grade": "abc123",
  "name": "abc123",
  "sort_order": 987,
  "color_hex": "xyz789",
  "badge_icon": "xyz789",
  "criteria": {},
  "description": "abc123",
  "internal_notes": "abc123",
  "verification_requirements": {},
  "warranty_months": 987,
  "price_multiplier": 123.45,
  "financing_impact": {},
  "seller_requirements": {},
  "is_active": true,
  "available_for_sellers": true
}

CreateConfigInput

Description

Create config input

Fields
Input Field Description
key - String!
value - JSON!
options - [String!]
scope - ConfigSystemEnum
client_id - String
user_id - String
role_id - String
value_type - ConfigSystemType
description - String
category - ConfigCategory
is_encrypted - Boolean
is_versioned - Boolean Enable versioning for this config. Default = false
is_protected - Boolean Protect this config from deletion. Default = false
is_ui_hidden - Boolean Hide this config from the config editor UI. Default = false
requires_validation - Boolean Whether the config value should be validated against its JSON schema. Set to false to store arbitrary JSON without schema validation. Default = true
value_schema - JSON JSON Schema for validating the config value (backend validation + frontend form rendering)
ui_hints - JSON UI rendering hints for the config editor (e.g. component type)
updated_by - String
platform - ConfigPlatformEnum
version - Int
status - ConfigStatusEnum
publish - Boolean Publish immediately (for versioned configs). Default = true
Example
{
  "key": "xyz789",
  "value": {},
  "options": ["xyz789"],
  "scope": "SYSTEM",
  "client_id": "xyz789",
  "user_id": "xyz789",
  "role_id": "abc123",
  "value_type": "STRING",
  "description": "abc123",
  "category": "GENERAL",
  "is_encrypted": true,
  "is_versioned": true,
  "is_protected": false,
  "is_ui_hidden": false,
  "requires_validation": true,
  "value_schema": {},
  "ui_hints": {},
  "updated_by": "abc123",
  "platform": "ALL",
  "version": 987,
  "status": "DRAFT",
  "publish": false
}

CreateCustomerFromApplicationInput

Fields
Input Field Description
application_id - String! Application ID to create customer from
customer_status - CustomerStatusEnum Customer status (defaults to ACTIVE)
customer_type - CustomerTypeEnum Customer type (defaults to INDIVIDUAL)
organization_name - String Override organization name (for organizations)
organization_registration_number - String Organization registration number (for organizations)
customer_email_address - String Override email address from application
creation_notes - String Additional context or notes for customer creation
Example
{
  "application_id": "xyz789",
  "customer_status": "ACTIVE",
  "customer_type": "INDIVIDUAL",
  "organization_name": "abc123",
  "organization_registration_number": "xyz789",
  "customer_email_address": "abc123",
  "creation_notes": "xyz789"
}

CreateCustomerReferralInput

Fields
Input Field Description
referral_code - String!
referee_customer_id - ID!
created_by - String
Example
{
  "referral_code": "abc123",
  "referee_customer_id": "4",
  "created_by": "xyz789"
}

CreateDealerAgentInput

Fields
Input Field Description
user - UserRefInput!
owner_partner_profile_id - String!
whatsapp_number - String
assigned_sfm_id - String
Example
{
  "user": UserRefInput,
  "owner_partner_profile_id": "abc123",
  "whatsapp_number": "xyz789",
  "assigned_sfm_id": "xyz789"
}

CreateDealerOwnerInput

Fields
Input Field Description
primary_contact - PartnerContactPersonInput!
organization - CreateSimpleOrganizationInput
assigned_sfm_id - String
location_details - LocationDetailsInput
whatsapp_number - String
Example
{
  "primary_contact": PartnerContactPersonInput,
  "organization": CreateSimpleOrganizationInput,
  "assigned_sfm_id": "xyz789",
  "location_details": LocationDetailsInput,
  "whatsapp_number": "xyz789"
}

CreateDeliveryCallInput

Fields
Input Field Description
order_id - ID!
called_by - ID!
confirmed_delivery_location - ConfirmedDeliveryLocationInput
spec_preference - SpecPreferenceInput
confirmed_delivery_date - String
confirmed_delivery_slot - DeliverySlotEnum
outcome - DeliveryCallOutcomeEnum
confirmed_delivery_type - ConfirmedDeliveryTypeEnum
confirmed_delivery_type_name - ConfirmedDeliveryTypeNameEnum
notes - String
metadata - JSON
Example
{
  "order_id": 4,
  "called_by": 4,
  "confirmed_delivery_location": ConfirmedDeliveryLocationInput,
  "spec_preference": SpecPreferenceInput,
  "confirmed_delivery_date": "abc123",
  "confirmed_delivery_slot": "MORNING",
  "outcome": "CALL_BACK",
  "confirmed_delivery_type": "DELIVERY",
  "confirmed_delivery_type_name": "MO",
  "notes": "xyz789",
  "metadata": {}
}

CreateDeliveryInput

Fields
Input Field Description
order_id - ID!
seller_id - ID!
assigned_rider_id - ID
delivery_status - DeliveryStatusEnum
delivery_address - JSON
tracking_number - String
estimated_arrival - DateTime
Example
{
  "order_id": "4",
  "seller_id": "4",
  "assigned_rider_id": "4",
  "delivery_status": "PENDING",
  "delivery_address": {},
  "tracking_number": "xyz789",
  "estimated_arrival": "2007-12-03T10:15:30Z"
}

CreateDeliveryItemInput

Fields
Input Field Description
delivery_id - ID!
order_item_id - ID!
quantity_shipped - Int!
Example
{
  "delivery_id": 4,
  "order_item_id": "4",
  "quantity_shipped": 987
}

CreateDowngradeRequestInput

Fields
Input Field Description
customer_id - String! Customer ID(uid)
sale_id - String! Sale ID
ticket_id - String! Linked support ticket ID or URL
return_policy - ReturnPolicy! Return policy selected at intake
return_reason - ReturnReason! Return reason
target_device_model - String! SKU — for decisioner context
new_device_price - Float! New device price in KES (TOTAL LOAN OR CASH PRICE)
customer_notes - String Notes from customer
ops_notes - String OPS notes captured at intake
cxc_notes - String CXC notes captured at intake
intake_return_type_label - String OPS matrix return type label when it differs from backend request_type
submitted_by - String Staff ID submitting the request (fallback when not authenticated)
new_device_deposit - Float! Deposit for the new device in KES
price_plan - String! Price plan for the new device
no_stock_at_request - Boolean True when an originating swap had no platform-owner stock and was switched to downgrade
mpesa_arrears_clearance_reference - String Optional M-Pesa confirmation code for audit when customer cleared arrears before intake
Example
{
  "customer_id": "xyz789",
  "sale_id": "xyz789",
  "ticket_id": "xyz789",
  "return_policy": "WITHIN_POLICY",
  "return_reason": "FUNCTIONAL_ISSUES",
  "target_device_model": "abc123",
  "new_device_price": 987.65,
  "customer_notes": "xyz789",
  "ops_notes": "xyz789",
  "cxc_notes": "xyz789",
  "intake_return_type_label": "abc123",
  "submitted_by": "abc123",
  "new_device_deposit": 123.45,
  "price_plan": "abc123",
  "no_stock_at_request": false,
  "mpesa_arrears_clearance_reference": "xyz789"
}

CreateDraftPricePlanInput

Fields
Input Field Description
tier_id - String
code - String
name - String
min_device_value - Float
max_device_value - Float
deposit_percent - Float
subsequent_loan_discount_percent - Float
deposit_percent_high - Float
loan_multiplier - Float
loan_multiplier_high - Float
mocare_percent - Float
duration_months - Int
duration_months_high - Int
payment_frequency - PaymentFrequencyEnum
effective_from - String
effective_to - String
early_payoff_discounts - [EarlyPayoffDiscountInput!]
status - PricePlanStatusEnum
is_private - Boolean
metadata - JSON
source_plan_id - String
Example
{
  "tier_id": "xyz789",
  "code": "xyz789",
  "name": "abc123",
  "min_device_value": 123.45,
  "max_device_value": 987.65,
  "deposit_percent": 987.65,
  "subsequent_loan_discount_percent": 123.45,
  "deposit_percent_high": 987.65,
  "loan_multiplier": 123.45,
  "loan_multiplier_high": 123.45,
  "mocare_percent": 123.45,
  "duration_months": 123,
  "duration_months_high": 123,
  "payment_frequency": "DAILY",
  "effective_from": "xyz789",
  "effective_to": "abc123",
  "early_payoff_discounts": [EarlyPayoffDiscountInput],
  "status": "ACTIVE",
  "is_private": true,
  "metadata": {},
  "source_plan_id": "abc123"
}

CreateFlashSaleInput

Fields
Input Field Description
title - String! Flash sale title
slug - String
description - String
start_date - DateTime! Sale start date
end_date - DateTime! Sale end date
status - FlashSaleStatusEnum!
max_quantity - Int
sold_quantity - Int
min_discount_percentage - Float
is_featured - Boolean
banner_image - String
icon_url - String
countdown_display - Boolean
priority - Int
participating_sellers - [String!]
performance_metrics - JSON
meta_title - String
meta_description - String
Example
{
  "title": "xyz789",
  "slug": "xyz789",
  "description": "xyz789",
  "start_date": "2007-12-03T10:15:30Z",
  "end_date": "2007-12-03T10:15:30Z",
  "status": "SCHEDULED",
  "max_quantity": 987,
  "sold_quantity": 123,
  "min_discount_percentage": 123.45,
  "is_featured": false,
  "banner_image": "abc123",
  "icon_url": "xyz789",
  "countdown_display": true,
  "priority": 987,
  "participating_sellers": ["xyz789"],
  "performance_metrics": {},
  "meta_title": "xyz789",
  "meta_description": "abc123"
}

CreateFlashSaleItemInput

Fields
Input Field Description
flash_sale_id - String! Flash sale ID
seller_catalog_id - String! Seller catalog ID
product_id - String! Product ID
sku_id - String! SKU ID
original_price - Float! Original price
flash_sale_price - Float! Flash sale price
discount_percentage - Float! Discount percentage
stock_allocated - Int! Stock allocated for sale
stock_sold - Int Stock sold
stock_remaining - Int! Stock remaining
max_per_customer - Int Maximum per customer
display_priority - Int Display priority
is_featured - Boolean Is item featured?
badge_text - String Badge text
Example
{
  "flash_sale_id": "abc123",
  "seller_catalog_id": "xyz789",
  "product_id": "abc123",
  "sku_id": "abc123",
  "original_price": 123.45,
  "flash_sale_price": 123.45,
  "discount_percentage": 123.45,
  "stock_allocated": 987,
  "stock_sold": 123,
  "stock_remaining": 123,
  "max_per_customer": 987,
  "display_priority": 987,
  "is_featured": false,
  "badge_text": "xyz789"
}

CreateGroupInput

Fields
Input Field Description
name - String!
realm - String
description - String
parent_id - String
attributes - JSONObject
keycloak_id - String
Example
{
  "name": "abc123",
  "realm": "xyz789",
  "description": "xyz789",
  "parent_id": "abc123",
  "attributes": {},
  "keycloak_id": "xyz789"
}

CreateInternalStaffProfileInput

Fields
Input Field Description
partner_profile_id - String
operational_role - OperationalRoleEnum!
department - DepartmentEnum!
employee_id - String
employment_type - EmploymentTypeEnum
reports_to_id - String
team_members - [String!]
assigned_shop_id - String
assigned_outlet_id - String
assigned_region - String
assigned_territory - TerritoryInput
work_schedule - WorkScheduleInput
is_offline - Boolean
created_by - String
agent_profile_id - String
passport_photo - Upload
Example
{
  "partner_profile_id": "abc123",
  "operational_role": "SALES_FORCE_MANAGER",
  "department": "SALES",
  "employee_id": "xyz789",
  "employment_type": "FULL_TIME",
  "reports_to_id": "xyz789",
  "team_members": ["abc123"],
  "assigned_shop_id": "abc123",
  "assigned_outlet_id": "xyz789",
  "assigned_region": "abc123",
  "assigned_territory": TerritoryInput,
  "work_schedule": WorkScheduleInput,
  "is_offline": false,
  "created_by": "xyz789",
  "agent_profile_id": "xyz789",
  "passport_photo": Upload
}

CreateInventoryAllocationInput

Fields
Input Field Description
order_item_id - ID!
inventory_id - ID!
quantity_allocated - Float
allocation_status - AllocationStatusEnum
expiry_date - DateTime
metadata - JSON
Example
{
  "order_item_id": "4",
  "inventory_id": 4,
  "quantity_allocated": 987.65,
  "allocation_status": "RESERVED",
  "expiry_date": "2007-12-03T10:15:30Z",
  "metadata": {}
}

CreateInventoryInput

Fields
Input Field Description
product_id - String Product ID
sku_id - String! SKU ID
condition_id - String Condition ID
seller_catalog_id - String Seller catalog ID
seller_id - String! Seller ID
serial_number - JSON! Serial number(s) (IMEI/SN) - string for single, array for bulk creation
identifiers - JSON Additional identifiers
physical_state - PhysicalState! Physical state of device
mdm_enrollment - MdmEnrollmentStatusEnum Canonical MDM enrollment status
stock_status_type - StockStatusTypeEnum High-level stock status type
stock_status_name - StockStatusNameEnum Detailed stock status name
stock_origin - StockOriginEnum Origin of stock
stock_type - StockTypeEnum Ownership stock type
b2b - Boolean Whether the stock item is B2B inventory. Default = false
qc_report - QCReportInput Quality control report
qc_report_link - String QC report file URL
qc_status - QCStatus Quality control status. Default = PENDING
qc_status_type - QCStatusTypeEnum QC status type classification (Inbound, Repair, Reverse)
unit_cost - Float Unit cost paid by seller. Default = 0
contract_id - String Active contract ID
mdm_status - JSON MDM status information
batch_number - String Batch number
location_id - String Current location ID
inspection_report - String Inspection report
warranty - JSON Warranty information
supplier_name - String Supplier name
supplier_order_reference - String Supplier order reference
customer_id - String Customer ID
sale_id - String Sale ID
Example
{
  "product_id": "xyz789",
  "sku_id": "xyz789",
  "condition_id": "abc123",
  "seller_catalog_id": "abc123",
  "seller_id": "xyz789",
  "serial_number": {},
  "identifiers": {},
  "physical_state": "IN_STOCK",
  "mdm_enrollment": "PENDING",
  "stock_status_type": "INBOUND",
  "stock_status_name": "ORDERED",
  "stock_origin": "INTERNATIONAL",
  "stock_type": "ONE_P",
  "b2b": true,
  "qc_report": QCReportInput,
  "qc_report_link": "xyz789",
  "qc_status": "PENDING",
  "qc_status_type": "INBOUND",
  "unit_cost": 123.45,
  "contract_id": "xyz789",
  "mdm_status": {},
  "batch_number": "xyz789",
  "location_id": "abc123",
  "inspection_report": "abc123",
  "warranty": {},
  "supplier_name": "abc123",
  "supplier_order_reference": "abc123",
  "customer_id": "abc123",
  "sale_id": "abc123"
}

CreateInventoryLocationInput

Fields
Input Field Description
location_name - String! Location name
location_type - LocationTypeEnum! Type of location
location_code - String Location code
address - String Physical address
city - String City
region - String Region or state
coordinates - InventoryCoordinatesInput GPS coordinates
location_details - InventoryLocationDetailsInput Structured location details
user_id - String Associated agent profile ID
capacity - Int Maximum capacity
current_stock - Int Current stock count
is_active - Boolean Is location active?
operating_hours - JSON Operating hours
seller_id - String Associated seller ID
Example
{
  "location_name": "abc123",
  "location_type": "TRANSIT_INBOUND",
  "location_code": "abc123",
  "address": "abc123",
  "city": "xyz789",
  "region": "xyz789",
  "coordinates": InventoryCoordinatesInput,
  "location_details": InventoryLocationDetailsInput,
  "user_id": "abc123",
  "capacity": 123,
  "current_stock": 987,
  "is_active": false,
  "operating_hours": {},
  "seller_id": "xyz789"
}

CreateLeadGenerationInput

Fields
Input Field Description
user - UserRefInput!
referral_source - String
assigned_sfm_id - String
whatsapp_number - String
Example
{
  "user": UserRefInput,
  "referral_source": "xyz789",
  "assigned_sfm_id": "abc123",
  "whatsapp_number": "abc123"
}

CreateLoanContractInput

Fields
Input Field Description
sale_id - String! Sale ID associated with this loan contract
customer_id - String Customer ID associated with this loan contract
price_plan_id - String Originating price plan ID used only to snapshot loan terms
opening_date - DateTime! Loan contract opening date
duration - Float Loan duration in days. Default = 364
upfront_payment - Float! Upfront payment amount. Default = 0
deposit - Float Deposit amount. Default = 0
repayment_type - RepaymentTypeEnum! Repayment frequency. Default = WEEKLY
gross_loan_amount - Float! Gross loan amount
interest_rate - Float! Daily interest rate
is_restructured - Boolean! Whether this is a restructured loan. Default = false
original_contract_id - String Original contract ID if restructured
metadata - JSON Additional metadata
loan_status_override - LoanAccountStatusEnum Manual override for calculated loan account status
loan_product_code - String Loan product code
Example
{
  "sale_id": "abc123",
  "customer_id": "abc123",
  "price_plan_id": "abc123",
  "opening_date": "2007-12-03T10:15:30Z",
  "duration": 123.45,
  "upfront_payment": 987.65,
  "deposit": 987.65,
  "repayment_type": "DAILY",
  "gross_loan_amount": 123.45,
  "interest_rate": 123.45,
  "is_restructured": false,
  "original_contract_id": "abc123",
  "metadata": {},
  "loan_status_override": "NEW_ACTIVE",
  "loan_product_code": "xyz789"
}

CreateLoanDelinquencyTrackingInput

Fields
Input Field Description
contract_id - String! Contract ID associated with this tracking record
status - DelinquencyStatusEnum! Delinquency status. Default = CURRENT
delinquency_start_date - DateTime Date when delinquency started
default_date - DateTime Date when account defaulted
days_past_due - Float! Number of days past due. Default = 0
amount_overdue - Float! Amount currently overdue. Default = 0
escalation_level - EscalationLevelEnum! Collection escalation level. Default = REMINDER
collection_actions - JSON Collection actions history
write_off_date - DateTime Date when account was written off
recovery_amount - Float Amount recovered
recovery_probability - Float Recovery probability (0-1)
last_contact_date - DateTime Last contact date with customer
next_action_date - DateTime Next planned action date
assigned_collector - String Assigned collector name
notes - String Collection notes
metadata - JSON Additional metadata
Example
{
  "contract_id": "abc123",
  "status": "CURRENT",
  "delinquency_start_date": "2007-12-03T10:15:30Z",
  "default_date": "2007-12-03T10:15:30Z",
  "days_past_due": 987.65,
  "amount_overdue": 987.65,
  "escalation_level": "REMINDER",
  "collection_actions": {},
  "write_off_date": "2007-12-03T10:15:30Z",
  "recovery_amount": 123.45,
  "recovery_probability": 123.45,
  "last_contact_date": "2007-12-03T10:15:30Z",
  "next_action_date": "2007-12-03T10:15:30Z",
  "assigned_collector": "abc123",
  "notes": "abc123",
  "metadata": {}
}

CreateLoanInstallmentInput

Fields
Input Field Description
contract_id - String! Contract ID associated with this installment
installment_number - Float! Installment number in sequence
installment_type - InstallmentTypeEnum! Type of installment. Default = REGULAR
due_date - DateTime! Installment due date
due_repayment_amount - Float! Total amount due for this installment
due_repayment_principal - Float! Principal amount portion
due_repayment_interest - Float! Interest amount portion
penalty_amount - Float! Penalty amount portion. Default = 0
due_cumulative_principal - Float! Cumulative principal to date
due_cumulative_interest - Float! Cumulative interest to date
cumulative_expected_repay - Float! Cumulative expected repayment (due_cumulative_principal + due_cumulative_interest)
paid_principal - Float! Principal amount paid. Default = 0
paid_interest - Float! Interest amount paid. Default = 0
paid_penalty - Float! Penalty amount paid. Default = 0
outstanding_amount - Float! Outstanding amount remaining. Default = 0
amount_paid - Float! Total amount paid for this installment. Default = 0
status - InstallmentStatusEnum! Installment status. Default = PENDING
paid_date - DateTime Date when installment was paid
days_overdue - Float! Days overdue. Default = 0
installment_year_month - String! Installment year-month (YYYY-MM)
metadata - JSON Additional metadata
Example
{
  "contract_id": "abc123",
  "installment_number": 987.65,
  "installment_type": "REGULAR",
  "due_date": "2007-12-03T10:15:30Z",
  "due_repayment_amount": 987.65,
  "due_repayment_principal": 123.45,
  "due_repayment_interest": 123.45,
  "penalty_amount": 123.45,
  "due_cumulative_principal": 987.65,
  "due_cumulative_interest": 987.65,
  "cumulative_expected_repay": 123.45,
  "paid_principal": 123.45,
  "paid_interest": 987.65,
  "paid_penalty": 123.45,
  "outstanding_amount": 987.65,
  "amount_paid": 123.45,
  "status": "PENDING",
  "paid_date": "2007-12-03T10:15:30Z",
  "days_overdue": 123.45,
  "installment_year_month": "xyz789",
  "metadata": {}
}

CreateLoanLedgerInput

Fields
Input Field Description
contract_id - String! Contract ID associated with this ledger entry
transaction_date - DateTime Transaction date
transaction_type - TransactionTypeEnum! Type of transaction
transaction_status - TransactionStatusEnum! Transaction status. Default = PENDING
debit_credit - DebitCreditEnum! Debit or credit transaction
balance_due - Float! Amount due on the loan
amount_paid - Float! Amount paid in this transaction
arrears_amount - Float! Arrears amount. Default = 0
advance_amount - Float! Advance payment amount. Default = 0
next_due_amount - Float! Next due amount
past_due - Float! Past due amount as percentage. Default = 0
days_past_due - Float! Days past due. Default = 0
loan_age_days - Float! Loan age in days. Default = 0
repayment_due - Float! Total repayment due. Default = 0
days_since_last_payment - Float! Days since last payment. Default = 0
next_invoice_date - DateTime Next invoice date
last_payment_date - DateTime Last payment date
credit_expiry_date - DateTime Credit expiry date for device locking
loan_status - LoanAccountStatusEnum! Loan account status. Default = NEW_ACTIVE
payment_type - LoanPaymentTypeEnum Payment type
payment_id - String Payment ID reference
description - String Transaction description
metadata - JSON Additional metadata
Example
{
  "contract_id": "abc123",
  "transaction_date": "2007-12-03T10:15:30Z",
  "transaction_type": "PAYMENT",
  "transaction_status": "RECONCILED",
  "debit_credit": "DEBIT",
  "balance_due": 987.65,
  "amount_paid": 987.65,
  "arrears_amount": 123.45,
  "advance_amount": 987.65,
  "next_due_amount": 987.65,
  "past_due": 123.45,
  "days_past_due": 123.45,
  "loan_age_days": 123.45,
  "repayment_due": 987.65,
  "days_since_last_payment": 987.65,
  "next_invoice_date": "2007-12-03T10:15:30Z",
  "last_payment_date": "2007-12-03T10:15:30Z",
  "credit_expiry_date": "2007-12-03T10:15:30Z",
  "loan_status": "NEW_ACTIVE",
  "payment_type": "ADJUSTMENT",
  "payment_id": "abc123",
  "description": "abc123",
  "metadata": {}
}

CreateLoanOverrideInput

Fields
Input Field Description
loan_id - String! Loan ID associated with this override
field_name - String! Name of the field being overridden
old_value - String Previous value of the field
new_value - String! New value for the field
reason - String Reason for the override
approved_by - String User who approved the override
Example
{
  "loan_id": "abc123",
  "field_name": "xyz789",
  "old_value": "xyz789",
  "new_value": "abc123",
  "reason": "abc123",
  "approved_by": "abc123"
}

CreateNoteInput

Fields
Input Field Description
object_type - String
object_id - ID
note - String
visibility_level - VisibilityLevelEnum
Example
{
  "object_type": "abc123",
  "object_id": 4,
  "note": "xyz789",
  "visibility_level": "PUBLIC"
}

CreateOfflineAgentInput

Fields
Input Field Description
user - UserRefInput!
assigned_shop_id - String!
assigned_sfm_id - String
assigned_trainer_id - String
whatsapp_number - String
Example
{
  "user": UserRefInput,
  "assigned_shop_id": "abc123",
  "assigned_sfm_id": "xyz789",
  "assigned_trainer_id": "abc123",
  "whatsapp_number": "abc123"
}

CreateOnlineAgentInput

Fields
Input Field Description
user - UserRefInput!
referral_source - String
super_agent_id - String
assigned_sfm_id - String
whatsapp_number - String
Example
{
  "user": UserRefInput,
  "referral_source": "xyz789",
  "super_agent_id": "xyz789",
  "assigned_sfm_id": "xyz789",
  "whatsapp_number": "xyz789"
}

CreateOrUpdatePlatformSellerCatalogInput

Fields
Input Field Description
sku_id - String! SKU ID
cost_price - Float Seller cost price
min_seller_price - Float Minimum seller price
max_seller_price - Float Maximum seller price
currency - String Currency code
stock_on_hand - Int Stock quantity on hand
reserved_stock - Int Reserved stock quantity
is_active - Boolean Is listing active?
Example
{
  "sku_id": "abc123",
  "cost_price": 123.45,
  "min_seller_price": 987.65,
  "max_seller_price": 123.45,
  "currency": "abc123",
  "stock_on_hand": 123,
  "reserved_stock": 123,
  "is_active": false
}

CreateOrderInput

Fields
Input Field Description
customer_id - ID!
order_status - OrderStatusEnum!
payment_status - SalePaymentStatusEnum!
shipping_address - ShippingAddressInput
currency - CurrencyEnum
sub_total - Float!
total_discount - Float!
delivery_fee - Float!
service_fee - Float!
tax_amount - Float!
total_amount - Float!
application_id - String
sale_agent_id - String
submitting_agent_id - String
manual_override - Boolean!
order_date - DateTime
metadata - JSON
Example
{
  "customer_id": 4,
  "order_status": "PENDING",
  "payment_status": "UNPAID",
  "shipping_address": ShippingAddressInput,
  "currency": "KES",
  "sub_total": 987.65,
  "total_discount": 123.45,
  "delivery_fee": 123.45,
  "service_fee": 987.65,
  "tax_amount": 123.45,
  "total_amount": 123.45,
  "application_id": "xyz789",
  "sale_agent_id": "abc123",
  "submitting_agent_id": "abc123",
  "manual_override": false,
  "order_date": "2007-12-03T10:15:30Z",
  "metadata": {}
}

CreateOrderItemInput

Fields
Input Field Description
order_id - ID!
seller_id - ID!
item_type - OrderItemTypeEnum!
catalog_id - ID
quantity - Float!
unit_price - Float!
discount_amount - Float!
adjustments - JSON
subtotal - Float!
purchase_type - PurchaseTypeEnum!
status - String!
metadata - JSON
Example
{
  "order_id": 4,
  "seller_id": 4,
  "item_type": "PRODUCT",
  "catalog_id": "4",
  "quantity": 987.65,
  "unit_price": 123.45,
  "discount_amount": 123.45,
  "adjustments": {},
  "subtotal": 123.45,
  "purchase_type": "CASH",
  "status": "xyz789",
  "metadata": {}
}

CreatePartnerOwnerInput

Fields
Input Field Description
primary_contact - PartnerContactPersonInput!
organization - CreateSimpleOrganizationInput
assigned_sfm_id - String
location_details - LocationDetailsInput
partner_track - PartnerTrackEnum!
whatsapp_number - String
can_sell - Boolean
Example
{
  "primary_contact": PartnerContactPersonInput,
  "organization": CreateSimpleOrganizationInput,
  "assigned_sfm_id": "abc123",
  "location_details": LocationDetailsInput,
  "partner_track": "SALES",
  "whatsapp_number": "xyz789",
  "can_sell": true
}

CreatePartnerProfileInput

Fields
Input Field Description
channel_type - ChannelTypeEnum!
channel_category - ChannelCategoryEnum!
partner_track - PartnerTrackEnum!
entity_type - EntityTypeEnum!
is_owner - Boolean
shop_manager_id - String
platform_owner - Boolean
is_deleted - Boolean
staff_user_ids - [String!]
reports_to_id - String
hierarchy_depth - Int
hierarchy_path - [String!]
downline_partner_ids - [String!]
whatsapp_number - String
secondary_number - String
location_details - LocationDetailsInput
partner_status - PartnerStatusEnum
assignment_status - AssignmentStatusEnum
kyc_status - KYCStatusEnum
training_status - TrainingStatusEnum
current_cohort_id - String
assigned_trainer_id - String
assigned_sfm_id - String
assigned_promoter_id - String
graduation_date - DateTime
cohort_history - [CohortEnrollmentInput!]
assigned_shop_id - String
shop_based - Boolean
outlets - [RetailerOutletInput!]
shop_metadata - StaticShopMetadataInput
kyc_metadata - KYCMetadataInput
activation_date - DateTime
reactivation_date - DateTime
deactivation_date - DateTime
created_by - String
agent_profile_id - String
seller_id - String
Example
{
  "channel_type": "ONLINE_AGENT",
  "channel_category": "IN_HOUSE",
  "partner_track": "SALES",
  "entity_type": "INDIVIDUAL",
  "is_owner": true,
  "shop_manager_id": "abc123",
  "platform_owner": true,
  "is_deleted": false,
  "staff_user_ids": ["xyz789"],
  "reports_to_id": "abc123",
  "hierarchy_depth": 987,
  "hierarchy_path": ["abc123"],
  "downline_partner_ids": ["xyz789"],
  "whatsapp_number": "xyz789",
  "secondary_number": "abc123",
  "location_details": LocationDetailsInput,
  "partner_status": "PROSPECT",
  "assignment_status": "UNASSIGNED",
  "kyc_status": "NOT_SUBMITTED",
  "training_status": "NOT_REQUIRED",
  "current_cohort_id": "abc123",
  "assigned_trainer_id": "abc123",
  "assigned_sfm_id": "abc123",
  "assigned_promoter_id": "xyz789",
  "graduation_date": "2007-12-03T10:15:30Z",
  "cohort_history": [CohortEnrollmentInput],
  "assigned_shop_id": "xyz789",
  "shop_based": false,
  "outlets": [RetailerOutletInput],
  "shop_metadata": StaticShopMetadataInput,
  "kyc_metadata": KYCMetadataInput,
  "activation_date": "2007-12-03T10:15:30Z",
  "reactivation_date": "2007-12-03T10:15:30Z",
  "deactivation_date": "2007-12-03T10:15:30Z",
  "created_by": "abc123",
  "agent_profile_id": "abc123",
  "seller_id": "xyz789"
}

CreatePartnerPromoterInput

Fields
Input Field Description
user - UserRefInput!
employee_id - String
assigned_territories - [String!]
assigned_promoter_partners - [String!]
reports_to_id - String
passport_photo - Upload
Example
{
  "user": UserRefInput,
  "employee_id": "abc123",
  "assigned_territories": ["abc123"],
  "assigned_promoter_partners": ["abc123"],
  "reports_to_id": "xyz789",
  "passport_photo": Upload
}

CreatePartnerShopAttendantInput

Fields
Input Field Description
user - UserRefInput!
owner_partner_profile_id - String!
whatsapp_number - String
Example
{
  "user": UserRefInput,
  "owner_partner_profile_id": "abc123",
  "whatsapp_number": "abc123"
}

CreatePaymentAdjustmentInput

Fields
Input Field Description
adjustment_amount - Float! Adjustment amount (decimal precision 2)
adjustment_currency - CurrencyEnum
customer_id - ID! Target Customer ID
payment_id - ID Reference to the original payment transaction
related_adjustment_id - ID ID of related adjustment for splits
adjustment_reason - AdjustmentReasonEnum!
adjustment_type - AdjustmentTypeEnum!
adjustment_status - AdjustmentStatusEnum
posting_type - PostingTypeEnum
posting_tag - PostingTagEnum
dr_cr - DrCrEnum!
original_contract_number - String
new_contract_number - String
adjustment_note - String
loan_id - String Business loan id (raw_loan_contract.loan_id) for audit/display. Reconciliation prioritization is driven by adjustment_metadata.contract_id, which the bulk importer resolves and sets from this value.
adjustment_metadata - JSON
Example
{
  "adjustment_amount": 123.45,
  "adjustment_currency": "KES",
  "customer_id": 4,
  "payment_id": "4",
  "related_adjustment_id": 4,
  "adjustment_reason": "DEPOSIT",
  "adjustment_type": "REFUND",
  "adjustment_status": "EFFECTED",
  "posting_type": "ADJUSTMENT_POST",
  "posting_tag": "STAFF_SALE_DISCOUNT",
  "dr_cr": "DR",
  "original_contract_number": "xyz789",
  "new_contract_number": "abc123",
  "adjustment_note": "abc123",
  "loan_id": "abc123",
  "adjustment_metadata": {}
}

CreatePaymentAllocationInput

Fields
Input Field Description
payment_id - String! Payment ID that is being allocated
sale_id - String! Sale ID for primary anchor linking
installment_id - String Installment ID receiving the allocation
contract_id - String Contract ID for reference
allocated_amount - Float! Total amount allocated from payment
principal_allocated - Float! Amount allocated to principal
interest_allocated - Float! Amount allocated to interest
penalty_allocated - Float! Amount allocated to penalty. Default = 0
allocation_order - Float! Order of allocation for this payment
metadata - JSON Additional metadata
Example
{
  "payment_id": "abc123",
  "sale_id": "xyz789",
  "installment_id": "xyz789",
  "contract_id": "xyz789",
  "allocated_amount": 123.45,
  "principal_allocated": 987.65,
  "interest_allocated": 123.45,
  "penalty_allocated": 987.65,
  "allocation_order": 987.65,
  "metadata": {}
}

CreatePaymentInput

Fields
Input Field Description
customer_id - String
wallet_id - String
payment_provider - PaymentProviderEnum!
payment_provider_reference - String!
payment_account_reference - String
payment_type - PaymentTypeEnum!
payment_amount - Float!
payment_currency - CurrencyEnum!
payment_channel - PaymentChannelEnum!
payment_transaction_date - DateTime!
payment_phone_number - String
payment_description - String
payment_raw - JSON
Example
{
  "customer_id": "abc123",
  "wallet_id": "abc123",
  "payment_provider": "MPESA",
  "payment_provider_reference": "xyz789",
  "payment_account_reference": "xyz789",
  "payment_type": "PAYMENT",
  "payment_amount": 123.45,
  "payment_currency": "KES",
  "payment_channel": "USSD",
  "payment_transaction_date": "2007-12-03T10:15:30Z",
  "payment_phone_number": "xyz789",
  "payment_description": "abc123",
  "payment_raw": {}
}

CreatePricePlanInput

Fields
Input Field Description
tier_id - String
code - String!
name - String!
min_device_value - Float!
max_device_value - Float
deposit_percent - Float!
subsequent_loan_discount_percent - Float
deposit_percent_high - Float
loan_multiplier - Float!
loan_multiplier_high - Float
mocare_percent - Float
duration_months - Int!
duration_months_high - Int
payment_frequency - PaymentFrequencyEnum
effective_from - String
effective_to - String
early_payoff_discounts - [EarlyPayoffDiscountInput!]
status - PricePlanStatusEnum
is_private - Boolean
metadata - JSON
Example
{
  "tier_id": "xyz789",
  "code": "abc123",
  "name": "xyz789",
  "min_device_value": 987.65,
  "max_device_value": 987.65,
  "deposit_percent": 123.45,
  "subsequent_loan_discount_percent": 123.45,
  "deposit_percent_high": 123.45,
  "loan_multiplier": 987.65,
  "loan_multiplier_high": 123.45,
  "mocare_percent": 123.45,
  "duration_months": 987,
  "duration_months_high": 123,
  "payment_frequency": "DAILY",
  "effective_from": "xyz789",
  "effective_to": "abc123",
  "early_payoff_discounts": [EarlyPayoffDiscountInput],
  "status": "ACTIVE",
  "is_private": true,
  "metadata": {}
}

CreateProductInput

Fields
Input Field Description
name - String! Product name
slug - String! URL-friendly name
brand - String! Product brand
model - String! Product model
category_id - String! Category ID
description - String Short description
long_description - String Detailed description
base_specifications - JSON Product specifications
primary_image_url - String Primary product image URL
images - [String!] Additional product images
video_url - String Product video URL
meta_title - String SEO title
meta_description - String SEO description
keywords - [String!] SEO keywords
is_active - Boolean Is product active?
approval_status - ProductApprovalStatusEnum Approval status
submitted_by_seller_id - String Seller who submitted it
approved_by - String Who approved it
rejection_reason - String Rejection reason
Example
{
  "name": "abc123",
  "slug": "abc123",
  "brand": "xyz789",
  "model": "abc123",
  "category_id": "abc123",
  "description": "abc123",
  "long_description": "xyz789",
  "base_specifications": {},
  "primary_image_url": "abc123",
  "images": ["xyz789"],
  "video_url": "xyz789",
  "meta_title": "abc123",
  "meta_description": "abc123",
  "keywords": ["xyz789"],
  "is_active": true,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "abc123",
  "approved_by": "xyz789",
  "rejection_reason": "xyz789"
}

CreateProductOfferInput

Fields
Input Field Description
status - OfferStatusEnum! Offer status
type - OfferTypeEnum! Offer type
discount_value - Float Discount value
minimum_purchase_amount - Float Minimum purchase amount
maximum_discount_amount - Float Maximum discount amount
usage_limit - Int Usage limit
usage_count - Int Usage count
usage_limit_per_customer - Int Usage limit per customer
promo_code - String Promo code
category_filters - [String!]! Category filters
brand_filters - [String!]! Brand filters
applicable_channels - [String!] Applicable channels
active - Boolean Is offer active?
starts_at - DateTime! Offer start date
ends_at - DateTime! Offer end date
seller_id - String Associated seller ID
sku_id - String Associated SKU ID
Example
{
  "status": "DRAFT",
  "type": "PERCENTAGE",
  "discount_value": 123.45,
  "minimum_purchase_amount": 123.45,
  "maximum_discount_amount": 123.45,
  "usage_limit": 123,
  "usage_count": 987,
  "usage_limit_per_customer": 123,
  "promo_code": "abc123",
  "category_filters": ["abc123"],
  "brand_filters": ["xyz789"],
  "applicable_channels": ["abc123"],
  "active": true,
  "starts_at": "2007-12-03T10:15:30Z",
  "ends_at": "2007-12-03T10:15:30Z",
  "seller_id": "abc123",
  "sku_id": "abc123"
}

CreateRawCustomerWalletsInput

Fields
Input Field Description
customer_id - String! Customer ID this wallet belongs to
customer_wallet_available_balance - Float Unallocated funds available in wallet
customer_wallet_total_payments - Float All payments received
customer_wallet_total_adjustments - Float Refunds, bonuses, penalties
customer_wallet_total_days_given - Float Grace days granted to customer
customer_wallet_total_points - Float Loyalty/reward points earned
customer_wallet_total_allocated - Float Money allocated to sales
customer_wallet_lifetime_credits - Float All money in (lifetime credits)
customer_wallet_lifetime_debits - Float All money out (lifetime debits)
customer_wallet_currency - CurrencyEnum Wallet currency
Example
{
  "customer_id": "xyz789",
  "customer_wallet_available_balance": 123.45,
  "customer_wallet_total_payments": 987.65,
  "customer_wallet_total_adjustments": 987.65,
  "customer_wallet_total_days_given": 987.65,
  "customer_wallet_total_points": 123.45,
  "customer_wallet_total_allocated": 987.65,
  "customer_wallet_lifetime_credits": 123.45,
  "customer_wallet_lifetime_debits": 123.45,
  "customer_wallet_currency": "KES"
}

CreateRawCustomersInput

Fields
Input Field Description
customer_type - CustomerTypeEnum!
customer_phone_number - String!
official_id_number - String!
country - String ISO 3166-1 alpha-2 country code e.g. KE
county - String
sub_county - String
ward - String
town - String
customer_email_address - String
customer_status - CustomerStatusEnum!
customer_first_name - String
customer_surname_name - String
individual_details - IndividualDetailsInput
organization_name - String
organization_registration_number - String
organization_details - OrganizationDetailsInput
contact_person - ContactPersonInput
total_loans_taken - Int
active_loans_count - Int
completed_loans_count - Int
has_defaulted - Boolean
current_credit_score - String
metadata - JSONObject
kyc_documents - KycDocumentsInput
next_of_kin - NextOfKinInput
referral_code - String
Example
{
  "customer_type": "INDIVIDUAL",
  "customer_phone_number": "xyz789",
  "official_id_number": "xyz789",
  "country": "xyz789",
  "county": "xyz789",
  "sub_county": "xyz789",
  "ward": "abc123",
  "town": "abc123",
  "customer_email_address": "abc123",
  "customer_status": "ACTIVE",
  "customer_first_name": "abc123",
  "customer_surname_name": "abc123",
  "individual_details": IndividualDetailsInput,
  "organization_name": "xyz789",
  "organization_registration_number": "abc123",
  "organization_details": OrganizationDetailsInput,
  "contact_person": ContactPersonInput,
  "total_loans_taken": 987,
  "active_loans_count": 123,
  "completed_loans_count": 987,
  "has_defaulted": true,
  "current_credit_score": "xyz789",
  "metadata": {},
  "kyc_documents": KycDocumentsInput,
  "next_of_kin": NextOfKinInput,
  "referral_code": "xyz789"
}

CreateRawPaymentInput

Fields
Input Field Description
customer_id - String Customer ID
wallet_id - String Wallet ID
payment_provider - PaymentProviderEnum! Payment service provider
payment_provider_reference - String! PSP unique transaction reference (required as per unique index)
payment_account_reference - String Optional business/account reference used during payment
payment_type - PaymentTypeEnum! Payment type (e.g., PAYMENT, REFUND, CHARGEBACK)
payment_amount - Float! Payment amount (decimal precision 15,2)
payment_currency - CurrencyEnum Payment currency (Defaults to KES)
payment_channel - PaymentChannelEnum! Payment channel (e.g., APP, USSD, WEB)
payment_status - PaymentStatusEnum Payment status (Defaults to PENDING)
payment_reconciliation_status - PaymentReconciliationStatusEnum Reconciliation status (Defaults to NOT_MATCHED)
payment_transaction_date - String The date the transaction occurred
payment_settled_at - String Payment settlement ISO timestamp
payment_phone_number - String The originating phone number (e.g. MSISDN)
payment_description - String Optional payment description
payment_raw - JSON Full PSP payload or import row data (jsonb)
Example
{
  "customer_id": "xyz789",
  "wallet_id": "abc123",
  "payment_provider": "MPESA",
  "payment_provider_reference": "xyz789",
  "payment_account_reference": "abc123",
  "payment_type": "PAYMENT",
  "payment_amount": 123.45,
  "payment_currency": "KES",
  "payment_channel": "USSD",
  "payment_status": "PENDING",
  "payment_reconciliation_status": "PENDING",
  "payment_transaction_date": "xyz789",
  "payment_settled_at": "xyz789",
  "payment_phone_number": "xyz789",
  "payment_description": "xyz789",
  "payment_raw": {}
}

CreateRawRiskInput

Fields
Input Field Description
block_type - RiskBlockTypeEnum!
blocked_value - String
customer_id - String
primary_id - String
primary_phone - String
phone_numbers - [String!]
associated_phone_numbers - [String!]
associated_ids - [String!]
reason - String!
description - String
severity - RiskSeverityEnum!
restricted_actions - [RiskRestrictedActionEnum!]!
is_active - Boolean
effective_from - DateTime
expires_at - DateTime
Example
{
  "block_type": "CUSTOMER",
  "blocked_value": "abc123",
  "customer_id": "xyz789",
  "primary_id": "xyz789",
  "primary_phone": "xyz789",
  "phone_numbers": ["abc123"],
  "associated_phone_numbers": ["abc123"],
  "associated_ids": ["xyz789"],
  "reason": "abc123",
  "description": "xyz789",
  "severity": "LOW",
  "restricted_actions": ["BLOCK_NEW_CUSTOMERS"],
  "is_active": false,
  "effective_from": "2007-12-03T10:15:30Z",
  "expires_at": "2007-12-03T10:15:30Z"
}

CreateRawWalletTransactionsInput

Fields
Input Field Description
wallet_transaction_id - String Unique wallet transaction identifier (auto-generated if not provided)
wallet_id - String! Wallet ID this transaction belongs to
customer_id - String! Customer ID this transaction belongs to
sale_id - String Sale ID for sale-specific transactions (NULL for unallocated)
wallet_transaction_ref_id - String Reference transaction ID for reversals/transfers
wallet_transaction_type - WalletTransactionTypeEnum! Type of wallet transaction
wallet_transaction_sub_type - WalletTransactionSubTypeEnum! Sub-type of wallet transaction
wallet_transaction_amount - Float! Transaction amount
wallet_transaction_balance_before - Float! Wallet balance before this transaction
wallet_transaction_balance_after - Float! Wallet balance after this transaction
wallet_transaction_days_value - Float Days value for days_given transactions
wallet_transaction_points_value - Float Points value for points transactions
wallet_transaction_status - WalletTransactionStatusEnum! Transaction status
reference - String External reference (M-Pesa code, bank ref, etc)
wallet_transaction_description - String Human-readable transaction description
wallet_transaction_metadata - JSON Additional flexible transaction data
wallet_transaction_completed_at - DateTime Transaction completion timestamp
Example
{
  "wallet_transaction_id": "xyz789",
  "wallet_id": "xyz789",
  "customer_id": "xyz789",
  "sale_id": "abc123",
  "wallet_transaction_ref_id": "abc123",
  "wallet_transaction_type": "PAYMENT",
  "wallet_transaction_sub_type": "MPESA",
  "wallet_transaction_amount": 987.65,
  "wallet_transaction_balance_before": 987.65,
  "wallet_transaction_balance_after": 123.45,
  "wallet_transaction_days_value": 123.45,
  "wallet_transaction_points_value": 987.65,
  "wallet_transaction_status": "PENDING",
  "reference": "abc123",
  "wallet_transaction_description": "abc123",
  "wallet_transaction_metadata": {},
  "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
}

CreateRefundInput

Description

Create a new refund record

Fields
Input Field Description
customer_id - String! Customer ID
sale_id - String! Sale ID
returns_request_id - String! Returns request ID (MongoDB ObjectId)
refund_amount - Float! Refund amount
order_id - String Order ID
loan_contract_id - String Loan contract ID
source_payment_id - String Source payment ID used for payout adjustment linkage
refund_workflow_type - RefundWorkflowType Workflow that originated the refund
adjustment_id - String Linked payment adjustment ID
refund_method - RefundMethod Refund method
notes - String Notes
Example
{
  "customer_id": "abc123",
  "sale_id": "xyz789",
  "returns_request_id": "abc123",
  "refund_amount": 123.45,
  "order_id": "xyz789",
  "loan_contract_id": "xyz789",
  "source_payment_id": "xyz789",
  "refund_workflow_type": "RETURN",
  "adjustment_id": "xyz789",
  "refund_method": "MPESA",
  "notes": "abc123"
}

CreateRepairInput

Fields
Input Field Description
repair_display_id - String Custom repair display ID (auto-generated if not provided)
requires_technician - Boolean Requires technician?
inventory_id - String Inventory item ID
customer_id - String! Customer ID
original_sale_id - String Original sale ID
provider_seller_id - String! Repair provider seller ID
location_status - RepairLocationStatusEnum! Location status
status - RepairStatusEnum Repair status
priority - RepairPriorityEnum Repair priority level
is_left_at_shop - Boolean Is device left at shop?
intake_details - JSON! Intake details
outtake_details - JSON! Outtake details
security - JSON! Security details
issue_tag - String! Issue tag
customer_complaint - String! Customer complaint description
hq_diagnostic_notes - String HQ diagnostic notes
billing_type - RepairBillingTypeEnum! Billing type
quoted_price - Float! Quoted price
spares_cost - Float! Spares cost
Example
{
  "repair_display_id": "xyz789",
  "requires_technician": false,
  "inventory_id": "xyz789",
  "customer_id": "xyz789",
  "original_sale_id": "abc123",
  "provider_seller_id": "xyz789",
  "location_status": "FRONT_DESK",
  "status": "PENDING",
  "priority": "LOW",
  "is_left_at_shop": false,
  "intake_details": {},
  "outtake_details": {},
  "security": {},
  "issue_tag": "xyz789",
  "customer_complaint": "abc123",
  "hq_diagnostic_notes": "abc123",
  "billing_type": "WARRANTY",
  "quoted_price": 123.45,
  "spares_cost": 987.65
}

CreateRepossessionRequestInput

Fields
Input Field Description
customer_id - String! Customer ID
sale_id - String! Sale ID
ticket_id - String! Linked support ticket ID or URL
return_policy - ReturnPolicy! Return policy selected at intake
customer_notes - String Notes from customer
return_reason - ReturnReason! Return reason
refund_applicable - Boolean! Whether a refund will be issued
ops_notes - String OPS notes captured at intake
cxc_notes - String CXC notes captured at intake
intake_return_type_label - String OPS matrix return type label when it differs from backend request_type
submitted_by - String Staff ID submitting the request (fallback when not authenticated)
Example
{
  "customer_id": "xyz789",
  "sale_id": "abc123",
  "ticket_id": "abc123",
  "return_policy": "WITHIN_POLICY",
  "customer_notes": "xyz789",
  "return_reason": "FUNCTIONAL_ISSUES",
  "refund_applicable": false,
  "ops_notes": "abc123",
  "cxc_notes": "xyz789",
  "intake_return_type_label": "xyz789",
  "submitted_by": "abc123"
}

CreateRetailOutletStaffInput

Fields
Input Field Description
user - UserRefInput!
employment_type - EmploymentTypeEnum
employee_id - String
assigned_outlet_id - String!
owner_partner_profile_id - String!
reports_to_id - String
passport_photo - Upload
Example
{
  "user": UserRefInput,
  "employment_type": "FULL_TIME",
  "employee_id": "abc123",
  "assigned_outlet_id": "abc123",
  "owner_partner_profile_id": "abc123",
  "reports_to_id": "abc123",
  "passport_photo": Upload
}

CreateRetailerOrganizationInput

Fields
Input Field Description
primary_contact - PartnerContactPersonInput!
organization - CreateSimpleOrganizationInput
assigned_sfm_id - String
location_details - LocationDetailsInput
Example
{
  "primary_contact": PartnerContactPersonInput,
  "organization": CreateSimpleOrganizationInput,
  "assigned_sfm_id": "abc123",
  "location_details": LocationDetailsInput
}

CreateRetailerOutletInput

Fields
Input Field Description
retailer_organization_id - String!
outlet_name - String!
location - LocationDetailsInput!
Example
{
  "retailer_organization_id": "abc123",
  "outlet_name": "xyz789",
  "location": LocationDetailsInput
}

CreateReturnRequestInput

Fields
Input Field Description
customer_id - String! Customer ID
sale_id - String! Sale ID
ticket_id - String! Linked support ticket ID or URL
return_policy - ReturnPolicy! Return policy selected at intake
return_reason - ReturnReason! Return reason
refund_applicable - Boolean! Whether a refund will be issued
customer_notes - String Notes from customer
ops_notes - String OPS notes captured at intake
cxc_notes - String CXC notes captured at intake
intake_return_type_label - String OPS matrix return type label when it differs from backend request_type
submitted_by - String Staff ID submitting the request (fallback when not authenticated)
mpesa_arrears_clearance_reference - String Optional M-Pesa confirmation code for audit when customer cleared arrears before intake
Example
{
  "customer_id": "abc123",
  "sale_id": "abc123",
  "ticket_id": "abc123",
  "return_policy": "WITHIN_POLICY",
  "return_reason": "FUNCTIONAL_ISSUES",
  "refund_applicable": false,
  "customer_notes": "xyz789",
  "ops_notes": "xyz789",
  "cxc_notes": "abc123",
  "intake_return_type_label": "abc123",
  "submitted_by": "xyz789",
  "mpesa_arrears_clearance_reference": "abc123"
}

CreateRoleInput

Fields
Input Field Description
name - String!
level - Int!
permissions - [String!]!
description - String
canManage - [String!]!
realm - String
Example
{
  "name": "abc123",
  "level": 987,
  "permissions": ["xyz789"],
  "description": "abc123",
  "canManage": ["abc123"],
  "realm": "xyz789"
}

CreateSFMInput

Fields
Input Field Description
user - UserRefInput!
employee_id - String
assigned_territories - [String!]
assigned_region - String
assigned_sfm_partners - [String!]
reports_to_id - String
passport_photo - Upload
Example
{
  "user": UserRefInput,
  "employee_id": "abc123",
  "assigned_territories": ["xyz789"],
  "assigned_region": "xyz789",
  "assigned_sfm_partners": ["xyz789"],
  "reports_to_id": "abc123",
  "passport_photo": Upload
}

CreateSalesInput

Fields
Input Field Description
sale_date - DateTime
order_id - ID!
customer_id - ID!
inventory_id - ID!
sale_agent_id - ID!
submitting_agent_id - ID!
sfm_id - ID!
price_plan_id - ID
metadata - JSON
payment_type - SalesPaymentTypeEnum!
payment_status - SalePaymentStatusEnum!
normal_high_deposit - NormalHighDepositEnum
final_sale_price - Float!
invoice_number - String
status - SaleLifecycleStatusEnum
return_date - DateTime
Example
{
  "sale_date": "2007-12-03T10:15:30Z",
  "order_id": "4",
  "customer_id": 4,
  "inventory_id": "4",
  "sale_agent_id": "4",
  "submitting_agent_id": "4",
  "sfm_id": "4",
  "price_plan_id": 4,
  "metadata": {},
  "payment_type": "REPAIR",
  "payment_status": "UNPAID",
  "normal_high_deposit": "NORMAL",
  "final_sale_price": 123.45,
  "invoice_number": "xyz789",
  "status": "ACTIVE",
  "return_date": "2007-12-03T10:15:30Z"
}

CreateSellerCatalogInput

Fields
Input Field Description
seller_id - String! Seller ID
sku_id - String! SKU ID
cost_price - Float Seller cost price
retail_price - Float! Retail price
currency - String Currency code
stock_on_hand - Int Stock quantity on hand
reserved_stock - Int Reserved stock quantity
is_active - Boolean Is listing active?
Example
{
  "seller_id": "xyz789",
  "sku_id": "abc123",
  "cost_price": 123.45,
  "retail_price": 987.65,
  "currency": "abc123",
  "stock_on_hand": 987,
  "reserved_stock": 987,
  "is_active": true
}

CreateSellerInput

Fields
Input Field Description
partner_profile_id - String Partner profile ID
commission_type_id - String Commission type
tier_id - String Seller tier
seller_type - SellerTypeEnum! Type of seller
payment_details - JSON Payment details
capabilities - JSON Seller capabilities
performance_metrics - JSON! Performance metrics
overall_rating - Float Overall rating (0-5)
total_reviews - Int Total number of reviews
total_sales - Int Total sales count
total_orders_365_days - Int Orders in last 365 days
badges - [String!] Achievement badges
suspension_reason - String Reason for suspension
approved_by - String Who approved the seller
platform_owner - Boolean Platform oner
Example
{
  "partner_profile_id": "abc123",
  "commission_type_id": "abc123",
  "tier_id": "abc123",
  "seller_type": "INTERNAL",
  "payment_details": {},
  "capabilities": {},
  "performance_metrics": {},
  "overall_rating": 123.45,
  "total_reviews": 123,
  "total_sales": 123,
  "total_orders_365_days": 123,
  "badges": ["abc123"],
  "suspension_reason": "abc123",
  "approved_by": "xyz789",
  "platform_owner": true
}

CreateSellerTierInput

Fields
Input Field Description
name - String!
description - String
priority - Int
is_active - Boolean
Example
{
  "name": "abc123",
  "description": "abc123",
  "priority": 987,
  "is_active": true
}

CreateSharedResourceInput

Fields
Input Field Description
resource_type - ShareResourceTypeEnum!
name - String!
key - String
description - String
client_id - String
is_public - Boolean
shared_with_user_ids - [String!]
shared_with_roles - [String!]
view_config - ViewConfigInput
Example
{
  "resource_type": "VIEW",
  "name": "xyz789",
  "key": "xyz789",
  "description": "xyz789",
  "client_id": "abc123",
  "is_public": true,
  "shared_with_user_ids": ["abc123"],
  "shared_with_roles": ["abc123"],
  "view_config": ViewConfigInput
}

CreateShopAttendantInput

Fields
Input Field Description
user - UserRefInput
owner_partner_profile_id - String!
employee_id - String
passport_photo - Upload
Example
{
  "user": UserRefInput,
  "owner_partner_profile_id": "xyz789",
  "employee_id": "xyz789",
  "passport_photo": Upload
}

CreateShopManagerInput

Fields
Input Field Description
user - UserRefInput!
employee_id - String
assigned_shop_id - String
reports_to_id - String
passport_photo - Upload
Example
{
  "user": UserRefInput,
  "employee_id": "abc123",
  "assigned_shop_id": "abc123",
  "reports_to_id": "xyz789",
  "passport_photo": Upload
}

CreateShopOwnerInput

Fields
Input Field Description
user - UserRefInput
shop_name - String
assigned_sfm_id - String
shop_manager_id - String
whatsapp_number - String
phone_number - String
location - LocationDetailsInput
Example
{
  "user": UserRefInput,
  "shop_name": "xyz789",
  "assigned_sfm_id": "xyz789",
  "shop_manager_id": "abc123",
  "whatsapp_number": "abc123",
  "phone_number": "xyz789",
  "location": LocationDetailsInput
}

CreateSimpleOrganizationInput

Fields
Input Field Description
organization_name - String!
organization_email - String
organization_phone_number - String
Example
{
  "organization_name": "abc123",
  "organization_email": "abc123",
  "organization_phone_number": "abc123"
}

CreateSimpleUserInput

Fields
Input Field Description
email - String!
job_title - String
first_name - String
surname - String
last_name - String
phone_number - String
keycloak_id - String
Example
{
  "email": "abc123",
  "job_title": "abc123",
  "first_name": "xyz789",
  "surname": "xyz789",
  "last_name": "abc123",
  "phone_number": "abc123",
  "keycloak_id": "xyz789"
}

CreateSkuAgentWhitelistInput

Fields
Input Field Description
sku_id - String!
agent_id - ID
agent_type - AgentTypeEnum
is_active - Boolean
Example
{
  "sku_id": "xyz789",
  "agent_id": "4",
  "agent_type": "SFM",
  "is_active": false
}

CreateSkuChildInput

Fields
Input Field Description
condition_id - String Condition ID
name - String! SKU display name
attributes - JSON! SKU attributes
level_attribute_key - String Hierarchy attribute key for the child level
level_attribute_value - String Hierarchy attribute value for the child level
variant_specifications - JSON Variant specifications
msrp_price - Float Original retail price
min_seller_price - Float Minimum seller price
max_seller_price - Float Maximum seller price
suggested_retail_price - Float Suggested retail price override
weight_grams - Int Weight in grams
dimensions_mm - String Dimensions in mm
is_active - Boolean Is SKU active?
approval_status - ProductApprovalStatusEnum Approval status
Example
{
  "condition_id": "abc123",
  "name": "xyz789",
  "attributes": {},
  "level_attribute_key": "xyz789",
  "level_attribute_value": "abc123",
  "variant_specifications": {},
  "msrp_price": 987.65,
  "min_seller_price": 123.45,
  "max_seller_price": 123.45,
  "suggested_retail_price": 987.65,
  "weight_grams": 987,
  "dimensions_mm": "xyz789",
  "is_active": false,
  "approval_status": "APPROVED"
}

CreateSkuInput

Fields
Input Field Description
product_id - String! Product ID
condition_id - String Condition ID
parent_sku_id - String Parent SKU ID
level - Int Hierarchy level. Defaults to 1 for roots.
level_attribute_key - String Hierarchy attribute key for this level
level_attribute_value - String Hierarchy attribute value for this level
sku_code - String Unique SKU code
name - String! SKU name
attributes - JSON! SKU attributes
variant_specifications - JSON Variant specifications
msrp_price - Float Original retail price
min_seller_price - Float Minimum seller price
max_seller_price - Float Maximum seller price
suggested_retail_price - Float Suggested retail price
images - [String!] SKU images
weight_grams - Int Weight in grams
dimensions_mm - String Dimensions in mm
is_active - Boolean Is SKU active?
approval_status - ProductApprovalStatusEnum Approval status
submitted_by_seller_id - String Seller who submitted it
approved_by - String Who approved it
rejection_reason - String Rejection reason
Example
{
  "product_id": "abc123",
  "condition_id": "abc123",
  "parent_sku_id": "abc123",
  "level": 123,
  "level_attribute_key": "abc123",
  "level_attribute_value": "xyz789",
  "sku_code": "xyz789",
  "name": "abc123",
  "attributes": {},
  "variant_specifications": {},
  "msrp_price": 987.65,
  "min_seller_price": 987.65,
  "max_seller_price": 987.65,
  "suggested_retail_price": 123.45,
  "images": ["abc123"],
  "weight_grams": 987,
  "dimensions_mm": "xyz789",
  "is_active": false,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "abc123",
  "approved_by": "abc123",
  "rejection_reason": "xyz789"
}

CreateSubsequentLoanInput

Fields
Input Field Description
customerId - String! Customer UUID or official ID number
sellerCatalogId - String Seller catalog ID for the new application
salesAgentId - String Sales agent responsible for the application
applicationChannel - ApplicationChannelEnum Channel through which the application is created
loanProductId - String Loan product ID (raw_loan_products) for the new application
productCashPrice - Float Cash price of the product for the new application
skipOtpConsent - Boolean When true, skip OTP consent and advance directly to credit call. Default = false
Example
{
  "customerId": "abc123",
  "sellerCatalogId": "abc123",
  "salesAgentId": "abc123",
  "applicationChannel": "SALES_APP",
  "loanProductId": "xyz789",
  "productCashPrice": 123.45,
  "skipOtpConsent": false
}

CreateSuperAgentInput

Fields
Input Field Description
user - UserRefInput!
referral_source - String
assigned_sfm_id - String
whatsapp_number - String
referral_code - String
Example
{
  "user": UserRefInput,
  "referral_source": "xyz789",
  "assigned_sfm_id": "abc123",
  "whatsapp_number": "xyz789",
  "referral_code": "abc123"
}

CreateSwapRequestInput

Fields
Input Field Description
customer_id - String! Customer ID
sale_id - String! Sale ID
ticket_id - String! Linked support ticket ID or URL
return_policy - ReturnPolicy! Return policy selected at intake
return_reason - ReturnReason! Return reason
customer_notes - String Notes from customer
ops_notes - String OPS notes captured at intake
cxc_notes - String CXC notes captured at intake
intake_return_type_label - String OPS matrix return type label when it differs from backend request_type
submitted_by - String Staff ID submitting the request (fallback when not authenticated)
no_stock_at_request - Boolean True when the swap was requested while no platform-owner stock was available for the current SKU
mpesa_arrears_clearance_reference - String Optional M-Pesa confirmation code for audit when customer cleared arrears before intake
Example
{
  "customer_id": "abc123",
  "sale_id": "xyz789",
  "ticket_id": "abc123",
  "return_policy": "WITHIN_POLICY",
  "return_reason": "FUNCTIONAL_ISSUES",
  "customer_notes": "xyz789",
  "ops_notes": "abc123",
  "cxc_notes": "abc123",
  "intake_return_type_label": "xyz789",
  "submitted_by": "abc123",
  "no_stock_at_request": false,
  "mpesa_arrears_clearance_reference": "abc123"
}

CreateTelesalesAgentInput

Fields
Input Field Description
user - UserRefInput!
employee_id - String
reports_to_id - String
passport_photo - Upload
Example
{
  "user": UserRefInput,
  "employee_id": "abc123",
  "reports_to_id": "xyz789",
  "passport_photo": Upload
}

CreateTerritoryInput

Fields
Input Field Description
name - String!
description - String
level - TerritoryLevel!
ward_ids - [ID!]
zone_ids - [ID!]
region_id - ID
created_by - String!
is_active - Boolean
metadata - JSON
Example
{
  "name": "xyz789",
  "description": "abc123",
  "level": "COUNTRY",
  "ward_ids": ["4"],
  "zone_ids": [4],
  "region_id": "4",
  "created_by": "abc123",
  "is_active": true,
  "metadata": {}
}

CreateTrainerInput

Fields
Input Field Description
user - UserRefInput!
employee_id - String
specializations - [String!]
reports_to_id - String
passport_photo - Upload
Example
{
  "user": UserRefInput,
  "employee_id": "xyz789",
  "specializations": ["abc123"],
  "reports_to_id": "xyz789",
  "passport_photo": Upload
}

CreateUpgradeRequestInput

Fields
Input Field Description
customer_id - String! Customer ID(uid)
sale_id - String! Sale ID
ticket_id - String! Linked support ticket ID or URL
return_policy - ReturnPolicy! Return policy selected at intake
return_reason - ReturnReason! Return reason
target_device_model - String! SKU — for decisioner context
new_device_price - Float! New device price in KES (TOTAL LOAN OR CASH PRICE)
customer_notes - String Notes from customer
ops_notes - String OPS notes captured at intake
cxc_notes - String CXC notes captured at intake
intake_return_type_label - String OPS matrix return type label when it differs from backend request_type
submitted_by - String Staff ID submitting the request (fallback when not authenticated)
new_device_deposit - Float! Deposit for the new device in KES
price_plan - String! Price plan for the new device
no_stock_at_request - Boolean True when an originating swap had no platform-owner stock and was switched to upgrade
mpesa_arrears_clearance_reference - String Optional M-Pesa confirmation code for audit when customer cleared arrears before intake
Example
{
  "customer_id": "abc123",
  "sale_id": "xyz789",
  "ticket_id": "xyz789",
  "return_policy": "WITHIN_POLICY",
  "return_reason": "FUNCTIONAL_ISSUES",
  "target_device_model": "xyz789",
  "new_device_price": 123.45,
  "customer_notes": "abc123",
  "ops_notes": "xyz789",
  "cxc_notes": "xyz789",
  "intake_return_type_label": "abc123",
  "submitted_by": "xyz789",
  "new_device_deposit": 987.65,
  "price_plan": "abc123",
  "no_stock_at_request": false,
  "mpesa_arrears_clearance_reference": "xyz789"
}

CreateUserInput

Fields
Input Field Description
keycloak_id - String
username - String
email - String!
first_name - String
surname - String
last_name - String
phone_number - String
user_type - UserTypeEnum!
is_internal - Boolean!
enabled - Boolean!
role - String
group_memberships - [String!]
attributes - JSONObject
Example
{
  "keycloak_id": "abc123",
  "username": "xyz789",
  "email": "xyz789",
  "first_name": "xyz789",
  "surname": "xyz789",
  "last_name": "xyz789",
  "phone_number": "xyz789",
  "user_type": "SYSTEM_ADMIN",
  "is_internal": true,
  "enabled": false,
  "role": "xyz789",
  "group_memberships": ["xyz789"],
  "attributes": {}
}

CreateZoneInput

Fields
Input Field Description
name - String!
ward_id - ID
district_id - ID
lat - Float
lng - Float
radius_km - Float
polygon - JSON
is_active - Boolean
created_by - String
metadata - JSON
Example
{
  "name": "xyz789",
  "ward_id": "4",
  "district_id": "4",
  "lat": 123.45,
  "lng": 123.45,
  "radius_km": 123.45,
  "polygon": {},
  "is_active": true,
  "created_by": "xyz789",
  "metadata": {}
}

CreditApplicationConfigType

Fields
Field Name Description
mpesaStatementValid - CreditConfigFieldType!
bankStatementValid - CreditConfigFieldType!
kraPinValid - CreditConfigFieldType!
customerIdFrontpageValid - CreditConfigFieldType!
idWithSelfieValid - CreditConfigFieldType!
altContactIdValid - CreditConfigFieldType!
altContactPhoneValid - CreditConfigFieldType!
customerIdBackpageValid - CreditConfigFieldType!
mpesaStatementRecentAirtime - CreditConfigFieldType!
mpesaStatementGapsAnalysis - CreditConfigFieldType!
crdApproval - CreditConfigFieldType!
previousLoans - CreditConfigFieldType!
riskFlags - CreditConfigFieldType!
creditStatus - CreditConfigFieldType!
pendingKycChecks - CreditConfigFieldType!
highDepositOverride - CreditConfigFieldType!
loanDuration - CreditConfigFieldType!
pricePlanCreditStatus - CreditConfigFieldType!
approvalCreditStatus - CreditConfigFieldType!
depositAndDeliveryCreditStatus - CreditConfigFieldType!
finalRiskScore - CreditConfigFieldType!
creditCallStatus - CreditConfigFieldType!
Example
{
  "mpesaStatementValid": CreditConfigFieldType,
  "bankStatementValid": CreditConfigFieldType,
  "kraPinValid": CreditConfigFieldType,
  "customerIdFrontpageValid": CreditConfigFieldType,
  "idWithSelfieValid": CreditConfigFieldType,
  "altContactIdValid": CreditConfigFieldType,
  "altContactPhoneValid": CreditConfigFieldType,
  "customerIdBackpageValid": CreditConfigFieldType,
  "mpesaStatementRecentAirtime": CreditConfigFieldType,
  "mpesaStatementGapsAnalysis": CreditConfigFieldType,
  "crdApproval": CreditConfigFieldType,
  "previousLoans": CreditConfigFieldType,
  "riskFlags": CreditConfigFieldType,
  "creditStatus": CreditConfigFieldType,
  "pendingKycChecks": CreditConfigFieldType,
  "highDepositOverride": CreditConfigFieldType,
  "loanDuration": CreditConfigFieldType,
  "pricePlanCreditStatus": CreditConfigFieldType,
  "approvalCreditStatus": CreditConfigFieldType,
  "depositAndDeliveryCreditStatus": CreditConfigFieldType,
  "finalRiskScore": CreditConfigFieldType,
  "creditCallStatus": CreditConfigFieldType
}

CreditCallTypeEnum

Description

Type of credit call made — with or without next of kin

Values
Enum Value Description

NOK

NO_NOK

Example
"NOK"

CreditConfigFieldType

Fields
Field Name Description
name - String!
options - [DropdownOptionType!]!
Example
{
  "name": "abc123",
  "options": [DropdownOptionType]
}

CreditNamespace

Fields
Field Name Description
queueAnalytics - QueueAnalyticsType! Get queue analytics (counts, wait time, agent availability) for a queue scoped to a time frame
Arguments
queueWorkload - QueueWorkloadResponseType! Get per-agent workload breakdown for a queue, optionally narrowed to one agent
Arguments
queueApplicationsOffset - OffsetPaginatedApplications! Get queue applications with offset pagination
Arguments
queueApplicationsCursor - CursorPaginatedApplications! Get queue applications with cursor pagination
Arguments
updateCreditProspectStage - ApplicationEntityGraphQL! Update the prospect stage of a credit application
Arguments
assignCreditAgent - ApplicationEntityGraphQL! Assign a scorer, caller, or decisioner agent to a credit application
Arguments
updateCreditApplication - ApplicationEntityGraphQL! Update a credit application. Use the type field to route to specific handlers (validation, nok, credit_call, crb_info, resubmission, credit_status) or omit for a general update.
Arguments
retryOrderCreation - ApplicationEntityGraphQL! Retry order creation for an application stuck in needs_review after the user has resolved conflicting orders
Arguments
applicationId - ID!
Example
{
  "queueAnalytics": QueueAnalyticsType,
  "queueWorkload": QueueWorkloadResponseType,
  "queueApplicationsOffset": OffsetPaginatedApplications,
  "queueApplicationsCursor": CursorPaginatedApplications,
  "updateCreditProspectStage": ApplicationEntityGraphQL,
  "assignCreditAgent": ApplicationEntityGraphQL,
  "updateCreditApplication": ApplicationEntityGraphQL,
  "retryOrderCreation": ApplicationEntityGraphQL
}

CreditQueue

Description

Business queue for credit processing

Values
Enum Value Description

SCORING

CREDIT_CALL

DECISIONING

Example
"SCORING"

CreditQueueState

Description

State of work within a credit queue

Values
Enum Value Description

WAITING

RESUBMISSIONS

RESUBMISSIONS_READY

ONGOING

COMPLETED

Example
"WAITING"

CreditUpdateType

Description

Type of credit update. Leave empty for general credit application update.

Values
Enum Value Description

VALIDATION

NOK

CREDIT_CALL

CRB_INFO

RESUBMISSION

CREDIT_STATUS

UPDATE_APPLICATION

UPDATE_APPLICATION_STATUS

RISK_ASSESSMENT

Example
"VALIDATION"

CryptoRequestInput

Fields
Input Field Description
amount - Float!
currency - String
reference - String!
customer_id - String
wallet_id - String
description - String
metadata - JSONObject
walletAddress - String!
network - String
Example
{
  "amount": 987.65,
  "currency": "abc123",
  "reference": "xyz789",
  "customer_id": "abc123",
  "wallet_id": "xyz789",
  "description": "abc123",
  "metadata": {},
  "walletAddress": "abc123",
  "network": "xyz789"
}

CurrencyEnum

Description

Currency of payment

Values
Enum Value Description

KES

ZAR

RAND

USD

EUR

GBP

BTC

ETH

USDC

XRP

Example
"KES"

CursorPaginatedAgentProfiles

Fields
Field Name Description
data - [AgentProfileObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [AgentProfileObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedApplicationCallDetails

Fields
Field Name Description
data - [ApplicationCallDetailsType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ApplicationCallDetailsType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedApplications

Fields
Field Name Description
data - [ApplicationEntityGraphQL!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ApplicationEntityGraphQL],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedAuditLogs

Fields
Field Name Description
data - [AuditLogObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [AuditLogObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedCallDispositions

Fields
Field Name Description
data - [CallDispositionType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CallDispositionType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedCategories

Fields
Field Name Description
data - [CategoryObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CategoryObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedCohorts

Fields
Field Name Description
data - [CohortObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CohortObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedCommunications

Fields
Field Name Description
data - [CommunicationObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CommunicationObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedConditions

Fields
Field Name Description
data - [ConditionObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ConditionObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedCountries

Fields
Field Name Description
data - [CountryObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CountryObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedCustomerReferrals

Fields
Field Name Description
data - [CustomerReferralDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CustomerReferralDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedDeliveries

Fields
Field Name Description
data - [DeliveryObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [DeliveryObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedDeliveryCalls

Fields
Field Name Description
data - [DeliveryCallObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [DeliveryCallObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedDeliveryItems

Fields
Field Name Description
data - [DeliveryItemObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [DeliveryItemObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedDistricts

Fields
Field Name Description
data - [DistrictObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [DistrictObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedFlashSaleItems

Fields
Field Name Description
data - [FlashSaleItemObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [FlashSaleItemObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedFlashSales

Fields
Field Name Description
data - [FlashSaleObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [FlashSaleObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedGroups

Fields
Field Name Description
data - [GroupObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [GroupObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedInternalStaffProfiles

Fields
Field Name Description
data - [InternalStaffProfileObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [InternalStaffProfileObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedInventory

Fields
Field Name Description
data - [InventoryObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [InventoryObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedInventoryLocations

Fields
Field Name Description
data - [InventoryLocationObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [InventoryLocationObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedLoanContracts

Fields
Field Name Description
data - [LoanContractDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanContractDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedLoanInstallments

Fields
Field Name Description
data - [LoanInstallmentDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanInstallmentDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedLoanLedger

Fields
Field Name Description
data - [LoanLedgerDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanLedgerDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedMediaAssets

Fields
Field Name Description
data - [MediaAssetDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [MediaAssetDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedPartnerProfiles

Fields
Field Name Description
data - [PartnerProfileObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [PartnerProfileObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedPaymentAdjustments

Fields
Field Name Description
data - [PaymentAdjustmentsEntityType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [PaymentAdjustmentsEntityType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedPayments

Fields
Field Name Description
data - [PaymentsEntityType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [PaymentsEntityType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedPricePlans

Fields
Field Name Description
data - [PricePlanObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [PricePlanObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedProductOffers

Fields
Field Name Description
data - [ProductOfferObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ProductOfferObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedProducts

Fields
Field Name Description
data - [ProductObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ProductObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedRawCustomers

Fields
Field Name Description
data - [RawCustomersDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [RawCustomersDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedRawRisk

Fields
Field Name Description
data - [RawRiskDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [RawRiskDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedRawWalletTransactions

Fields
Field Name Description
data - [RawWalletTransactionsDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [RawWalletTransactionsDto],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedRefunds

Fields
Field Name Description
data - [RefundGraphQL!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [RefundGraphQL],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedRegions

Fields
Field Name Description
data - [RegionObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [RegionObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedRepairs

Fields
Field Name Description
data - [RepairObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [RepairObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedResubmissions

Fields
Field Name Description
data - [ApplicationResubmissionGraphQL!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ApplicationResubmissionGraphQL],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedReturns

Fields
Field Name Description
data - [ReturnsGraphQL!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ReturnsGraphQL],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedReturnsOpsTableRows

Fields
Field Name Description
data - [ReturnsOpsTableRow!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ReturnsOpsTableRow],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedRoles

Fields
Field Name Description
data - [RoleObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [RoleObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedSales

Fields
Field Name Description
data - [SalesObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [SalesObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedSellerCatalog

Fields
Field Name Description
data - [SellerCatalogObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [SellerCatalogObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedSellerTiers

Fields
Field Name Description
data - [SellerTierObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [SellerTierObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedSellers

Fields
Field Name Description
data - [SellerObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [SellerObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedSkus

Fields
Field Name Description
data - [SkuObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [SkuObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedUsers

Fields
Field Name Description
data - [UserObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [UserObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedValidationRecords

Fields
Field Name Description
data - [ValidationRecordGraphQLEntity!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [ValidationRecordGraphQLEntity],
  "pagination": CursorPaginationMetadata
}

CursorPaginatedWards

Fields
Field Name Description
data - [WardObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [WardObjectType],
  "pagination": CursorPaginationMetadata
}

CursorPaginationInputType

Fields
Input Field Description
limit - Int Number of items to fetch. Default = 20
cursor - String Cursor for pagination
sortDirection - SortOrder Sort direction. Default = DESC
sortField - String Field to sort by
rangeField - String Field to apply date range filter
startDate - DateTime Start date for range filter
endDate - DateTime End date for range filter
direction - String
Example
{
  "limit": 123,
  "cursor": "xyz789",
  "sortDirection": "ASC",
  "sortField": "abc123",
  "rangeField": "abc123",
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z",
  "direction": "xyz789"
}

CursorPaginationMetadata

Fields
Field Name Description
nextCursor - String Cursor for next page
prevCursor - String Cursor for previous page
hasNext - Boolean! Whether there is a next page
hasPrev - Boolean! Whether there is a previous page
count - Int! Number of items in current page
Example
{
  "nextCursor": "xyz789",
  "prevCursor": "abc123",
  "hasNext": false,
  "hasPrev": true,
  "count": 987
}

CursorsPaginatedCommissionOverrides

Fields
Field Name Description
data - [CommissionOverrideObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CommissionOverrideObjectType],
  "pagination": CursorPaginationMetadata
}

CursorsPaginatedCommissions

Fields
Field Name Description
data - [CommissionObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [CommissionObjectType],
  "pagination": CursorPaginationMetadata
}

CursorsPaginatedInventoryAllocations

Fields
Field Name Description
data - [InventoryAllocationObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [InventoryAllocationObjectType],
  "pagination": CursorPaginationMetadata
}

CursorsPaginatedOrderItems

Fields
Field Name Description
data - [OrderItemObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [OrderItemObjectType],
  "pagination": CursorPaginationMetadata
}

CursorsPaginatedOrders

Fields
Field Name Description
data - [OrderObjectType!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [OrderObjectType],
  "pagination": CursorPaginationMetadata
}

DateFilterInput

Fields
Input Field Description
eq - DateTime
gt - DateTime
gte - DateTime
lt - DateTime
lte - DateTime
between_from - DateTime
between_to - DateTime
exists - Boolean
Example
{
  "eq": "2007-12-03T10:15:30Z",
  "gt": "2007-12-03T10:15:30Z",
  "gte": "2007-12-03T10:15:30Z",
  "lt": "2007-12-03T10:15:30Z",
  "lte": "2007-12-03T10:15:30Z",
  "between_from": "2007-12-03T10:15:30Z",
  "between_to": "2007-12-03T10:15:30Z",
  "exists": false
}

DateTime

Description

A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.

Example
"2007-12-03T10:15:30Z"

DeactivateRawRiskInput

Fields
Input Field Description
removal_reason - String
Example
{"removal_reason": "xyz789"}

DebitCreditEnum

Description

Debit or credit transaction

Values
Enum Value Description

DEBIT

CREDIT

Example
"DEBIT"

DecisionerDetailsType

Fields
Field Name Description
decisioner_id - String
status - DecisionerStatus
decisioner_notes - String
confirmed_price_plan - String
confirmed_price_plan_name - String Resolved price plan name (populated by field resolver)
confirmed_target_device_model - String
confirmed_target_device_model_name - String Resolved SKU name (populated by field resolver)
confirmed_cash_price - Float
confirmed_topup_amount - Float
confirmed_refund_amount - Float
calculated_deposit_amount - Float
calculated_weekly_instalment_amount - Float
calculated_topup_amount - Float
calculated_refund_amount - Float
arrears_amount_at_escalation - Float Ledger arrears snapshot when escalated to credit
required_arrears_payment_amount - Float KES the customer must pay toward arrears before proceeding
new_loan_term_months - Int
decided_at - DateTime
Example
{
  "decisioner_id": "abc123",
  "status": "APPROVED",
  "decisioner_notes": "xyz789",
  "confirmed_price_plan": "abc123",
  "confirmed_price_plan_name": "abc123",
  "confirmed_target_device_model": "abc123",
  "confirmed_target_device_model_name": "abc123",
  "confirmed_cash_price": 987.65,
  "confirmed_topup_amount": 987.65,
  "confirmed_refund_amount": 123.45,
  "calculated_deposit_amount": 987.65,
  "calculated_weekly_instalment_amount": 987.65,
  "calculated_topup_amount": 987.65,
  "calculated_refund_amount": 123.45,
  "arrears_amount_at_escalation": 123.45,
  "required_arrears_payment_amount": 987.65,
  "new_loan_term_months": 123,
  "decided_at": "2007-12-03T10:15:30Z"
}

DecisionerStatus

Description

Status of the decisioner review

Values
Enum Value Description

APPROVED

REJECTED

PENDING

Example
"APPROVED"

DeleteRetailerOutletInput

Fields
Input Field Description
retailer_organization_id - String!
outlet_id - String!
deletion_reason - String
Example
{
  "retailer_organization_id": "abc123",
  "outlet_id": "abc123",
  "deletion_reason": "xyz789"
}

DelinquencyStatusEnum

Description

Status of loan delinquency

Values
Enum Value Description

CURRENT

DELINQUENT

DEFAULT

RECOVERED

WRITTEN_OFF

Example
"CURRENT"

DepartmentEnum

Description

Organizational departments

Values
Enum Value Description

SALES

TRAINING

OPERATIONS

TECHNICAL_SERVICES

CUSTOMER_SUPPORT

Example
"SALES"

DrCrEnum

Description

Debit or Credit indicator

Values
Enum Value Description

DR

CR

Example
"DR"

DropdownOptionType

Fields
Field Name Description
label - String!
value - String!
altValue - String
Example
{
  "label": "xyz789",
  "value": "abc123",
  "altValue": "abc123"
}

DumpFileInput

Fields
Input Field Description
file - Upload!
Example
{"file": Upload}

DuplicateDetailGraphQL

Fields
Field Name Description
duplicate_ids - [String!]! List of duplicate IDs found
source - String Source of the duplicate detection
type - String Type of duplicate found
table - String Database table where duplicates were found
tenant_id - String Tenant ID associated with duplicate
duplicate_prospect_id - String Duplicate prospect ID
Example
{
  "duplicate_ids": ["abc123"],
  "source": "abc123",
  "type": "abc123",
  "table": "abc123",
  "tenant_id": "abc123",
  "duplicate_prospect_id": "xyz789"
}

DuplicatePreviewCheckInput

Fields
Input Field Description
applicationId - ID
idNumber - String
phoneNumber - String
nokIdNumber - String
nokPhoneNumber - String
dsrId - String
checkType - DuplicatePreviewCheckType
Example
{
  "applicationId": 4,
  "idNumber": "xyz789",
  "phoneNumber": "xyz789",
  "nokIdNumber": "xyz789",
  "nokPhoneNumber": "xyz789",
  "dsrId": "abc123",
  "checkType": "DUPLICATE"
}

DuplicatePreviewCheckResult

Fields
Field Name Description
wouldBlock - Boolean!
customerId - DuplicatePreviewCheckTypeResult
customerPhone - DuplicatePreviewCheckTypeResult
nokId - DuplicatePreviewCheckTypeResult
nokPhone - DuplicatePreviewCheckTypeResult
Example
{
  "wouldBlock": false,
  "customerId": DuplicatePreviewCheckTypeResult,
  "customerPhone": DuplicatePreviewCheckTypeResult,
  "nokId": DuplicatePreviewCheckTypeResult,
  "nokPhone": DuplicatePreviewCheckTypeResult
}

DuplicatePreviewCheckType

Values
Enum Value Description

DUPLICATE

NOK

RISK

Example
"DUPLICATE"

DuplicatePreviewCheckTypeResult

Fields
Field Name Description
wouldBlock - Boolean!
action - String
message - String
matches - [DuplicatePreviewMatch!]!
Example
{
  "wouldBlock": false,
  "action": "xyz789",
  "message": "abc123",
  "matches": [DuplicatePreviewMatch]
}

DuplicatePreviewMatch

Fields
Field Name Description
duplicateIds - [String!]!
source - String
table - String
tag - String
bucket - String
tenantId - String
riskRecords - [RawRiskDto!]
loanContracts - [LoanContractDto!]
rawCustomers - [RawCustomersDto!]
payments - [PaymentsEntityType!]
Example
{
  "duplicateIds": ["abc123"],
  "source": "abc123",
  "table": "xyz789",
  "tag": "xyz789",
  "bucket": "abc123",
  "tenantId": "abc123",
  "riskRecords": [RawRiskDto],
  "loanContracts": [LoanContractDto],
  "rawCustomers": [RawCustomersDto],
  "payments": [PaymentsEntityType]
}

EarlySettlementQuoteType

Fields
Field Name Description
contract_id - ID!
as_of_date - DateTime!
remaining_balance - Float!
discount_percent - Float
discount_amount - Float
customer_payable - Float!
discount_applied - Boolean!
eligible_discount_window - Int
loan_product_code - String
paid_off_override - String
early_payoff_discounts - [LoanEarlyPayoffDiscountType!]!
Example
{
  "contract_id": "4",
  "as_of_date": "2007-12-03T10:15:30Z",
  "remaining_balance": 123.45,
  "discount_percent": 123.45,
  "discount_amount": 987.65,
  "customer_payable": 987.65,
  "discount_applied": false,
  "eligible_discount_window": 123,
  "loan_product_code": "xyz789",
  "paid_off_override": "xyz789",
  "early_payoff_discounts": [LoanEarlyPayoffDiscountType]
}

EmailAttachmentInput

Fields
Input Field Description
filename - String!
content - String
path - String
contentType - String
Example
{
  "filename": "xyz789",
  "content": "xyz789",
  "path": "xyz789",
  "contentType": "abc123"
}

EmailAttachmentObjectType

Fields
Field Name Description
filename - String!
content - String
path - String
contentType - String
Example
{
  "filename": "xyz789",
  "content": "abc123",
  "path": "xyz789",
  "contentType": "abc123"
}

EmailDataInput

Fields
Input Field Description
to - String!
from - String
cc - [String!]
bcc - [String!]
replyTo - String
attachments - [EmailAttachmentInput!]
html - String
text - String
templateId - String
templateData - JSON
Example
{
  "to": "abc123",
  "from": "xyz789",
  "cc": ["xyz789"],
  "bcc": ["xyz789"],
  "replyTo": "xyz789",
  "attachments": [EmailAttachmentInput],
  "html": "abc123",
  "text": "abc123",
  "templateId": "abc123",
  "templateData": {}
}

EmailDataObjectType

Fields
Field Name Description
to - String!
from - String
cc - [String!]
bcc - [String!]
replyTo - String
attachments - [EmailAttachmentObjectType!]
html - String
text - String
templateId - String
templateData - JSON
Example
{
  "to": "xyz789",
  "from": "xyz789",
  "cc": ["xyz789"],
  "bcc": ["abc123"],
  "replyTo": "xyz789",
  "attachments": [EmailAttachmentObjectType],
  "html": "abc123",
  "text": "abc123",
  "templateId": "abc123",
  "templateData": {}
}

EmploymentTypeEnum

Description

Type of employment contract

Values
Enum Value Description

FULL_TIME

PART_TIME

CONTRACT

Example
"FULL_TIME"

EntityType

Description

Types of entities that can be assigned to territories

Values
Enum Value Description

AGENT

PARTNER

RIDER

Example
"AGENT"

EntityTypeEnum

Description

Types of partner entities

Values
Enum Value Description

INDIVIDUAL

ORGANIZATION

Example
"INDIVIDUAL"

EnumOptionType

Description

A label/value pair derived from an enum

Fields
Field Name Description
label - String! Enum key (human-readable label)
value - String! Enum value
Example
{
  "label": "xyz789",
  "value": "abc123"
}

EscalationLevelEnum

Description

Level of delinquency escalation

Values
Enum Value Description

REMINDER

NOTICE

WARNING

LEGAL_NOTICE

LEGAL_ACTION

Example
"REMINDER"

ExemptionAgentTypeEnum

Values
Enum Value Description

SCORING

CALLING

DECISIONING

Example
"SCORING"

ExemptionEligibilityType

Fields
Field Name Description
eligible - Boolean!
risks - [RawRiskDto!]!
exemptionType - ExemptionTypeEnum
creditStatus - String
agentTypes - [ExemptionAgentTypeEnum!]
Example
{
  "eligible": false,
  "risks": [RawRiskDto],
  "exemptionType": "TERMS_ACCEPTANCE",
  "creditStatus": "xyz789",
  "agentTypes": ["SCORING"]
}

ExemptionTypeEnum

Values
Enum Value Description

TERMS_ACCEPTANCE

IDENTITY_VERIFICATION_OVERRIDE

FINANCIAL_VERIFICATION

NAME_VALIDATION

ALTERNATIVE_FINANCIAL_ASSESSMENT

NOK_UPDATE

POLICY_OVERRIDE

CONSENT_CONFIRMATION

LOCATION_VALIDATION

Example
"TERMS_ACCEPTANCE"

ExternalShopNamespace

Fields
Field Name Description
createExternalShopOwner - PartnerProfileObjectType! Create external shop owner
Arguments
createShopAttendant - PartnerProfileObjectType! Create shop attendant
Arguments
updateShopOwner - PartnerProfileObjectType! Update shop owner
Arguments
partnerProfileId - String!
updateShopAttendant - PartnerProfileObjectType! Update shop attendant
Arguments
partnerProfileId - String!
Example
{
  "createExternalShopOwner": PartnerProfileObjectType,
  "createShopAttendant": PartnerProfileObjectType,
  "updateShopOwner": PartnerProfileObjectType,
  "updateShopAttendant": PartnerProfileObjectType
}

FateGuideExplainerMonitoringValueDto

Description

Explainer monitoring signal payload

Fields
Field Name Description
value - Float
severity - String
Example
{"value": 987.65, "severity": "abc123"}

FateGuideExplainerMonitoringValueType

Fields
Field Name Description
value - Float
severity - String
Example
{"value": 987.65, "severity": "abc123"}

FateGuideExplainerRafMonitoringDto

Description

Explainer RAF monitoring payload

Example
{
  "bettingRatio": FateGuideExplainerMonitoringValueDto,
  "p2pShare": FateGuideExplainerMonitoringValueDto,
  "cov": FateGuideExplainerMonitoringValueDto,
  "age": FateGuideExplainerMonitoringValueDto,
  "crbPositiveScore": FateGuideExplainerMonitoringValueDto
}

FateGuideExplainerRafMonitoringType

Example
{
  "bettingRatio": FateGuideExplainerMonitoringValueType,
  "p2pShare": FateGuideExplainerMonitoringValueType,
  "cov": FateGuideExplainerMonitoringValueType,
  "age": FateGuideExplainerMonitoringValueType,
  "crbPositiveScore": FateGuideExplainerMonitoringValueType
}

FateGuideOfferType

Description

Fate guide offer type

Values
Enum Value Description

LOAN_APPROVED

CASH_ONLY

MOSAVER_ONLY

NORMAL_12M

STDHIGH_ONLY

CHECK_MODEL

Example
"LOAN_APPROVED"

FateGuideRuntimeExplanationDto

Description

Python v2 explainer payload

Fields
Field Name Description
recommendation - String
reason - String
affordabilitySource - String
spinAffordability - Float
crbInferredAffordability - Float
adjustedAffordability - Float
sdiPct - Float
tier - String
tierThresholds - String
slopeBucket - String
haircutPct - Float
maxCashPrice - Float
maxCashPriceHigh - Float
maxCashPriceMosaver - Float
keyFormulas - [String!]
rafMonitoring - FateGuideExplainerRafMonitoringDto
Example
{
  "recommendation": "abc123",
  "reason": "abc123",
  "affordabilitySource": "abc123",
  "spinAffordability": 123.45,
  "crbInferredAffordability": 987.65,
  "adjustedAffordability": 987.65,
  "sdiPct": 987.65,
  "tier": "abc123",
  "tierThresholds": "xyz789",
  "slopeBucket": "xyz789",
  "haircutPct": 123.45,
  "maxCashPrice": 123.45,
  "maxCashPriceHigh": 123.45,
  "maxCashPriceMosaver": 987.65,
  "keyFormulas": ["abc123"],
  "rafMonitoring": FateGuideExplainerRafMonitoringDto
}

FateGuideRuntimeExplanationType

Fields
Field Name Description
recommendation - String
reason - String
affordabilitySource - String
spinAffordability - Float
crbInferredAffordability - Float
adjustedAffordability - Float
sdiPct - Float
tier - String
tierThresholds - String
slopeBucket - String
haircutPct - Float
maxCashPrice - Float
maxCashPriceHigh - Float
maxCashPriceMosaver - Float
keyFormulas - [String!]
rafMonitoring - FateGuideExplainerRafMonitoringType
Example
{
  "recommendation": "xyz789",
  "reason": "abc123",
  "affordabilitySource": "abc123",
  "spinAffordability": 987.65,
  "crbInferredAffordability": 987.65,
  "adjustedAffordability": 987.65,
  "sdiPct": 123.45,
  "tier": "abc123",
  "tierThresholds": "abc123",
  "slopeBucket": "abc123",
  "haircutPct": 987.65,
  "maxCashPrice": 987.65,
  "maxCashPriceHigh": 123.45,
  "maxCashPriceMosaver": 123.45,
  "keyFormulas": ["xyz789"],
  "rafMonitoring": FateGuideExplainerRafMonitoringType
}

FateGuideRuntimeFormulasDto

Description

Runtime derived formulas payload

Fields
Field Name Description
grossInflows - Float
inorganicBanks - Float
inorganicMfis - Float
inorganicMobileLenders - Float
inorganicBetting - Float
inorganicInsurance - Float
inorganicTotal - Float
inorganicPct - Float
netInflows - Float
essentials - Float
loanRepayments - Float
frequentP2pSent - Float
frequentP2pTxnsPm - Float
nondiscretionary - Float
nondiscretionaryPct - Float
disposableIncome - Float
disposableIncomeMonthly - Float
monthlyDataPoints - Int
covBucket - String
dirPct - Float
p2pReceivedTotal - Float
top10P2pTotal - Float
top10P2pShare - Float
p2pHaircutPct - Float
loanExposure - Float
fulizaPerMonth - Float
fulizaOvercountFlag - Boolean
financialHaircutPct - Float
bettingSent - Float
bettingPerMonth - Float
bettingFreqFlag - Boolean
bettingHaircutPct - Float
totalRafPct - Float
maxInstallmentPreRaf - Float
maxInstallment - Float
rejected - Boolean
negativeDisposableFlag - Boolean
Example
{
  "grossInflows": 987.65,
  "inorganicBanks": 987.65,
  "inorganicMfis": 123.45,
  "inorganicMobileLenders": 987.65,
  "inorganicBetting": 123.45,
  "inorganicInsurance": 123.45,
  "inorganicTotal": 987.65,
  "inorganicPct": 123.45,
  "netInflows": 987.65,
  "essentials": 987.65,
  "loanRepayments": 123.45,
  "frequentP2pSent": 987.65,
  "frequentP2pTxnsPm": 987.65,
  "nondiscretionary": 123.45,
  "nondiscretionaryPct": 987.65,
  "disposableIncome": 987.65,
  "disposableIncomeMonthly": 987.65,
  "monthlyDataPoints": 987,
  "covBucket": "abc123",
  "dirPct": 123.45,
  "p2pReceivedTotal": 123.45,
  "top10P2pTotal": 987.65,
  "top10P2pShare": 123.45,
  "p2pHaircutPct": 123.45,
  "loanExposure": 123.45,
  "fulizaPerMonth": 987.65,
  "fulizaOvercountFlag": false,
  "financialHaircutPct": 987.65,
  "bettingSent": 123.45,
  "bettingPerMonth": 123.45,
  "bettingFreqFlag": true,
  "bettingHaircutPct": 987.65,
  "totalRafPct": 987.65,
  "maxInstallmentPreRaf": 123.45,
  "maxInstallment": 987.65,
  "rejected": false,
  "negativeDisposableFlag": true
}

FateGuideRuntimeLoanRecordDto

Description

CRB loan record in runtime result

Fields
Field Name Description
status - String
accountStatus - String
principal_amount - Float
originalAmount - Float
instalment_amount - Float
scheduledPaymentAmount - Float
term_months - Float
repaymentPeriod - Float
Example
{
  "status": "xyz789",
  "accountStatus": "abc123",
  "principal_amount": 123.45,
  "originalAmount": 123.45,
  "instalment_amount": 987.65,
  "scheduledPaymentAmount": 987.65,
  "term_months": 123.45,
  "repaymentPeriod": 987.65
}

FateGuideRuntimeLoanRecordType

Fields
Field Name Description
status - String
accountStatus - String
principal_amount - Float
originalAmount - Float
instalment_amount - Float
scheduledPaymentAmount - Float
term_months - Float
repaymentPeriod - Float
Example
{
  "status": "xyz789",
  "accountStatus": "abc123",
  "principal_amount": 987.65,
  "originalAmount": 123.45,
  "instalment_amount": 987.65,
  "scheduledPaymentAmount": 987.65,
  "term_months": 123.45,
  "repaymentPeriod": 123.45
}

FateGuideRuntimeSignalsDto

Description

Runtime signal payload

Fields
Field Name Description
slopeBucket - String
spinAffordability - Float
slopePctPerMonth - Float
bettingRatio - Float
p2pShare - Float
cov - Float
age - Float
Example
{
  "slopeBucket": "xyz789",
  "spinAffordability": 987.65,
  "slopePctPerMonth": 987.65,
  "bettingRatio": 987.65,
  "p2pShare": 123.45,
  "cov": 123.45,
  "age": 987.65
}

FateGuideRuntimeSignalsType

Fields
Field Name Description
slopeBucket - String
spinAffordability - Float
slopePctPerMonth - Float
bettingRatio - Float
p2pShare - Float
cov - Float
age - Float
Example
{
  "slopeBucket": "abc123",
  "spinAffordability": 123.45,
  "slopePctPerMonth": 123.45,
  "bettingRatio": 987.65,
  "p2pShare": 123.45,
  "cov": 987.65,
  "age": 123.45
}

FateGuideScoresCursorPaginatedResponse

Description

Cursor paginated fate guide scores response

Fields
Field Name Description
data - [FateGuideScoresDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [FateGuideScoresDto],
  "pagination": CursorPaginationMetadata
}

FateGuideScoresDto

Description

Fate guide score record

Fields
Field Name Description
id - ID Unique identifier
_id - ID Unique identifier
application_id - ID
application - ApplicationEntityGraphQL The application associated with this fate guide score
customer_id - String
crb_transaction_id - ID
mobile_analysis_id - String
document_id - ID
crb_score - String
crb_past_default_record - Float
customer_age - Int
big_loan_default - String
model_type - String
fate_guide_message - String
requires_recheck - Boolean
sale_agent_id - String
available_plans - [String!]
version - Int
sku - String
type - String
active - Boolean
devicePrice - Float
durationMonths - Int
age - Float
loanHistory - [FateGuideRuntimeLoanRecordDto!]
signals - FateGuideRuntimeSignalsDto
tier - String
status - String
rejectionReason - String
statementLength - Float
minimumRequired - Float
sdiPct - Float
maxMonthlyInstallment - Float
maxCashPrice - Float
maxCashPriceHigh - Float
maxCashPriceMosaver - Float
productBand - String
canonicalProductBand - String
depositLevel - String
affordabilitySource - String
affordabilityValue - Float
adjustedAffordability - Float
crbInferredAffordability - Float
recommendation - String
slopeBucket - String
slopeHaircutPct - Float
bettingRatio - Float
p2pShare - Float
crbPositiveScore - Float
cov - Float
productBands - JSON
deviceAssessment - JSON
customerName - String
assessedAt - String
modelVersion - String
formulas - FateGuideRuntimeFormulasDto
explanation - FateGuideRuntimeExplanationDto
createdAt - DateTime
updatedAt - DateTime
Example
{
  "id": 4,
  "_id": 4,
  "application_id": "4",
  "application": ApplicationEntityGraphQL,
  "customer_id": "xyz789",
  "crb_transaction_id": "4",
  "mobile_analysis_id": "abc123",
  "document_id": 4,
  "crb_score": "xyz789",
  "crb_past_default_record": 987.65,
  "customer_age": 987,
  "big_loan_default": "abc123",
  "model_type": "xyz789",
  "fate_guide_message": "xyz789",
  "requires_recheck": true,
  "sale_agent_id": "xyz789",
  "available_plans": ["xyz789"],
  "version": 123,
  "sku": "xyz789",
  "type": "xyz789",
  "active": false,
  "devicePrice": 123.45,
  "durationMonths": 123,
  "age": 987.65,
  "loanHistory": [FateGuideRuntimeLoanRecordDto],
  "signals": FateGuideRuntimeSignalsDto,
  "tier": "xyz789",
  "status": "xyz789",
  "rejectionReason": "xyz789",
  "statementLength": 123.45,
  "minimumRequired": 123.45,
  "sdiPct": 123.45,
  "maxMonthlyInstallment": 123.45,
  "maxCashPrice": 123.45,
  "maxCashPriceHigh": 123.45,
  "maxCashPriceMosaver": 123.45,
  "productBand": "abc123",
  "canonicalProductBand": "abc123",
  "depositLevel": "xyz789",
  "affordabilitySource": "abc123",
  "affordabilityValue": 987.65,
  "adjustedAffordability": 987.65,
  "crbInferredAffordability": 987.65,
  "recommendation": "abc123",
  "slopeBucket": "abc123",
  "slopeHaircutPct": 987.65,
  "bettingRatio": 987.65,
  "p2pShare": 987.65,
  "crbPositiveScore": 987.65,
  "cov": 123.45,
  "productBands": {},
  "deviceAssessment": {},
  "customerName": "xyz789",
  "assessedAt": "xyz789",
  "modelVersion": "xyz789",
  "formulas": FateGuideRuntimeFormulasDto,
  "explanation": FateGuideRuntimeExplanationDto,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

FateGuideScoresFilterInput

Description

Filter input for querying fate guide scores

Fields
Input Field Description
application_id - String Filter by application ID
customer_id - String Filter by customer ID
fate_model - ModelCreditDecision Filter by compatibility fate model
fate_guide - FateGuideOfferType Filter by compatibility fate guide
type - FateGuideType Filter by fate guide type
active - Boolean Filter by active status
model_type - String Filter by model type
crb_score - String Filter by CRB score
Example
{
  "application_id": "xyz789",
  "customer_id": "abc123",
  "fate_model": "ALLGO",
  "fate_guide": "LOAN_APPROVED",
  "type": "PRESCREENING",
  "active": false,
  "model_type": "xyz789",
  "crb_score": "abc123"
}

FateGuideScoresOffsetPaginatedResponse

Description

Offset paginated fate guide scores response

Fields
Field Name Description
data - [FateGuideScoresDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [FateGuideScoresDto],
  "metadata": OffsetPaginationMetadata
}

FateGuideScoresType

Fields
Field Name Description
_id - ID!
application_id - ID
customer_id - String
crb_transaction_id - ID
mobile_analysis_id - String
document_id - ID
crb_score - String
crb_past_default_record - Float
customer_age - Int
big_loan_default - String
model_type - String
fate_guide_message - String
requires_recheck - Boolean
sale_agent_id - String
available_plans - [String!]
available_price_plans - [PricePlanObjectType!] Resolved price plan objects for the available_plans IDs on this fate guide
Arguments
includePrivate - Boolean
version - Int
sku - String
type - String
active - Boolean
devicePrice - Float
durationMonths - Int
age - Float
loanHistory - [FateGuideRuntimeLoanRecordType!]
signals - FateGuideRuntimeSignalsType
tier - String
sdiPct - Float
maxCashPrice - Float
maxCashPriceHigh - Float
maxCashPriceMosaver - Float
productBand - String
depositLevel - String
affordabilitySource - String
affordabilityValue - Float
adjustedAffordability - Float
recommendation - String
slopeBucket - String
slopeHaircutPct - Float
bettingRatio - Float
p2pShare - Float
crbPositiveScore - Float
cov - Float
formulas - JSON
explanation - FateGuideRuntimeExplanationType
createdAt - DateTime
updatedAt - DateTime
Example
{
  "_id": "4",
  "application_id": 4,
  "customer_id": "abc123",
  "crb_transaction_id": 4,
  "mobile_analysis_id": "xyz789",
  "document_id": 4,
  "crb_score": "xyz789",
  "crb_past_default_record": 987.65,
  "customer_age": 123,
  "big_loan_default": "xyz789",
  "model_type": "abc123",
  "fate_guide_message": "xyz789",
  "requires_recheck": true,
  "sale_agent_id": "abc123",
  "available_plans": ["abc123"],
  "available_price_plans": [PricePlanObjectType],
  "version": 987,
  "sku": "xyz789",
  "type": "xyz789",
  "active": false,
  "devicePrice": 123.45,
  "durationMonths": 123,
  "age": 987.65,
  "loanHistory": [FateGuideRuntimeLoanRecordType],
  "signals": FateGuideRuntimeSignalsType,
  "tier": "abc123",
  "sdiPct": 123.45,
  "maxCashPrice": 123.45,
  "maxCashPriceHigh": 123.45,
  "maxCashPriceMosaver": 987.65,
  "productBand": "xyz789",
  "depositLevel": "xyz789",
  "affordabilitySource": "abc123",
  "affordabilityValue": 987.65,
  "adjustedAffordability": 123.45,
  "recommendation": "xyz789",
  "slopeBucket": "xyz789",
  "slopeHaircutPct": 123.45,
  "bettingRatio": 123.45,
  "p2pShare": 987.65,
  "crbPositiveScore": 987.65,
  "cov": 987.65,
  "formulas": {},
  "explanation": FateGuideRuntimeExplanationType,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

FateGuideType

Description

Fate guide processing type

Values
Enum Value Description

PRESCREENING

FINAL

Example
"PRESCREENING"

FateGuideValidationCheckInput

Fields
Input Field Description
applicationId - ID!
type - FateGuideType!
source - OnboardingFateGuideSource!
justification - String! Reason for running this check
Example
{
  "applicationId": "4",
  "type": "PRESCREENING",
  "source": "PRESCREENING",
  "justification": "abc123"
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

FloatFilterInput

Fields
Input Field Description
eq - Float
ne - Float
gt - Float
gte - Float
lt - Float
lte - Float
in - [Float!]
Example
{
  "eq": 987.65,
  "ne": 987.65,
  "gt": 123.45,
  "gte": 123.45,
  "lt": 123.45,
  "lte": 123.45,
  "in": [123.45]
}

GPSCoordinatesObjectType

Fields
Field Name Description
latitude - Float!
longitude - Float!
Example
{"latitude": 987.65, "longitude": 987.65}

GapAnalysisCriteriaGraphQL

Fields
Field Name Description
trend_check - Boolean
month_5_check - Boolean
month_6_check - Boolean
volatility_check - Boolean
Example
{
  "trend_check": false,
  "month_5_check": true,
  "month_6_check": true,
  "volatility_check": false
}

GapAnalysisMonthlyDataGraphQL

Fields
Field Name Description
month_index - Int
month_name - String
net_credits - Float
net_debits - Float
disposable_income - Float
Example
{
  "month_index": 123,
  "month_name": "xyz789",
  "net_credits": 987.65,
  "net_debits": 123.45,
  "disposable_income": 987.65
}

GapAnalysisResultGraphQL

Fields
Field Name Description
pass - Boolean
status - GapAnalysisStatus
slope - Float
average_disposable - Float
month_5_disposable - Float
month_6_disposable - Float
standard_deviation - Float
coefficient_of_variation - Float
criteria - GapAnalysisCriteriaGraphQL
monthly_data - [GapAnalysisMonthlyDataGraphQL!]
Example
{
  "pass": false,
  "status": "PASSED",
  "slope": 987.65,
  "average_disposable": 123.45,
  "month_5_disposable": 987.65,
  "month_6_disposable": 987.65,
  "standard_deviation": 987.65,
  "coefficient_of_variation": 987.65,
  "criteria": GapAnalysisCriteriaGraphQL,
  "monthly_data": [GapAnalysisMonthlyDataGraphQL]
}

GapAnalysisStatus

Values
Enum Value Description

PASSED

FAILED

INSUFFICIENT_DATA

NOT_COMPLETED

Example
"PASSED"

GenerateDeliveryOtpInput

Fields
Input Field Description
delivery_id - ID!
phone_number - String
Example
{"delivery_id": 4, "phone_number": "abc123"}

GenericValidationCheckInput

Fields
Input Field Description
applicationId - ID!
iprsGatewayType - IprsPlatform
justification - String! Reason for running this check
Example
{
  "applicationId": "4",
  "iprsGatewayType": "TRANSUNION",
  "justification": "xyz789"
}

GeoLocation

Fields
Field Name Description
lat - Float
lng - Float
Example
{"lat": 123.45, "lng": 987.65}

GetConditionFromQCReportInput

Fields
Input Field Description
inventory_id - ID! Inventory ID to get QC report and condition for
Example
{"inventory_id": "4"}

GetUserRoleConfigInput

Description

Get a config value using the user→role→client→system fallback chain

Fields
Input Field Description
key - String!
role_id - String
client_id - String
Example
{
  "key": "xyz789",
  "role_id": "xyz789",
  "client_id": "abc123"
}

GpsCoordinatesInput

Fields
Input Field Description
latitude - Float!
longitude - Float!
Example
{"latitude": 987.65, "longitude": 123.45}

GracePeriodAwardResultType

Fields
Field Name Description
success - Boolean!
contractId - ID!
loanId - String
category - GracePeriodCategoryEnum!
graceDays - Int!
gracePeriodCreditExpiry - DateTime!
wasExtended - Boolean!
Example
{
  "success": true,
  "contractId": "4",
  "loanId": "abc123",
  "category": "A",
  "graceDays": 123,
  "gracePeriodCreditExpiry": "2007-12-03T10:15:30Z",
  "wasExtended": true
}

GracePeriodCategoryEnum

Description

Grace period category bands mapped to 5, 3, 2, and 1 days

Values
Enum Value Description

A

B

C

D

PAYMENT

Example
"A"

GracePeriodEligibilityInput

Fields
Input Field Description
contract_id - ID! Loan contract UUID
Example
{"contract_id": 4}

GracePeriodEligibilityResultType

Fields
Field Name Description
eligible - Boolean!
reason - String
contractId - ID
loanId - String
category - GracePeriodCategoryEnum
maxAvailableDays - Int!
selectableOptions - [Int!]!
currentGracePeriodExpiry - DateTime
isActiveGracePeriod - Boolean!
Example
{
  "eligible": true,
  "reason": "xyz789",
  "contractId": "4",
  "loanId": "xyz789",
  "category": "A",
  "maxAvailableDays": 123,
  "selectableOptions": [987],
  "currentGracePeriodExpiry": "2007-12-03T10:15:30Z",
  "isActiveGracePeriod": false
}

GracePeriodRevocationResultType

Fields
Field Name Description
success - Boolean!
contractId - ID!
loanId - String
revoked - Boolean!
deviceAction - String!
Example
{
  "success": true,
  "contractId": 4,
  "loanId": "xyz789",
  "revoked": true,
  "deviceAction": "xyz789"
}

GrantGracePeriodOverrideInput

Fields
Input Field Description
contract_id - ID! Loan contract UUID
overrideCategory - GracePeriodCategoryEnum! CRM-selected override category
gracePeriodDays - Int! Granted grace period days
reason - String! Reason for the manual override
Example
{
  "contract_id": "4",
  "overrideCategory": "A",
  "gracePeriodDays": 987,
  "reason": "abc123"
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
4

IMEIValidationResult

Fields
Field Name Description
inventory_imei - String! IMEI from inventory record
phonecheck_imei - String! Primary IMEI from PhoneCheck report
phonecheck_imei2 - String Secondary IMEI from PhoneCheck report
is_valid - Boolean! Whether IMEIs match between inventory and PhoneCheck
Example
{
  "inventory_imei": "abc123",
  "phonecheck_imei": "xyz789",
  "phonecheck_imei2": "abc123",
  "is_valid": false
}

IdType

Description

Type of identification document

Values
Enum Value Description

NATIONAL_ID

MAISHA_CARD

ALIEN_ID

MILITARY_ID

Example
"NATIONAL_ID"

IdTypeFilterInput

Fields
Input Field Description
eq - IdType
ne - IdType
in - [IdType!]
notIn - [IdType!]
Example
{
  "eq": "NATIONAL_ID",
  "ne": "NATIONAL_ID",
  "in": ["NATIONAL_ID"],
  "notIn": ["NATIONAL_ID"]
}

IdentityVerificationTransactionCursorPaginatedResponse

Description

Cursor paginated identity verification transactions response

Fields
Field Name Description
data - [IdentityVerificationTransactionDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [IdentityVerificationTransactionDto],
  "pagination": CursorPaginationMetadata
}

IdentityVerificationTransactionDto

Description

Identity verification transaction record

Fields
Field Name Description
_id - ID Unique identifier
provider - IprsPlatform! IPRS verification provider
full_name - String Full name from verification
gender - String Gender
date_of_birth - String Date of birth
place_of_birth - String Place of birth
kra_pin - String KRA PIN
citizenship - String Citizenship
is_alive - Int Is alive status (1 = alive)
identification_type - String Type of identification document
identification_number - String Identification number
id_serial - String ID serial number
uploaded_photo - String Uploaded photo URL
phone - String Phone number
email - String Email address
country - String Country
record_status - VerificationRecordStatus Cache freshness state of this record
createdAt - DateTime Record creation timestamp
Example
{
  "_id": "4",
  "provider": "TRANSUNION",
  "full_name": "xyz789",
  "gender": "abc123",
  "date_of_birth": "abc123",
  "place_of_birth": "xyz789",
  "kra_pin": "xyz789",
  "citizenship": "abc123",
  "is_alive": 123,
  "identification_type": "xyz789",
  "identification_number": "abc123",
  "id_serial": "xyz789",
  "uploaded_photo": "xyz789",
  "phone": "abc123",
  "email": "abc123",
  "country": "xyz789",
  "record_status": "ACTIVE",
  "createdAt": "2007-12-03T10:15:30Z"
}

IdentityVerificationTransactionFilterInput

Description

Filter input for querying identity verification transactions

Fields
Input Field Description
identification_number - String Filter by identification number
provider - IprsPlatform Filter by provider
kra_pin - String Filter by KRA PIN
phone - String Filter by phone number
record_status - VerificationRecordStatus Filter by cache freshness state
Example
{
  "identification_number": "abc123",
  "provider": "TRANSUNION",
  "kra_pin": "xyz789",
  "phone": "abc123",
  "record_status": "ACTIVE"
}

IdentityVerificationTransactionOffsetPaginatedResponse

Description

Offset paginated identity verification transactions response

Fields
Field Name Description
data - [IdentityVerificationTransactionDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [IdentityVerificationTransactionDto],
  "metadata": OffsetPaginationMetadata
}

InAppDataInput

Fields
Input Field Description
actionUrl - String
actionButtonText - String
priority - InAppPriorityEnum
category - String
Example
{
  "actionUrl": "abc123",
  "actionButtonText": "abc123",
  "priority": "LOW",
  "category": "abc123"
}

InAppDataObjectType

Fields
Field Name Description
actionUrl - String
actionButtonText - String
priority - InAppPriorityEnum
category - String
Example
{
  "actionUrl": "xyz789",
  "actionButtonText": "xyz789",
  "priority": "LOW",
  "category": "xyz789"
}

InAppPriorityEnum

Description

Priority level for in-app notifications

Values
Enum Value Description

LOW

NORMAL

HIGH

Example
"LOW"

IndividualDetailsDto

Fields
Field Name Description
middle_name - String Customer middle name
gender - CustomerGenderEnum Customer gender
date_of_birth - String Date of birth in ISO 8601 format
secondary_phone - String Secondary phone number
marital_status - String Marital status
application_id - String Application ID
customer_source - String Customer source
customer_source_id - String Customer source ID
Example
{
  "middle_name": "xyz789",
  "gender": "MALE",
  "date_of_birth": "abc123",
  "secondary_phone": "xyz789",
  "marital_status": "abc123",
  "application_id": "xyz789",
  "customer_source": "abc123",
  "customer_source_id": "abc123"
}

IndividualDetailsInput

Fields
Input Field Description
middle_name - String
gender - CustomerGenderEnum
date_of_birth - String
secondary_phone - String
marital_status - String
application_id - String
customer_source - String
customer_source_id - String
Example
{
  "middle_name": "xyz789",
  "gender": "MALE",
  "date_of_birth": "xyz789",
  "secondary_phone": "abc123",
  "marital_status": "abc123",
  "application_id": "xyz789",
  "customer_source": "abc123",
  "customer_source_id": "abc123"
}

InitiateLivenessCheckInput

Fields
Input Field Description
applicationId - ID!
method - LivenessMethod!
Example
{"applicationId": "4", "method": "SELF"}

InstallmentStatusEnum

Description

Status of loan installment

Values
Enum Value Description

PENDING

PARTIAL

PAID

OVERDUE

WAIVED

Example
"PENDING"

InstallmentTypeEnum

Description

Type of loan installment

Values
Enum Value Description

REGULAR

BALLOON

PENALTY

EARLY_SETTLEMENT

Example
"REGULAR"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

IntFilterInput

Fields
Input Field Description
eq - Int
ne - Int
gt - Int
gte - Int
lt - Int
lte - Int
in - [Int!]
Example
{
  "eq": 987,
  "ne": 123,
  "gt": 123,
  "gte": 987,
  "lt": 123,
  "lte": 123,
  "in": [987]
}

InterestCalculationMethodEnum

Description

Method for calculating loan interest

Values
Enum Value Description

SIMPLE_REDUCING_BALANCE

COMPOUND_REDUCING_BALANCE

FLAT_RATE

DECLINING_BALANCE

Example
"SIMPLE_REDUCING_BALANCE"

IprsPlatform

Description

IPRS verification provider platforms

Values
Enum Value Description

TRANSUNION

SPINMOBILE

SMILEID

Example
"TRANSUNION"

IsBlockedCheckInput

Fields
Input Field Description
customer_id - String
primary_id - String
primary_phone - String
action - RiskRestrictedActionEnum
Example
{
  "customer_id": "xyz789",
  "primary_id": "xyz789",
  "primary_phone": "abc123",
  "action": "BLOCK_NEW_CUSTOMERS"
}

JSON

Description

The JSON scalar type represents JSON values as specified by ECMA-404.

Example
{}

JSONObject

Description

The JSONObject scalar type represents JSON objects as specified by ECMA-404.

Example
{}

KYCApprovalAction

Description

The available actions for a kyc approval process

Values
Enum Value Description

APPROVE

REJECT

REQUEST_RESUBMISSION

Example
"APPROVE"

KYCMetadataFilterInput

Fields
Input Field Description
submitted_at - DateTime
reviewed_at - DateTime
reviewed_by - String
id_number - String
id_type - IdType
tax_pin - String
incorporation_number - String
organization_subtype - String
organization_name - String
primary_contact_name - String
primary_contact_phone - String
primary_contact_id_number - String
Example
{
  "submitted_at": "2007-12-03T10:15:30Z",
  "reviewed_at": "2007-12-03T10:15:30Z",
  "reviewed_by": "xyz789",
  "id_number": "abc123",
  "id_type": "NATIONAL_ID",
  "tax_pin": "abc123",
  "incorporation_number": "abc123",
  "organization_subtype": "abc123",
  "organization_name": "xyz789",
  "primary_contact_name": "xyz789",
  "primary_contact_phone": "abc123",
  "primary_contact_id_number": "xyz789"
}

KYCMetadataInput

Fields
Input Field Description
review_notes - String
id_front_url - String
id_back_url - String
id_number - String
id_type - String
passport_photo_url - String
tax_certificate_url - String
tax_pin - String
incorporation_certificate_url - String
incorporation_number - String
organization_name - String
organization_email - String
organization_phone_number - String
company_logo_url - String
primary_contact_name - String
primary_contact_phone - String
primary_contact_id_front_url - String
primary_contact_id_back_url - String
primary_contact_id_number - String
primary_contact_role - String
primary_contact_passport_photo_url - String
Example
{
  "review_notes": "abc123",
  "id_front_url": "abc123",
  "id_back_url": "abc123",
  "id_number": "abc123",
  "id_type": "xyz789",
  "passport_photo_url": "abc123",
  "tax_certificate_url": "xyz789",
  "tax_pin": "abc123",
  "incorporation_certificate_url": "xyz789",
  "incorporation_number": "xyz789",
  "organization_name": "xyz789",
  "organization_email": "xyz789",
  "organization_phone_number": "abc123",
  "company_logo_url": "xyz789",
  "primary_contact_name": "abc123",
  "primary_contact_phone": "xyz789",
  "primary_contact_id_front_url": "abc123",
  "primary_contact_id_back_url": "xyz789",
  "primary_contact_id_number": "xyz789",
  "primary_contact_role": "abc123",
  "primary_contact_passport_photo_url": "abc123"
}

KYCMetadataObjectType

Fields
Field Name Description
submitted_at - DateTime
reviewed_at - DateTime
reviewed_by - String
review_notes - String
id_front_url - String
id_back_url - String
id_number - String
id_type - String
passport_photo_url - String
tax_certificate_url - String
tax_pin - String
incorporation_certificate_url - String
incorporation_number - String
registration_number - String
company_logo_url - String
primary_contact_name - String
primary_contact_phone - String
primary_contact_id_front_url - String
primary_contact_id_back_url - String
primary_contact_id_number - String
primary_contact_passport_photo_url - String
primary_contact_role - String
organization_subtype - String
organization_name - String
organization_email - String
organization_phone_number - String
certificate_of_registration_url - String
cr12_form_url - String
business_license_url - String
Example
{
  "submitted_at": "2007-12-03T10:15:30Z",
  "reviewed_at": "2007-12-03T10:15:30Z",
  "reviewed_by": "xyz789",
  "review_notes": "abc123",
  "id_front_url": "xyz789",
  "id_back_url": "abc123",
  "id_number": "abc123",
  "id_type": "abc123",
  "passport_photo_url": "xyz789",
  "tax_certificate_url": "abc123",
  "tax_pin": "xyz789",
  "incorporation_certificate_url": "xyz789",
  "incorporation_number": "abc123",
  "registration_number": "xyz789",
  "company_logo_url": "abc123",
  "primary_contact_name": "xyz789",
  "primary_contact_phone": "abc123",
  "primary_contact_id_front_url": "xyz789",
  "primary_contact_id_back_url": "abc123",
  "primary_contact_id_number": "abc123",
  "primary_contact_passport_photo_url": "xyz789",
  "primary_contact_role": "xyz789",
  "organization_subtype": "abc123",
  "organization_name": "xyz789",
  "organization_email": "abc123",
  "organization_phone_number": "abc123",
  "certificate_of_registration_url": "abc123",
  "cr12_form_url": "abc123",
  "business_license_url": "abc123"
}

KYCStatusEnum

Description

Know Your Customer verification status

Values
Enum Value Description

NOT_SUBMITTED

INCOMPLETE

PENDING_REVIEW

APPROVED

REJECTED

RESUBMISSION_REQUIRED

EXPIRED

NOT_REQUIRED

Example
"NOT_SUBMITTED"

LeadGenerationNamespace

Fields
Field Name Description
createLeadGeneration - PartnerProfileObjectType! Create Lead Generation
Arguments
updateLeadGeneration - PartnerProfileObjectType! Update Lead Generation
Arguments
partnerProfileId - String!
leadGenerationOffset - OffsetPaginatedPartnerProfiles! Get all Lead Generation partners with offset pagination
Arguments
Example
{
  "createLeadGeneration": PartnerProfileObjectType,
  "updateLeadGeneration": PartnerProfileObjectType,
  "leadGenerationOffset": OffsetPaginatedPartnerProfiles
}

LeadsScreensGraphQL

Fields
Field Name Description
customer - Boolean!
product - Boolean!
consent - Boolean!
termsAndConditions - Boolean!
kycDocuments - Boolean!
creditQuestions - Boolean!
Example
{
  "customer": false,
  "product": false,
  "consent": true,
  "termsAndConditions": false,
  "kycDocuments": false,
  "creditQuestions": false
}

LivenessCheckTransactionCursorPaginatedResponse

Description

Cursor paginated liveness check transactions response

Fields
Field Name Description
data - [LivenessCheckTransactionDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [LivenessCheckTransactionDto],
  "pagination": CursorPaginationMetadata
}

LivenessCheckTransactionDto

Description

Liveness check transaction record

Fields
Field Name Description
id - ID Unique identifier
job_id - String! Job ID from liveness provider
target_id - String! Target ID (customer/prospect)
link - String Liveness verification link
provider - LivenessProvider Liveness provider
status - LivenessStatus Liveness check status
success - Boolean! Whether liveness check was successful
error_message - String Error message if failed
image_links - LivenessImageLinksType Image links
results - LivenessResultsType Liveness results
info - LivenessInfoType Extracted info
metadata - JSON Additional metadata
createdAt - DateTime Record creation timestamp
updatedAt - DateTime Record update timestamp
Example
{
  "id": "4",
  "job_id": "xyz789",
  "target_id": "xyz789",
  "link": "abc123",
  "provider": "SUMSUB",
  "status": "PENDING",
  "success": false,
  "error_message": "xyz789",
  "image_links": LivenessImageLinksType,
  "results": LivenessResultsType,
  "info": LivenessInfoType,
  "metadata": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

LivenessCheckTransactionFilterInput

Description

Filter input for querying liveness check transactions

Fields
Input Field Description
target_id - String Filter by target ID
job_id - String Filter by job ID
provider - LivenessProvider Filter by provider
status - LivenessStatus Filter by status
success - Boolean Filter by success status
Example
{
  "target_id": "abc123",
  "job_id": "xyz789",
  "provider": "SUMSUB",
  "status": "PENDING",
  "success": false
}

LivenessCheckTransactionOffsetPaginatedResponse

Description

Offset paginated liveness check transactions response

Fields
Field Name Description
data - [LivenessCheckTransactionDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [LivenessCheckTransactionDto],
  "metadata": OffsetPaginationMetadata
}

LivenessImageLinksType

Description

Liveness check image links

Fields
Field Name Description
id_card_back - [String!] ID card back images
id_card_image - [String!] ID card front images
selfie_image - [String!] Selfie images
Example
{
  "id_card_back": ["xyz789"],
  "id_card_image": ["abc123"],
  "selfie_image": ["xyz789"]
}

LivenessInfoType

Description

Liveness check info extracted from documents

Fields
Field Name Description
first_name - String First name
last_name - String Last name
middle_name - String Middle name
gender - String Gender
dob - String Date of birth
country - String Country
id_number - String ID number
id_type - String ID type
Example
{
  "first_name": "abc123",
  "last_name": "abc123",
  "middle_name": "xyz789",
  "gender": "abc123",
  "dob": "abc123",
  "country": "abc123",
  "id_number": "abc123",
  "id_type": "xyz789"
}

LivenessMethod

Description

Method by which the liveness check link is delivered

Values
Enum Value Description

SELF

CUSTOMER

Example
"SELF"

LivenessProvider

Description

Liveness check provider

Values
Enum Value Description

SUMSUB

SMILEID

Example
"SUMSUB"

LivenessResultsType

Description

Liveness check results

Fields
Field Name Description
document_check - String Document check result
liveness_check - String Liveness check result
register_selfie - String Register selfie result
verify_document - String Verify document result
selfie_to_id_card_compare - String Selfie to ID card comparison result
human_review_document_check - String Human review document check result
human_review_liveness_check - String Human review liveness check result
Example
{
  "document_check": "xyz789",
  "liveness_check": "xyz789",
  "register_selfie": "xyz789",
  "verify_document": "xyz789",
  "selfie_to_id_card_compare": "abc123",
  "human_review_document_check": "abc123",
  "human_review_liveness_check": "xyz789"
}

LivenessStatus

Description

Liveness check status

Values
Enum Value Description

PENDING

INPROGRESS

COMPLETED

FAILED

Example
"PENDING"

LocationDetailsInput

Fields
Input Field Description
country - String! ISO 3166-1 alpha-2 country code e.g. KE
county - String!
sub_county - String!
ward - String
town - String
landmark - String
gps_coordinates - GpsCoordinatesInput
Example
{
  "country": "abc123",
  "county": "abc123",
  "sub_county": "xyz789",
  "ward": "abc123",
  "town": "abc123",
  "landmark": "abc123",
  "gps_coordinates": GpsCoordinatesInput
}

LocationDetailsObjectType

Fields
Field Name Description
country - String
county - String
sub_county - String
ward - String
town - String
landmark - String
gps_coordinates - GPSCoordinatesObjectType
Example
{
  "country": "abc123",
  "county": "xyz789",
  "sub_county": "abc123",
  "ward": "abc123",
  "town": "xyz789",
  "landmark": "xyz789",
  "gps_coordinates": GPSCoordinatesObjectType
}

LocationTypeEnum

Description

Type of inventory location

Values
Enum Value Description

TRANSIT_INBOUND

INTERNAL_WAREHOUSE

EXTERNAL_WAREHOUSE

BRANCH

SERVICE_CENTER

PARTNERS

DEALERS

STATIC

AGENT

TRANSIT_OUTBOUND

TRANSIT_REVERSE

WITH_CLIENT

WITH_RIDER

RETAILS

Example
"TRANSIT_INBOUND"

LocationsConfigType

Description

Location hierarchy for a country

Fields
Field Name Description
location - JSON! Nested county → sub-county → wards location hierarchy
allowedLocations - JSON Counties considered in-zone for delivery
Example
{"location": {}, "allowedLocations": {}}

LockDeviceInput

Fields
Input Field Description
nextLockDate - DateTime Device next lock date
sendSms - Boolean Send SMS notification
Example
{
  "nextLockDate": "2007-12-03T10:15:30Z",
  "sendSms": true
}

LockingSystemCondition

Description

Locking system condition observed during ops device assessment

Values
Enum Value Description

OK

TAMPERED

REMOVED

OTHER

Example
"OK"

ManuallyReconcilePaymentInput

Fields
Input Field Description
payment_id - ID!
customer_id - ID!
reason - String!
Example
{
  "payment_id": 4,
  "customer_id": 4,
  "reason": "abc123"
}

MarkFailedDeliveryInput

Fields
Input Field Description
delivery_id - ID!
delivery_status - DeliveryStatusEnum!
failed_delivery_reason - String
location_id - ID
Example
{
  "delivery_id": "4",
  "delivery_status": "PENDING",
  "failed_delivery_reason": "abc123",
  "location_id": 4
}

MediaAssetDto

Fields
Field Name Description
_id - ID!
domain - MediaAssetsDomain!
type - MediaAssetType!
target - String!
target_id - String!
password - String
url - String!
name - String!
content_type - String!
storage_provider - MediaAssetProvider!
raw - JSON
createdAt - DateTime!
updatedAt - DateTime!
Example
{
  "_id": "4",
  "domain": "AUDIT",
  "type": "SELFIE",
  "target": "abc123",
  "target_id": "abc123",
  "password": "abc123",
  "url": "xyz789",
  "name": "xyz789",
  "content_type": "abc123",
  "storage_provider": "S3",
  "raw": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

MediaAssetFilterInput

Fields
Input Field Description
domain - String
target - String
target_id - String
type - String
Example
{
  "domain": "abc123",
  "target": "xyz789",
  "target_id": "xyz789",
  "type": "abc123"
}

MediaAssetProvider

Values
Enum Value Description

S3

CLOUDINARY

GOOGLE_CLOUD

AZURE

LOCAL

Example
"S3"

MediaAssetType

Values
Enum Value Description

SELFIE

ID_FRONT

ID_BACK

PASSPORT

DRIVER_LICENSE

MOBILE_MONEY_STATEMENT

BANK_STATEMENT

SALARY_SLIP

TAX_PIN_CERTIFICATE

BUSINESS_PERMIT

TRADE_LICENSE

CERTIFICATE_OF_INCORPORATION

VAT_CERTIFICATE

CONTRACT

AGREEMENT

TERMS_OF_SERVICE

PROOF_OF_ADDRESS

UTILITY_BILL

CATEGORY_IMAGE

PRODUCT_CATALOG_IMAGE

DEVICE_IMEI_VERIFICATION

DEVICE_CONDITION_PHOTO

WARRANTY_DOCUMENT

DELIVERY_RECEIPT

PROOF_OF_DELIVERY_PHOTO

QC_REPORT

REPAIR_DIAGNOSTIC_REPORT

REPAIR_JOB_CARD

DEVICE_PRE_REPAIR_PHOTO

DEVICE_POST_REPAIR_PHOTO

KEY_LOAN_TERMS

REPOSSESSION_CERTIFICATE

INSURANCE_CERTIFICATE

OTHER

Example
"SELFIE"

MediaAssetsDomain

Values
Enum Value Description

AUDIT

AUTH

COMMUNICATION

CONFIG

CUSTOMER

INTEGRATIONS

INVENTORY

LOAN

PARTNER

PAYMENT

SALE

TERRITORY

Example
"AUDIT"

MoShopNamespace

Fields
Field Name Description
createShopOwner - PartnerProfileObjectType! Create Shop Owner
Arguments
createShopAttendant - InternalStaffProfileObjectType! Create Shop Attendant
Arguments
updateShopOwner - PartnerProfileObjectType! Update Shop Owner
Arguments
partnerProfileId - String!
updateShopAttendant - PartnerProfileObjectType! Update Shop Attendant
Arguments
partnerProfileId - String!
shopsOffset - OffsetPaginatedPartnerProfiles! Get shops with offset pagination
Arguments
shopsCursor - CursorPaginatedPartnerProfiles! Get shops with cursor pagination
Arguments
Example
{
  "createShopOwner": PartnerProfileObjectType,
  "createShopAttendant": InternalStaffProfileObjectType,
  "updateShopOwner": PartnerProfileObjectType,
  "updateShopAttendant": PartnerProfileObjectType,
  "shopsOffset": OffsetPaginatedPartnerProfiles,
  "shopsCursor": CursorPaginatedPartnerProfiles
}

MobileMoneyRequestInput

Fields
Input Field Description
amount - Float!
currency - String
reference - String!
customer_id - String
wallet_id - String
description - String
metadata - JSONObject
phoneNumber - String!
accountReference - String
Example
{
  "amount": 987.65,
  "currency": "abc123",
  "reference": "abc123",
  "customer_id": "abc123",
  "wallet_id": "xyz789",
  "description": "xyz789",
  "metadata": {},
  "phoneNumber": "abc123",
  "accountReference": "xyz789"
}

ModelCreditDecision

Description

Model credit decision outcome

Values
Enum Value Description

ALLGO

RISKCASH

WANTSMO45

MO45

MOHIGH

MONLIM

Example
"ALLGO"

MoveGroupInput

Fields
Input Field Description
groupId - String!
newParentId - String
realm - String
Example
{
  "groupId": "abc123",
  "newParentId": "abc123",
  "realm": "xyz789"
}

MoveLoanPaymentsInput

Fields
Input Field Description
oldLoanId - ID!
newLoanId - ID!
reason - String!
isSystemAction - Boolean Set true when called by an internal system process (e.g. after-sale state machine) without an authenticated user context.
Example
{
  "oldLoanId": 4,
  "newLoanId": 4,
  "reason": "xyz789",
  "isSystemAction": false
}

MoveLoanPaymentsResultType

Fields
Field Name Description
allocationsMovedCount - Int!
totalAmountMoved - Float!
walletCreditedAmount - Float!
adjustmentIds - [ID!]!
Example
{
  "allocationsMovedCount": 987,
  "totalAmountMoved": 123.45,
  "walletCreditedAmount": 987.65,
  "adjustmentIds": ["4"]
}

NormalHighDepositEnum

Description

Whether the application uses a normal or high deposit

Values
Enum Value Description

NORMAL

HIGH

Example
"NORMAL"

NormalHighDepositFilterInput

Example
{"eq": "NORMAL", "ne": "NORMAL", "in": ["NORMAL"], "notIn": ["NORMAL"]}

OfferStatusEnum

Description

Status of offer or promotion

Values
Enum Value Description

DRAFT

ACTIVE

SCHEDULED

PAUSED

EXPIRED

Example
"DRAFT"

OfferTypeEnum

Description

Type of offer or promotion

Values
Enum Value Description

PERCENTAGE

FIXED_AMOUNT

BUY_X_GET_Y

BUNDLE

FREE_SHIPPING

Example
"PERCENTAGE"

OfflineAgentNamespace

Fields
Field Name Description
createOfflineAgent - PartnerProfileObjectType! Create Offline Agent
Arguments
updateOfflineAgent - PartnerProfileObjectType! Update Offline Agent
Arguments
partnerProfileId - String!
offlineAgentsOffset - OffsetPaginatedPartnerProfiles! Get all Offline Agents with offset pagination
Arguments
Example
{
  "createOfflineAgent": PartnerProfileObjectType,
  "updateOfflineAgent": PartnerProfileObjectType,
  "offlineAgentsOffset": OffsetPaginatedPartnerProfiles
}

OffsetPaginatedAgentProfiles

Fields
Field Name Description
data - [AgentProfileObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [AgentProfileObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedApplicationCallDetails

Fields
Field Name Description
data - [ApplicationCallDetailsType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ApplicationCallDetailsType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedApplications

Fields
Field Name Description
data - [ApplicationEntityGraphQL!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ApplicationEntityGraphQL],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedAuditLogs

Fields
Field Name Description
data - [AuditLogObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [AuditLogObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedCallDispositions

Fields
Field Name Description
data - [CallDispositionType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [CallDispositionType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedCategories

Fields
Field Name Description
data - [CategoryObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [CategoryObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedCohorts

Fields
Field Name Description
data - [CohortObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [CohortObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedCommissionOverrides

Fields
Field Name Description
data - [CommissionOverrideObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [CommissionOverrideObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedCommissions

Fields
Field Name Description
data - [CommissionObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [CommissionObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedCommunications

Fields
Field Name Description
data - [CommunicationObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [CommunicationObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedConditions

Fields
Field Name Description
data - [ConditionObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ConditionObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedDeliveries

Fields
Field Name Description
data - [DeliveryObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [DeliveryObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedDeliveryCalls

Fields
Field Name Description
data - [DeliveryCallObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [DeliveryCallObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedDeliveryItems

Fields
Field Name Description
data - [DeliveryItemObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [DeliveryItemObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedFlashSaleItems

Fields
Field Name Description
data - [FlashSaleItemObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [FlashSaleItemObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedFlashSales

Fields
Field Name Description
data - [FlashSaleObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [FlashSaleObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedGroups

Fields
Field Name Description
data - [GroupObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [GroupObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedInternalStaffProfiles

Fields
Field Name Description
data - [InternalStaffProfileObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [InternalStaffProfileObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedInventory

Fields
Field Name Description
data - [InventoryObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [InventoryObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedInventoryAllocations

Fields
Field Name Description
data - [InventoryAllocationObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [InventoryAllocationObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedInventoryLocations

Fields
Field Name Description
data - [InventoryLocationObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [InventoryLocationObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedLoanContracts

Fields
Field Name Description
data - [LoanContractDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanContractDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedLoanDelinquencyTracking

Fields
Field Name Description
data - [LoanDelinquencyTrackingDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanDelinquencyTrackingDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedLoanInstallments

Fields
Field Name Description
data - [LoanInstallmentDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanInstallmentDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedLoanLedger

Fields
Field Name Description
data - [LoanLedgerDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanLedgerDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedLoanOverrides

Fields
Field Name Description
data - [LoanOverrideDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [LoanOverrideDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedMediaAssets

Fields
Field Name Description
data - [MediaAssetDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [MediaAssetDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedOrderItems

Fields
Field Name Description
data - [OrderItemObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [OrderItemObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedOrders

Fields
Field Name Description
data - [OrderObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [OrderObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedPartnerProfiles

Fields
Field Name Description
data - [PartnerProfileObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [PartnerProfileObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedPaymentAdjustments

Fields
Field Name Description
data - [PaymentAdjustmentsEntityType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [PaymentAdjustmentsEntityType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedPaymentAllocations

Fields
Field Name Description
data - [PaymentAllocationDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [PaymentAllocationDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedPaymentStatement

Fields
Field Name Description
data - [PaymentStatementEntryDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [PaymentStatementEntryDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedPricePlans

Fields
Field Name Description
data - [PricePlanObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [PricePlanObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedProductOffers

Fields
Field Name Description
data - [ProductOfferObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ProductOfferObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedProducts

Fields
Field Name Description
data - [ProductObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ProductObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedRawRisk

Fields
Field Name Description
data - [RawRiskDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [RawRiskDto],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedRepairs

Fields
Field Name Description
data - [RepairObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [RepairObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedResubmissions

Fields
Field Name Description
data - [ApplicationResubmissionGraphQL!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ApplicationResubmissionGraphQL],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedReturns

Fields
Field Name Description
data - [ReturnsGraphQL!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ReturnsGraphQL],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedRoles

Fields
Field Name Description
data - [RoleObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [RoleObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedSales

Fields
Field Name Description
data - [SalesObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [SalesObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedSellerCatalog

Fields
Field Name Description
data - [SellerCatalogObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [SellerCatalogObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedSellerTiers

Fields
Field Name Description
data - [SellerTierObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [SellerTierObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedSellers

Fields
Field Name Description
data - [SellerObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [SellerObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedSharedResources

Fields
Field Name Description
data - [SharedResourceObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [SharedResourceObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedSkus

Fields
Field Name Description
data - [SkuObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [SkuObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedUsers

Fields
Field Name Description
data - [UserObjectType!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [UserObjectType],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginatedValidationRecords

Fields
Field Name Description
data - [ValidationRecordGraphQLEntity!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [ValidationRecordGraphQLEntity],
  "metadata": OffsetPaginationMetadata
}

OffsetPaginationInputType

Fields
Input Field Description
page - Int Page number (1-indexed). Default = 1
perPage - Int Number of items per page. Default = 20
sortField - String Field to sort by
sortDirection - SortOrder Sort direction. Default = DESC
rangeField - String Field to apply date range filter
startDate - DateTime Start date for range filter
endDate - DateTime End date for range filter
Example
{
  "page": 123,
  "perPage": 987,
  "sortField": "abc123",
  "sortDirection": "ASC",
  "rangeField": "xyz789",
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z"
}

OffsetPaginationMetadata

Fields
Field Name Description
totalItems - Int! Total number of items
perPage - Int! Items per page
page - Int! Current page number
lastPage - Int! Last page number
Example
{"totalItems": 123, "perPage": 123, "page": 123, "lastPage": 987}

OnlineAgentNamespace

Fields
Field Name Description
createOnlineAgent - PartnerProfileObjectType! Create Online Agent
Arguments
createSuperAgent - PartnerProfileObjectType! Create Super Agent
Arguments
updateOnlineAgent - PartnerProfileObjectType! Update Online Agent
Arguments
partnerProfileId - String!
updateSuperAgent - PartnerProfileObjectType! Update Super Agent
Arguments
partnerProfileId - String!
upgradeOnlineAgentToSuperAgent - PartnerProfileObjectType! Upgrade Online Agent to Super Agent
Arguments
onlineAgentsOffset - OffsetPaginatedPartnerProfiles! Get all Online Agents with offset pagination
Arguments
superAgentsOffset - OffsetPaginatedPartnerProfiles! Get all Super Agents with offset pagination
Arguments
Example
{
  "createOnlineAgent": PartnerProfileObjectType,
  "createSuperAgent": PartnerProfileObjectType,
  "updateOnlineAgent": PartnerProfileObjectType,
  "updateSuperAgent": PartnerProfileObjectType,
  "upgradeOnlineAgentToSuperAgent": PartnerProfileObjectType,
  "onlineAgentsOffset": OffsetPaginatedPartnerProfiles,
  "superAgentsOffset": OffsetPaginatedPartnerProfiles
}

OperationalRoleEnum

Description

Operational roles within the organization

Values
Enum Value Description

SALES_FORCE_MANAGER

TRAINER

FIELD_SALES_REP

TERRITORY_MANAGER

CHANNEL_SUPPORT_OFFICER

STORE_MANAGER

SHOP_AGENT

PARTNER_PROMOTER

TECHNICIAN

TELESALES_AGENT

TELESALES_TEAM_LEAD

CUSTOMER_SUPPORT_AGENT

OPERATIONS_SUPPORT

Example
"SALES_FORCE_MANAGER"

OperationsDetailsType

Fields
Field Name Description
operations_user_id - String
status - OperationsStatus
operations_notes - String
repair_cost - Float
device_condition - DeviceConditionGrade
locking_system_condition - LockingSystemCondition
device_unlock_password - String
decided_at - DateTime
Example
{
  "operations_user_id": "xyz789",
  "status": "COMPLETED",
  "operations_notes": "abc123",
  "repair_cost": 123.45,
  "device_condition": "GRADE_A",
  "locking_system_condition": "OK",
  "device_unlock_password": "abc123",
  "decided_at": "2007-12-03T10:15:30Z"
}

OperationsStatus

Description

Status of the operations review

Values
Enum Value Description

COMPLETED

PENDING

Example
"COMPLETED"

OrganizationDetailsDto

Fields
Field Name Description
trading_name - String Organization trading name
organization_type - String Organization type (LLC, Corporation, etc.)
registration_date - String Registration date in ISO 8601 format
tax_id - String Tax identification number
industry_sector - String Industry sector
number_of_employees - Float Number of employees
application_id - String Application ID
customer_source - String Customer source
customer_source_id - String Customer source ID
Example
{
  "trading_name": "xyz789",
  "organization_type": "xyz789",
  "registration_date": "xyz789",
  "tax_id": "abc123",
  "industry_sector": "abc123",
  "number_of_employees": 987.65,
  "application_id": "xyz789",
  "customer_source": "xyz789",
  "customer_source_id": "xyz789"
}

OrganizationDetailsInput

Fields
Input Field Description
trading_name - String
organization_type - String
registration_date - String
tax_id - String
industry_sector - String
number_of_employees - Int
application_id - String
customer_source - String
customer_source_id - String
Example
{
  "trading_name": "xyz789",
  "organization_type": "abc123",
  "registration_date": "abc123",
  "tax_id": "abc123",
  "industry_sector": "xyz789",
  "number_of_employees": 123,
  "application_id": "abc123",
  "customer_source": "xyz789",
  "customer_source_id": "abc123"
}

OthersValidationCheckInput

Fields
Input Field Description
applicationId - ID!
type - ValidationCheckType!
iprsGatewayType - IprsPlatform
justification - String! Reason for running this check
Example
{
  "applicationId": "4",
  "type": "CUSTOMER",
  "iprsGatewayType": "TRANSUNION",
  "justification": "xyz789"
}

OtpDetailGraphQL

Fields
Field Name Description
otpCreatedAt - DateTime! Timestamp when OTP was created
otpVerifiedAt - DateTime Timestamp when OTP was verified
requesting_sale_agentId - String! ID of the sales agent requesting OTP
customer_phone_number - String! Customer phone number for OTP delivery
Example
{
  "otpCreatedAt": "2007-12-03T10:15:30Z",
  "otpVerifiedAt": "2007-12-03T10:15:30Z",
  "requesting_sale_agentId": "xyz789",
  "customer_phone_number": "abc123"
}

PatchUpdateOptionsInput

Fields
Input Field Description
correction - String Correction type identifier (e.g. cash-only, id-correction)
skipEvents - Boolean Skip emitting events after update. Default = false
justification - String Reason or justification for this update
updateType - CreditUpdateType Type of update being performed (UPDATE_APPLICATION or UPDATE_APPLICATION_STATUS)
Example
{
  "correction": "abc123",
  "skipEvents": false,
  "justification": "abc123",
  "updateType": "VALIDATION"
}

PerformReturnsActionInput

Description

Input for performing an action on a returns request

Fields
Input Field Description
action - ReturnsAction! The action to perform
payload - ReturnsActionPayloadInput Action-specific payload
Example
{"action": "SUBMIT", "payload": ReturnsActionPayloadInput}

PerformanceMetricsInput

Fields
Input Field Description
response_time_hours - Float Response time in hours
fulfillment_rate - Float Fulfillment rate (0-1)
return_rate - Float Return rate (0-1)
customer_satisfaction - Float Customer satisfaction score (1-5)
Example
{
  "response_time_hours": 987.65,
  "fulfillment_rate": 123.45,
  "return_rate": 987.65,
  "customer_satisfaction": 123.45
}

PermissionActionMetaType

Description

Metadata for a single permission action

Fields
Field Name Description
value - String! Action identifier used in permission grants (e.g. read, create, manage)
label - String! Human-readable label for the action
description - String! Description of what this action permits
Example
{
  "value": "xyz789",
  "label": "xyz789",
  "description": "xyz789"
}

PermissionCatalogType

Description

Full catalog of available resources and actions — use this to build a permission editor UI

Fields
Field Name Description
resources - [PermissionResourceMetaType!]! All permission resources with labels, descriptions, and valid actions
actions - [PermissionActionMetaType!]! All permission actions with labels and descriptions
Example
{
  "resources": [PermissionResourceMetaType],
  "actions": [PermissionActionMetaType]
}

PermissionResourceMetaType

Description

Metadata for a single permission resource

Fields
Field Name Description
value - String! Resource identifier used in permission grants (e.g. onboarding, stock:mophones)
label - String! Human-readable label for the resource
description - String! Description of what this resource covers
applicableActions - [String!]! Actions that are meaningful for this resource — constrains the UI to valid combinations
Example
{
  "value": "abc123",
  "label": "abc123",
  "description": "abc123",
  "applicableActions": ["xyz789"]
}

PhoneCheckType

Description

Type of phone verification check

Values
Enum Value Description

UNKNOWN

CUSTOMER

NOK

RESUBMISSION_CUSTOMER

RESUBMISSION_NOK

Example
"UNKNOWN"

PhoneLookupPlatform

Description

Phone lookup provider platform

Values
Enum Value Description

MPESA

Example
"MPESA"

PhoneVerificationTransactionCursorPaginatedResponse

Description

Cursor paginated phone verification transactions response

Fields
Field Name Description
data - [PhoneVerificationTransactionDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [PhoneVerificationTransactionDto],
  "pagination": CursorPaginationMetadata
}

PhoneVerificationTransactionDto

Description

Phone verification transaction record

Fields
Field Name Description
_id - ID Unique identifier
status - Boolean! Verification status
country_iso - String! Country ISO code
provider - PhoneLookupPlatform! Phone lookup provider
phone_number - String Phone number being verified
target_id - String! Target ID (customer/prospect)
customer_name - String Customer name from verification
transaction_id - String Transaction ID from provider
failure_reason - String Reason for failure
registered - Boolean! Whether phone is registered
failed_at - DateTime Timestamp when verification failed
completed_at - DateTime Timestamp when verification completed
manual - Boolean! Whether this was a manual verification
check - PhoneCheckType! Type of verification check
record_status - VerificationRecordStatus Cache freshness state of this record
createdAt - DateTime Record creation timestamp
Example
{
  "_id": "4",
  "status": false,
  "country_iso": "xyz789",
  "provider": "MPESA",
  "phone_number": "abc123",
  "target_id": "abc123",
  "customer_name": "xyz789",
  "transaction_id": "abc123",
  "failure_reason": "abc123",
  "registered": true,
  "failed_at": "2007-12-03T10:15:30Z",
  "completed_at": "2007-12-03T10:15:30Z",
  "manual": false,
  "check": "UNKNOWN",
  "record_status": "ACTIVE",
  "createdAt": "2007-12-03T10:15:30Z"
}

PhoneVerificationTransactionFilterInput

Description

Filter input for querying phone verification transactions

Fields
Input Field Description
target_id - String Filter by target ID
phone_number - String Filter by phone number
provider - PhoneLookupPlatform Filter by provider
check - PhoneCheckType Filter by check type
status - Boolean Filter by verification status
registered - Boolean Filter by registration status
record_status - VerificationRecordStatus Filter by cache freshness state
Example
{
  "target_id": "xyz789",
  "phone_number": "abc123",
  "provider": "MPESA",
  "check": "UNKNOWN",
  "status": true,
  "registered": false,
  "record_status": "ACTIVE"
}

PhoneVerificationTransactionOffsetPaginatedResponse

Description

Offset paginated phone verification transactions response

Fields
Field Name Description
data - [PhoneVerificationTransactionDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [PhoneVerificationTransactionDto],
  "metadata": OffsetPaginationMetadata
}

PhysicalState

Description

Physical state of inventory item

Values
Enum Value Description

IN_STOCK

RESERVED_FOR_APPLICATION

APPROVAL_PENDING

APPROVED_FOR_FINANCE

DISBURSEMENT_PENDING

OUT_FOR_DELIVERY

WITH_CLIENT

WITH_RIDER

ACTIVE_LOAN_DEVICE

RETURNED_FOR_DEFAULT

REPOSSESSED

REFURBISHING

RESALABLE

WRITEOFF

Example
"IN_STOCK"

PlatformUnlockSummaryType

Fields
Field Name Description
platform - String!
totalDevices - Int!
succeeded - Int!
failed - Int!
Example
{
  "platform": "xyz789",
  "totalDevices": 987,
  "succeeded": 123,
  "failed": 987
}

PostingTagEnum

Description

Specific tag identifying the nature of the adjustment

Values
Enum Value Description

STAFF_SALE_DISCOUNT

BULK_PAYMENT_DISCOUNT

EARLY_SETTLEMENT_DISCOUNT

PROMO_REWARD

CREDIT_PAYOFF_2ND_LOAN_DISCOUNT

PROMO_REWARD_2ND_LOAN_DISCOUNT

REFERRAL_REWARD

CUSTOMER_ENGAGEMENT_REWARD

REPO_REFUND

TWO_DAY_REFUND

TRADEIN_VALUE

ACCOUNT_CORRECTION

TRANSACTION_SPLIT

REPAIRS_COST

TRANSACTION_REVERSED

TRANSACTION_REVOCATION_CANCELLED

SERVICE_FAIL

SERVICE_DAYS

MANUAL_ADJUSTMENT

WALLET_CORRECTION

PAYMENT_MISMATCH

Example
"STAFF_SALE_DISCOUNT"

PostingTypeEnum

Description

Type of posting for the adjustment

Values
Enum Value Description

ADJUSTMENT_POST

TRANSACTION_EDIT

CREDIT_DAYS

Example
"ADJUSTMENT_POST"

PriceRestrictionType

Fields
Field Name Description
maxCashPrice - Float
maxCashPriceMosaver - Float
minCashPrice - Float
minLoanPrice - Float
maxLoanPrice - Float
Example
{
  "maxCashPrice": 123.45,
  "maxCashPriceMosaver": 123.45,
  "minCashPrice": 987.65,
  "minLoanPrice": 123.45,
  "maxLoanPrice": 987.65
}

ProcessExemptionInput

Fields
Input Field Description
exemption_type - ExemptionTypeEnum!
justification - String!
archive - Boolean
Example
{
  "exemption_type": "TERMS_ACCEPTANCE",
  "justification": "abc123",
  "archive": false
}

ProcessKycDocumentsInput

Fields
Input Field Description
applicationId - ID!
mpesaStatement - Upload
mpesaStatementPassword - String
bankStatement - Upload
bankStatementPassword - String
kraPin - String
alternativePhoneNumber - String
gateStatus - String
proceedWithoutDocument - Boolean
Example
{
  "applicationId": 4,
  "mpesaStatement": Upload,
  "mpesaStatementPassword": "abc123",
  "bankStatement": Upload,
  "bankStatementPassword": "xyz789",
  "kraPin": "xyz789",
  "alternativePhoneNumber": "abc123",
  "gateStatus": "xyz789",
  "proceedWithoutDocument": false
}

ProcessKycImagesInput

Fields
Input Field Description
applicationId - ID!
idFront - Upload
idBack - Upload
selfie - Upload
tenant - String!
Example
{
  "applicationId": 4,
  "idFront": Upload,
  "idBack": Upload,
  "selfie": Upload,
  "tenant": "abc123"
}

ProcessKycImagesResult

Fields
Field Name Description
applicationId - ID!
idFront - KycDocumentType
idBack - KycDocumentType
selfie - KycDocumentType
Example
{
  "applicationId": 4,
  "idFront": KycDocumentType,
  "idBack": KycDocumentType,
  "selfie": KycDocumentType
}

ProcessReferralResult

Fields
Field Name Description
success - Boolean!
message - String!
error - String
Example
{
  "success": false,
  "message": "abc123",
  "error": "xyz789"
}

ProcessReferralRewardsInput

Fields
Input Field Description
referral_id - ID!
processed_by - String!
force_processing - Boolean
airtime_distribution_mode - AirtimeDistributionModeEnum
Example
{
  "referral_id": 4,
  "processed_by": "xyz789",
  "force_processing": false,
  "airtime_distribution_mode": "MANUAL"
}

ProofOfDelivery

Fields
Field Name Description
images - [String!]
signature - String
otp - String
submitted_otp - String
otp_expiry_time - String
match - Boolean
payment_reference - String
failed_delivery_reason - String
Example
{
  "images": ["xyz789"],
  "signature": "xyz789",
  "otp": "xyz789",
  "submitted_otp": "xyz789",
  "otp_expiry_time": "xyz789",
  "match": true,
  "payment_reference": "xyz789",
  "failed_delivery_reason": "xyz789"
}

ProviderInfo

Fields
Field Name Description
provider_name - String
external_id - String
tracking_url - String
Example
{
  "provider_name": "xyz789",
  "external_id": "xyz789",
  "tracking_url": "abc123"
}

PublishConfigInput

Description

Publish versioned config input

Fields
Input Field Description
key - String!
client_id - String
platform - ConfigPlatformEnum
version - Int Specific version to publish, or latest draft if not specified
Example
{
  "key": "abc123",
  "client_id": "abc123",
  "platform": "ALL",
  "version": 123
}

PublishDraftInput

Fields
Input Field Description
draft_id - String!
changeReason - String
Example
{
  "draft_id": "xyz789",
  "changeReason": "abc123"
}

PurchaseMode

Description

Purchase mode for the product

Values
Enum Value Description

CASH

LOAN

Example
"CASH"

PurchaseModeFilterInput

Fields
Input Field Description
eq - PurchaseMode
ne - PurchaseMode
in - [PurchaseMode!]
notIn - [PurchaseMode!]
Example
{"eq": "CASH", "ne": "CASH", "in": ["CASH"], "notIn": ["CASH"]}

PurchaseTypeEnum

Description

Type of payment

Values
Enum Value Description

CASH

CREDIT

Example
"CASH"

PushDataInput

Fields
Input Field Description
targetType - PushTargetType!
targetId - String!
title - String
body - String
image - String
clickAction - String
data - JSON
Example
{
  "targetType": "USER",
  "targetId": "abc123",
  "title": "xyz789",
  "body": "abc123",
  "image": "xyz789",
  "clickAction": "abc123",
  "data": {}
}

PushDataObjectType

Fields
Field Name Description
targetType - PushTargetType!
targetId - String!
title - String
body - String
image - String
clickAction - String
data - JSON
Example
{
  "targetType": "USER",
  "targetId": "xyz789",
  "title": "abc123",
  "body": "xyz789",
  "image": "abc123",
  "clickAction": "abc123",
  "data": {}
}

PushTargetType

Description

Target type for push notifications

Values
Enum Value Description

USER

ROLE

TOPIC

Example
"USER"

QueueAnalyticsExplainType

Fields
Field Name Description
queue - String! The queue being analysed
slaThresholdMinutes - Float! SLA threshold used for breach calculations, in minutes
agentTargetCapacity - Int! Target active applications per agent used for capacity utilization
agingBucketBoundaries - String! Aging bucket boundaries used
states - QueueStateExplainType! Human-readable explanation of each queue state
Example
{
  "queue": "xyz789",
  "slaThresholdMinutes": 123.45,
  "agentTargetCapacity": 987,
  "agingBucketBoundaries": "abc123",
  "states": QueueStateExplainType
}

QueueAnalyticsType

Fields
Field Name Description
activeApplications - Int! waiting + ongoing
pendingApplications - Int! waiting only
completedApplications - Int!
queueStateCounts - QueueStateCountsType!
averageWaitTime - Float! Average wait time in milliseconds
medianWaitTime - Float! Median wait time in milliseconds
averageProcessingTime - Float! Average time from when an agent started working an application to when it was completed, in milliseconds. Calculated over completed applications within the time frame that have both a started and completion timestamp.
medianProcessingTime - Float! Median processing time in milliseconds
p95WaitTime - Float! P95 wait time in milliseconds
p95ProcessingTime - Float! P95 processing time in milliseconds
slaBreachCount - Int! Applications that exceeded the SLA wait-time threshold
slaBreachRate - Float! Percentage of active applications that breached SLA
agingBuckets - AgingBucketType! Distribution of waiting applications by age
throughputRate - Float! Completed applications per hour within the time frame
inflowCount - Int! Applications that entered the queue within the time frame
workloadVariance - Float! Standard deviation of active applications across agents
totalAgents - Int!
engagedAgents - Int!
freeAgents - Int!
recommendedNextAgent - RecommendedAgentType
callActivity - CallActivityStatsType Aggregate call activity from application_call_details for this queue + time frame (CREDIT_CALL queue only)
explain - QueueAnalyticsExplainType! Explains constants, thresholds, and state definitions used in this response
Example
{
  "activeApplications": 987,
  "pendingApplications": 987,
  "completedApplications": 987,
  "queueStateCounts": QueueStateCountsType,
  "averageWaitTime": 123.45,
  "medianWaitTime": 987.65,
  "averageProcessingTime": 987.65,
  "medianProcessingTime": 987.65,
  "p95WaitTime": 987.65,
  "p95ProcessingTime": 123.45,
  "slaBreachCount": 987,
  "slaBreachRate": 123.45,
  "agingBuckets": AgingBucketType,
  "throughputRate": 123.45,
  "inflowCount": 987,
  "workloadVariance": 987.65,
  "totalAgents": 987,
  "engagedAgents": 987,
  "freeAgents": 987,
  "recommendedNextAgent": RecommendedAgentType,
  "callActivity": CallActivityStatsType,
  "explain": QueueAnalyticsExplainType
}

QueueApplicationsInput

Fields
Input Field Description
queue - CreditQueue! The queue to scope this request to
startDate - String! Start of the time frame (ISO 8601)
endDate - String! End of the time frame (ISO 8601)
queueState - CreditQueueState Filter by queue state (omit to return all active states)
agentId - String Filter by assigned agent ID
Example
{
  "queue": "SCORING",
  "startDate": "abc123",
  "endDate": "abc123",
  "queueState": "WAITING",
  "agentId": "abc123"
}

QueueScopeInput

Fields
Input Field Description
queue - CreditQueue! The queue to scope this request to
startDate - String! Start of the time frame (ISO 8601)
endDate - String! End of the time frame (ISO 8601)
Example
{
  "queue": "SCORING",
  "startDate": "abc123",
  "endDate": "abc123"
}

QueueStateCountsType

Fields
Field Name Description
waiting - Int!
ongoing - Int!
completed - Int!
resubmissions - Int SCORING queue only — RESUBMISSION apps waiting on customer/agent
resubmissionsReady - Int SCORING queue only — RESUBMISSION apps committed and ready for scorer
Example
{
  "waiting": 123,
  "ongoing": 123,
  "completed": 123,
  "resubmissions": 123,
  "resubmissionsReady": 123
}

QueueStateExplainType

Fields
Field Name Description
waiting - String! What the WAITING state means for this queue
ongoing - String! What the ONGOING state means for this queue
completed - String! What the COMPLETED state means for this queue
resubmissions - String What the RESUBMISSIONS state means — waiting on customer (SCORING only)
resubmissionsReady - String What the RESUBMISSIONS_READY state means — agent committed, scorer must re-review (SCORING only)
Example
{
  "waiting": "xyz789",
  "ongoing": "abc123",
  "completed": "abc123",
  "resubmissions": "xyz789",
  "resubmissionsReady": "xyz789"
}

QueueWorkloadInput

Fields
Input Field Description
queue - CreditQueue! The queue to scope this request to
startDate - String! Start of the time frame (ISO 8601)
endDate - String! End of the time frame (ISO 8601)
agentId - String Narrow results to a single agent
Example
{
  "queue": "SCORING",
  "startDate": "abc123",
  "endDate": "xyz789",
  "agentId": "xyz789"
}

QueueWorkloadResponseType

Fields
Field Name Description
agents - [AgentWorkloadRowType!]!
totalAgents - Int!
engagedAgents - Int!
freeAgents - Int!
workloadVariance - Float! Standard deviation of active applications across agents
Example
{
  "agents": [AgentWorkloadRowType],
  "totalAgents": 987,
  "engagedAgents": 987,
  "freeAgents": 123,
  "workloadVariance": 987.65
}

RawRiskDto

Fields
Field Name Description
id - ID! Unique risk record identifier
block_type - RiskBlockTypeEnum! Type of block
blocked_value - String The actual blocked value
customer_id - String Customer ID reference
primary_id - String Customer national ID
primary_phone - String Customer main phone number
phone_numbers - [String!] Additional customer phone numbers
associated_phone_numbers - [String!] NOK and non-customer phone numbers
associated_ids - [String!] NOK and non-customer IDs
reason - String! Reason for the block (e.g. fraud, default)
description - String Human-readable explanation
severity - RiskSeverityEnum! Block severity level
restricted_actions - [RiskRestrictedActionEnum!]! Actions restricted by this block
is_active - Boolean! Whether the block is currently active
effective_from - DateTime Block is in force from this time
expires_at - DateTime Expiry time; null means no expiry
created_by - String UUID of the agent who created this record
removed_by - String UUID of the agent who removed this record
removed_at - DateTime When the record was deactivated
removal_reason - String Reason for removal
created_at - DateTime! Record creation timestamp
updated_at - DateTime! Record last update timestamp
customer - RawCustomersDto
latestApplication - ApplicationEntityGraphQL
Example
{
  "id": "4",
  "block_type": "CUSTOMER",
  "blocked_value": "xyz789",
  "customer_id": "xyz789",
  "primary_id": "abc123",
  "primary_phone": "xyz789",
  "phone_numbers": ["abc123"],
  "associated_phone_numbers": ["xyz789"],
  "associated_ids": ["xyz789"],
  "reason": "xyz789",
  "description": "abc123",
  "severity": "LOW",
  "restricted_actions": ["BLOCK_NEW_CUSTOMERS"],
  "is_active": false,
  "effective_from": "2007-12-03T10:15:30Z",
  "expires_at": "2007-12-03T10:15:30Z",
  "created_by": "abc123",
  "removed_by": "abc123",
  "removed_at": "2007-12-03T10:15:30Z",
  "removal_reason": "abc123",
  "created_at": "2007-12-03T10:15:30Z",
  "updated_at": "2007-12-03T10:15:30Z",
  "customer": RawCustomersDto,
  "latestApplication": ApplicationEntityGraphQL
}

RawRiskFilterInput

Fields
Input Field Description
customer_id - StringFilterInput
primary_id - StringFilterInput
primary_phone - StringFilterInput
block_type - RiskBlockTypeFilterInput
severity - RiskSeverityFilterInput
reason - StringFilterInput
is_active - BooleanFilterInput
restricted_actions - RiskRestrictedActionFilterInput
associated_phone_numbers - StringArrayFilterInput
associated_ids - StringArrayFilterInput
created_at - DateFilterInput
updated_at - DateFilterInput
or - [RawRiskFilterInput!] Logical OR — match records satisfying any of the given filters
and - [RawRiskFilterInput!] Logical AND — match records satisfying all of the given filters
Example
{
  "customer_id": StringFilterInput,
  "primary_id": StringFilterInput,
  "primary_phone": StringFilterInput,
  "block_type": RiskBlockTypeFilterInput,
  "severity": RiskSeverityFilterInput,
  "reason": StringFilterInput,
  "is_active": BooleanFilterInput,
  "restricted_actions": RiskRestrictedActionFilterInput,
  "associated_phone_numbers": StringArrayFilterInput,
  "associated_ids": StringArrayFilterInput,
  "created_at": DateFilterInput,
  "updated_at": DateFilterInput,
  "or": [RawRiskFilterInput],
  "and": [RawRiskFilterInput]
}

RawWalletTransactionsDto

Fields
Field Name Description
wallet_transaction_id - ID! Unique wallet transaction identifier
wallet_id - ID! Wallet ID this transaction belongs to
customer_id - ID! Customer ID this transaction belongs to
sale_id - ID Associated sale ID
wallet_transaction_ref_id - ID Reference transaction ID
wallet_transaction_type - WalletTransactionTypeEnum! Transaction type
wallet_transaction_sub_type - WalletTransactionSubTypeEnum! Transaction sub-type
wallet_transaction_amount - Float! Transaction amount
wallet_transaction_balance_before - Float! Balance before transaction
wallet_transaction_balance_after - Float! Balance after transaction
wallet_transaction_days_value - Float Days value of transaction
wallet_transaction_points_value - Float Points value of transaction
wallet_transaction_status - WalletTransactionStatusEnum! Transaction status
reference - String Transaction reference
wallet_transaction_description - String Transaction description
wallet_transaction_metadata - JSON Additional transaction metadata
wallet_transaction_created_at - DateTime! Transaction creation timestamp
wallet_transaction_updated_at - DateTime! Transaction last update timestamp
wallet_transaction_completed_at - DateTime Transaction completion timestamp
Example
{
  "wallet_transaction_id": "4",
  "wallet_id": 4,
  "customer_id": "4",
  "sale_id": "4",
  "wallet_transaction_ref_id": 4,
  "wallet_transaction_type": "PAYMENT",
  "wallet_transaction_sub_type": "MPESA",
  "wallet_transaction_amount": 123.45,
  "wallet_transaction_balance_before": 123.45,
  "wallet_transaction_balance_after": 123.45,
  "wallet_transaction_days_value": 123.45,
  "wallet_transaction_points_value": 123.45,
  "wallet_transaction_status": "PENDING",
  "reference": "xyz789",
  "wallet_transaction_description": "xyz789",
  "wallet_transaction_metadata": {},
  "wallet_transaction_created_at": "2007-12-03T10:15:30Z",
  "wallet_transaction_updated_at": "2007-12-03T10:15:30Z",
  "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
}

ReallocateRepairSalesInput

Fields
Input Field Description
saleIds - [String!]!
reason - String!
dryRun - Boolean
Example
{
  "saleIds": ["xyz789"],
  "reason": "xyz789",
  "dryRun": false
}

ReallocateRepairSalesResultType

Fields
Field Name Description
dry_run - Boolean!
reallocated - [RepairSaleReallocationResultType!]!
skipped_sale_ids - [String!]!
reallocated_count - Float!
skipped_count - Float!
total_reallocated - Float!
enqueue_failed_sale_ids - [String!]!
Example
{
  "dry_run": false,
  "reallocated": [RepairSaleReallocationResultType],
  "skipped_sale_ids": ["xyz789"],
  "reallocated_count": 123.45,
  "skipped_count": 987.65,
  "total_reallocated": 123.45,
  "enqueue_failed_sale_ids": ["abc123"]
}

RecalculateGapAnalysisInput

Fields
Input Field Description
id - ID! MoneyStatementAnalysis document ID
updateValidation - Boolean! When true, re-runs the full mpesa validation flow (phone match, income check) after recalculating gap analysis. Default = false
Example
{"id": 4, "updateValidation": true}

RecommendedAgentType

Fields
Field Name Description
_id - ID!
firstName - String!
lastName - String!
email - String!
currentApplications - Int!
Example
{
  "_id": "4",
  "firstName": "xyz789",
  "lastName": "abc123",
  "email": "abc123",
  "currentApplications": 123
}

ReferralCodeValidationResult

Fields
Field Name Description
is_valid - Boolean!
customer_id - String
referral_code - String
error_code - String
Example
{
  "is_valid": true,
  "customer_id": "abc123",
  "referral_code": "xyz789",
  "error_code": "abc123"
}

ReferralRewardStatusEnum

Description

Status of referral reward processing

Values
Enum Value Description

PENDING

PROCESSING

COMPLETED

FAILED

Example
"PENDING"

ReferralStatusEnum

Description

Status of a referral relationship

Values
Enum Value Description

INCOMPLETE

PENDING

READY_FOR_REWARDING

REWARDED

REJECTED

FAILED

EXPIRED

Example
"INCOMPLETE"

RefreshTokenInput

Fields
Input Field Description
refreshToken - String!
clientId - String!
Example
{
  "refreshToken": "abc123",
  "clientId": "xyz789"
}

RejectCustomerReferralInput

Fields
Input Field Description
referral_id - ID!
rejection_reason - String!
rejected_by - String!
Example
{
  "referral_id": "4",
  "rejection_reason": "xyz789",
  "rejected_by": "abc123"
}

RemoveAgentFromCohortInput

Fields
Input Field Description
cohort_id - String!
agent_profile_ids - [String!]!
removal_reason - String
removal_notes - String
removed_by - String!
Example
{
  "cohort_id": "abc123",
  "agent_profile_ids": ["abc123"],
  "removal_reason": "abc123",
  "removal_notes": "xyz789",
  "removed_by": "xyz789"
}

RemoveTrainerFromCohortInput

Fields
Input Field Description
cohort_id - String!
trainer_id - String!
removal_reason - String
removed_by - String!
Example
{
  "cohort_id": "xyz789",
  "trainer_id": "xyz789",
  "removal_reason": "xyz789",
  "removed_by": "abc123"
}

RepaymentTypeEnum

Description

Frequency of loan repayments

Values
Enum Value Description

DAILY

WEEKLY

MONTHLY

Example
"DAILY"

RequestGracePeriodInput

Fields
Input Field Description
contract_id - ID! Loan contract UUID
gracePeriodDays - Int! Selected grace days for this contract
Example
{"contract_id": "4", "gracePeriodDays": 987}

RequestOtpInput

Fields
Input Field Description
phoneNumber - String!
clientId - String!
Example
{
  "phoneNumber": "xyz789",
  "clientId": "xyz789"
}

RequestOtpResponse

Fields
Field Name Description
success - Boolean! Whether the operation was successful
message - String! Operation result message
phone - String! Phone number used
Example
{
  "success": false,
  "message": "abc123",
  "phone": "xyz789"
}

ResendDuplicateOtpInput

Fields
Input Field Description
applicationId - ID!
Example
{"applicationId": "4"}

ResolvedCustomerType

Fields
Field Name Description
display_name - String
customer_phone_number - String
Example
{
  "display_name": "abc123",
  "customer_phone_number": "xyz789"
}

ResolvedDeviceType

Fields
Field Name Description
serial_number - String
product_id - String
sku_id - String
Example
{
  "serial_number": "xyz789",
  "product_id": "abc123",
  "sku_id": "abc123"
}

ResolvedUserType

Fields
Field Name Description
name - String
email - String
Example
{
  "name": "xyz789",
  "email": "xyz789"
}

ResourcePermissionInput

Fields
Input Field Description
resource - String! Resource identifier (e.g. onboarding, orders, stock:mophones)
actions - [String!]! Actions to grant on this resource (read, create, update, delete, manage)
Example
{
  "resource": "xyz789",
  "actions": ["xyz789"]
}

ResourcePermissionType

Fields
Field Name Description
resource - String! The resource this permission applies to (e.g. onboarding, orders, stock:mophones)
actions - [String!]! Allowed actions on this resource (read, create, update, delete, manage)
Example
{
  "resource": "xyz789",
  "actions": ["xyz789"]
}

ReverseProgress

Description

OPS-facing reverse logistics progress stage

Values
Enum Value Description

TO_BE_PICKED_UP

IN_TRANSIT_REVERSE

RECEIVED

RETURNED

PENDING_LOAN_CLOSURE

PENDING_INVESTIGATION

COMPLETED

Example
"TO_BE_PICKED_UP"

ReviewKYCInput

Fields
Input Field Description
profile_id - String!
action - KYCApprovalAction!
review_notes - String
reviewed_by - String
Example
{
  "profile_id": "xyz789",
  "action": "APPROVE",
  "review_notes": "abc123",
  "reviewed_by": "xyz789"
}

RevokeGracePeriodInput

Fields
Input Field Description
contract_id - ID! Loan contract UUID
reason - String! Reason for revocation
Example
{"contract_id": 4, "reason": "xyz789"}

RevokePaymentInput

Fields
Input Field Description
payment_id - ID!
revocation_amount - Float!
reason_code - PaymentRevocationReasonCodeEnum!
reason_text - String!
idempotency_key - String!
Example
{
  "payment_id": "4",
  "revocation_amount": 987.65,
  "reason_code": "OPERATOR_ERROR",
  "reason_text": "xyz789",
  "idempotency_key": "abc123"
}

RollbackConfigInput

Description

Rollback versioned config input

Fields
Input Field Description
key - String!
client_id - String
platform - ConfigPlatformEnum
target_version - Int!
Example
{
  "key": "xyz789",
  "client_id": "abc123",
  "platform": "ALL",
  "target_version": 123
}

RoundRobinRerunResultType

Fields
Field Name Description
total - Int! Total stuck applications found
updated - Int! Applications successfully reassigned
errors - Int! Applications that failed to update
Example
{"total": 123, "updated": 123, "errors": 123}

ScheduleDataExportInput

Fields
Input Field Description
exportName - String!
domain - DataExportDomain!
fileFormat - DataExportFileFormat
filters - JSON
dateRange - DataExportDateRangeInput
columnPreset - String
selectedColumnKeys - [String!]
Example
{
  "exportName": "xyz789",
  "domain": "INVENTORY",
  "fileFormat": "XLSX",
  "filters": {},
  "dateRange": DataExportDateRangeInput,
  "columnPreset": "xyz789",
  "selectedColumnKeys": ["xyz789"]
}

SetAgentPermissionsInput

Fields
Input Field Description
permissions - [ResourcePermissionInput!]! Full replacement permission list for the agent type. Replaces all existing grants.
Example
{"permissions": [ResourcePermissionInput]}

SetRoleConfigInput

Description

Create or update a role-scoped config

Fields
Input Field Description
key - String!
value - JSON!
role_id - String!
category - ConfigCategory
value_type - ConfigSystemType
description - String
is_encrypted - Boolean
requires_validation - Boolean Whether the config value should be validated against its JSON schema. Set to false to store arbitrary JSON without schema validation. Default = true
Example
{
  "key": "xyz789",
  "value": {},
  "role_id": "xyz789",
  "category": "GENERAL",
  "value_type": "STRING",
  "description": "xyz789",
  "is_encrypted": false,
  "requires_validation": true
}

SetUserConfigInput

Description

Create or update a config for the current authenticated user

Fields
Input Field Description
key - String!
value - JSON!
category - ConfigCategory
value_type - ConfigSystemType
description - String
is_encrypted - Boolean
requires_validation - Boolean Whether the config value should be validated against its JSON schema. Set to false to store arbitrary JSON without schema validation. Default = true
Example
{
  "key": "xyz789",
  "value": {},
  "category": "GENERAL",
  "value_type": "STRING",
  "description": "abc123",
  "is_encrypted": true,
  "requires_validation": true
}

SfmNamespace

Fields
Field Name Description
createSFM - InternalStaffProfileObjectType! Create SFM (Sales Force Manager)
Arguments
input - CreateSFMInput!
createShopManager - InternalStaffProfileObjectType! Create Shop Manager
Arguments
createPartnerPromoter - InternalStaffProfileObjectType! Create Partner Promoter
Arguments
updateSFM - InternalStaffProfileObjectType! Update SFM
Arguments
staffProfileId - String!
input - UpdateSFMInput!
updateShopManager - InternalStaffProfileObjectType! Update Shop Manager
Arguments
staffProfileId - String!
updatePartnerPromoter - InternalStaffProfileObjectType! Update Partner Promoter
Arguments
staffProfileId - String!
removePromoterPartners - InternalStaffProfileObjectType! Detach partner owners from a partner promoter (clears assigned_promoter_id only)
Arguments
promoterId - String!
partnerIds - [String!]!
transferPromoterPartners - InternalStaffProfileObjectType! Transfer all assigned partner owners from one promoter to another
Arguments
sourcePromoterId - String!
targetPromoterId - String!
transferSfmPartners - InternalStaffProfileObjectType! Transfer all assigned partners from one SFM to another
Arguments
sourceSfmId - String!
targetSfmId - String!
sfmStaffOffset - OffsetPaginatedInternalStaffProfiles! Get all SFMs with offset pagination
Example
{
  "createSFM": InternalStaffProfileObjectType,
  "createShopManager": InternalStaffProfileObjectType,
  "createPartnerPromoter": InternalStaffProfileObjectType,
  "updateSFM": InternalStaffProfileObjectType,
  "updateShopManager": InternalStaffProfileObjectType,
  "updatePartnerPromoter": InternalStaffProfileObjectType,
  "removePromoterPartners": InternalStaffProfileObjectType,
  "transferPromoterPartners": InternalStaffProfileObjectType,
  "transferSfmPartners": InternalStaffProfileObjectType,
  "sfmStaffOffset": OffsetPaginatedInternalStaffProfiles
}

ShareResourceTypeEnum

Description

Type of resource being shared

Values
Enum Value Description

VIEW

Example
"VIEW"

ShippingAddress

Fields
Field Name Description
street - String
city - String
state - String
postal_code - String
country - String
geo - OrderGeo
Example
{
  "street": "abc123",
  "city": "abc123",
  "state": "xyz789",
  "postal_code": "abc123",
  "country": "abc123",
  "geo": OrderGeo
}

ShippingAddressInput

Fields
Input Field Description
street - String
city - String
state - String
postal_code - String
country - String
geo - JSON
Example
{
  "street": "xyz789",
  "city": "abc123",
  "state": "xyz789",
  "postal_code": "xyz789",
  "country": "abc123",
  "geo": {}
}

SimEntryType

Fields
Field Name Description
id - Int!
imsi - String!
iccid - String!
phoneNumber - String!
Example
{
  "id": 987,
  "imsi": "abc123",
  "iccid": "abc123",
  "phoneNumber": "xyz789"
}

SimLockInfoType

Fields
Field Name Description
approvedSims - [SimEntryType!]!
unapprovedSims - [SimEntryType!]!
autoApproveNewSim - Boolean
Example
{
  "approvedSims": [SimEntryType],
  "unapprovedSims": [SimEntryType],
  "autoApproveNewSim": false
}

SmsDataFilterInput

Description

Filter by SMS payload fields

Fields
Input Field Description
to - StringFilterInput
Example
{"to": StringFilterInput}

SmsDataInput

Fields
Input Field Description
to - String!
from - String
message - String!
shortcode - String
campaignId - String
Example
{
  "to": "abc123",
  "from": "xyz789",
  "message": "xyz789",
  "shortcode": "xyz789",
  "campaignId": "abc123"
}

SmsDataObjectType

Fields
Field Name Description
to - String!
from - String
message - String!
shortcode - String
campaignId - String
Example
{
  "to": "abc123",
  "from": "abc123",
  "message": "xyz789",
  "shortcode": "xyz789",
  "campaignId": "xyz789"
}

SortOrder

Description

Sort direction for pagination

Values
Enum Value Description

ASC

DESC

Example
"ASC"

SpecPreferenceInput

Fields
Input Field Description
colour - String
sim_card_preference - String
Example
{
  "colour": "xyz789",
  "sim_card_preference": "abc123"
}

SpecPreferenceObjectType

Fields
Field Name Description
colour - String
sim_card_preference - String
Example
{
  "colour": "abc123",
  "sim_card_preference": "xyz789"
}

SplitReturnsCollectionPaymentInput

Fields
Input Field Description
returnsRequestId - ID!
paymentId - ID Payment id when already resolved from M-Pesa verification
mpesaReference - String M-Pesa confirmation code when paymentId is not provided
salesAmount - Float! Amount allocated to loan/arrears (SALES_LOAN split leg)
repairsAmount - Float! Amount allocated to repairs (REPAIRS split leg)
Example
{
  "returnsRequestId": 4,
  "paymentId": "4",
  "mpesaReference": "abc123",
  "salesAmount": 987.65,
  "repairsAmount": 987.65
}

SplitReturnsCollectionPaymentPayloadType

Fields
Field Name Description
payment_id - ID!
sales_adjustment_id - ID
repairs_adjustment_id - ID
swap_repair_clearance - JSON! Recorded metadata.swap_repair_mpesa_clearance when repairs leg exists
Example
{
  "payment_id": 4,
  "sales_adjustment_id": 4,
  "repairs_adjustment_id": 4,
  "swap_repair_clearance": {}
}

StatementTagEnum

Values
Enum Value Description

CR

DR

Example
"CR"

StaticShopMetadataInput

Fields
Input Field Description
shop_name - String
shop_phone_number - String
business_type - String
other_brands_sold - [String!]
shop_size - String
is_branded - Boolean
branding_date - DateTime
Example
{
  "shop_name": "abc123",
  "shop_phone_number": "abc123",
  "business_type": "xyz789",
  "other_brands_sold": ["xyz789"],
  "shop_size": "xyz789",
  "is_branded": false,
  "branding_date": "2007-12-03T10:15:30Z"
}

StaticShopMetadataObjectType

Fields
Field Name Description
shop_name - String
shop_phone_number - String
business_type - String
other_brands_sold - [String!]!
shop_size - String
is_branded - Boolean!
branding_date - DateTime
Example
{
  "shop_name": "abc123",
  "shop_phone_number": "abc123",
  "business_type": "abc123",
  "other_brands_sold": ["abc123"],
  "shop_size": "abc123",
  "is_branded": false,
  "branding_date": "2007-12-03T10:15:30Z"
}

StatusCalculationInputType

Fields
Input Field Description
loan_age_days - Float!
total_paid - Float!
upfront_payment - Float!
repayment_rate - Float!
repayment_type - RepaymentTypeEnum!
loan_status_override - LoanAccountStatusEnum
days_past_due - Float!
balance_due - Float!
device_returned - Boolean!
device_return_date - DateTime
opening_date - DateTime!
is_lost - Boolean!
Example
{
  "loan_age_days": 987.65,
  "total_paid": 987.65,
  "upfront_payment": 123.45,
  "repayment_rate": 987.65,
  "repayment_type": "DAILY",
  "loan_status_override": "NEW_ACTIVE",
  "days_past_due": 123.45,
  "balance_due": 123.45,
  "device_returned": true,
  "device_return_date": "2007-12-03T10:15:30Z",
  "opening_date": "2007-12-03T10:15:30Z",
  "is_lost": false
}

StatusCalculationResult

Fields
Field Name Description
status - LoanAccountStatusEnum!
Example
{"status": "NEW_ACTIVE"}

StatusHistoryEntryType

Fields
Field Name Description
from - ReturnsStatus!
to - ReturnsStatus!
action - String!
actor - String
actor_name - String Resolved display name of the actor (populated by field resolver)
actor_email - String Resolved email of the actor (populated by field resolver)
timestamp - DateTime!
Example
{
  "from": "PENDING",
  "to": "PENDING",
  "action": "abc123",
  "actor": "abc123",
  "actor_name": "xyz789",
  "actor_email": "abc123",
  "timestamp": "2007-12-03T10:15:30Z"
}

StockOriginEnum

Description

Origin of inventory stock

Values
Enum Value Description

INTERNATIONAL

LOCAL

Example
"INTERNATIONAL"

StockStatusNameEnum

Description

Detailed inventory stock status name

Values
Enum Value Description

ORDERED

PAID

DISPATCHED_BY_SUPPLIER

INCOMING

UNDER_CLEARANCE

RECEIVED

IN_TRANSIT_REVERSE

RETURNED_TO_SUPPLIER

STOLEN_OR_LOST

HARVEST_FOR_PARTS

RMA

DISCREPANCY

PENDING_QC

PROCESSING

PENDING_BOXING

BOXED

TROUBLESHOOTING

RENEWING

READY_FOR_SALE

RESERVED

ALLOCATED

IN_TRANSIT_OUTBOUND

SOLD

FAILED_DELIVERY

RETURNED

REPAIR

WRITTEN_OFF

ASSIGNED_FOR_TESTING

ASSIGNED_FOR_INTERNAL_USE

PENDING

PREPARING

LISTED

READY_FOR_PICKUP

IN_TRANSIT_INBOUND

READY_FOR_SALE_3P

RETURNED_UNDER_48HR

REVERSE

Example
"ORDERED"

StockStatusTypeEnum

Description

Top-level inventory stock status type

Values
Enum Value Description

INBOUND

PREPARING

OUTBOUND

REVERSE

REPAIR

THREE_P

Example
"INBOUND"

StockTypeEnum

Description

Ownership classification of inventory stock

Values
Enum Value Description

ONE_P

THREE_P

Example
"ONE_P"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

StringArrayFilterInput

Description

Filter operators for PostgreSQL varchar[] columns

Fields
Input Field Description
containsAny - [String!] Array column contains at least one of these values (&&)
containsAll - [String!] Array column contains all of these values (@>)
containsLike - String Array column has at least one element that partially matches this pattern (ILIKE)
Example
{
  "containsAny": ["abc123"],
  "containsAll": ["abc123"],
  "containsLike": "abc123"
}

StringFilterInput

Fields
Input Field Description
eq - String
ne - String
contains - String
startsWith - String
endsWith - String
in - [String!]
notIn - [String!]
exists - Boolean
Example
{
  "eq": "xyz789",
  "ne": "abc123",
  "contains": "xyz789",
  "startsWith": "abc123",
  "endsWith": "xyz789",
  "in": ["abc123"],
  "notIn": ["abc123"],
  "exists": true
}

SubmissionSourceEnum

Description

Source channel through which the application was submitted

Values
Enum Value Description

AGENT_DIRECT

SHOP_FOR_AGENT

SHOP_DIRECT

Example
"AGENT_DIRECT"

SubmitCategoryDocumentsInput

Fields
Input Field Description
category_id - String! Category ID
category_icon - Upload Category icon image
category_image - Upload Category banner image
Example
{
  "category_id": "xyz789",
  "category_icon": Upload,
  "category_image": Upload
}

SubmitDeliveryInput

Fields
Input Field Description
delivery_id - ID!
otp - String
tenant - String
delivery_status - DeliveryStatusEnum!
delivery_notes - String
destination_location - JSON
payment_reference - String
failed_delivery_reason - String
front_id_image - Upload
back_id_image - Upload
Example
{
  "delivery_id": "4",
  "otp": "abc123",
  "tenant": "xyz789",
  "delivery_status": "PENDING",
  "delivery_notes": "abc123",
  "destination_location": {},
  "payment_reference": "xyz789",
  "failed_delivery_reason": "abc123",
  "front_id_image": Upload,
  "back_id_image": Upload
}

SubmitIndividualKYCInput

Fields
Input Field Description
id_front - Upload!
id_back - Upload!
id_number - String!
id_type - IdType!
passport_photo - Upload!
tax_certificate - Upload
tax_pin - String
Example
{
  "id_front": Upload,
  "id_back": Upload,
  "id_number": "xyz789",
  "id_type": "NATIONAL_ID",
  "passport_photo": Upload,
  "tax_certificate": Upload,
  "tax_pin": "abc123"
}

SubmitOrganizationKYCInput

Fields
Input Field Description
incorporation_certificate - Upload
incorporation_number - String
registration_number - String
tax_certificate - Upload
tax_pin - String
company_logo - Upload
organization_subtype - String
organization_name - String
certificate_of_registration - Upload
cr12_form - Upload
business_license - Upload
primary_contact_id_front - Upload
primary_contact_id_back - Upload
primary_contact_passport_photo - Upload
Example
{
  "incorporation_certificate": Upload,
  "incorporation_number": "abc123",
  "registration_number": "xyz789",
  "tax_certificate": Upload,
  "tax_pin": "abc123",
  "company_logo": Upload,
  "organization_subtype": "xyz789",
  "organization_name": "abc123",
  "certificate_of_registration": Upload,
  "cr12_form": Upload,
  "business_license": Upload,
  "primary_contact_id_front": Upload,
  "primary_contact_id_back": Upload,
  "primary_contact_passport_photo": Upload
}

SubmitProductImagesInput

Fields
Input Field Description
product_id - String! Product ID
product_images - [Upload!]! Product images
primary_image_index - Int! Index of primary image in the images array
Example
{
  "product_id": "xyz789",
  "product_images": [Upload],
  "primary_image_index": 123
}

SubmitStaffKYCInput

Fields
Input Field Description
passport_photo - Upload!
id_front - Upload
id_back - Upload
id_number - String
id_type - IdType
Example
{
  "passport_photo": Upload,
  "id_front": Upload,
  "id_back": Upload,
  "id_number": "xyz789",
  "id_type": "NATIONAL_ID"
}

SubsequentLoanNamespace

Fields
Field Name Description
createSubsequentLoanApplication - ApplicationEntityGraphQL! Create a subsequent loan application for an existing customer. Accepts a customer UUID or official ID number.
Arguments
verifySubsequentLoanOtp - ApplicationEntityGraphQL! Verify the OTP sent to the customer after a subsequent loan application is created.
Arguments
applicationId - ID!
otp - String!
checkSubsequentLoanEligibility - Boolean! Check if a customer is eligible for a subsequent loan. Accepts a customer UUID or official ID number.
Arguments
customerId - String!
Example
{
  "createSubsequentLoanApplication": ApplicationEntityGraphQL,
  "verifySubsequentLoanOtp": ApplicationEntityGraphQL,
  "checkSubsequentLoanEligibility": true
}

SuccessResponse

Fields
Field Name Description
success - Boolean!
message - String
Example
{"success": false, "message": "xyz789"}

SwitchReturnsWorkflowInput

Description

Input for switching an active returns workflow to a different request type

Fields
Input Field Description
target_request_type - ReturnsRequestType! Target workflow request type
reason - String! Reason for switching the workflow
force_switch - Boolean Force switching from late stages (restricted to ops/cx-ops lanes)
Example
{
  "target_request_type": "SWAP",
  "reason": "abc123",
  "force_switch": true
}

SyncGroupInput

Fields
Input Field Description
keycloakGroupId - String!
realm - String
Example
{
  "keycloakGroupId": "xyz789",
  "realm": "abc123"
}

TaxPlatform

Description

Tax verification provider platforms

Values
Enum Value Description

BOT

SMILEID

Example
"BOT"

TaxVerificationTransactionCursorPaginatedResponse

Description

Cursor paginated tax verification transactions response

Fields
Field Name Description
data - [TaxVerificationTransactionDto!]! Array of items
pagination - CursorPaginationMetadata! Pagination metadata
Example
{
  "data": [TaxVerificationTransactionDto],
  "pagination": CursorPaginationMetadata
}

TaxVerificationTransactionDto

Description

Tax verification transaction record (KRA)

Fields
Field Name Description
id - ID Unique identifier
provider - TaxPlatform! Tax verification provider
full_name - String Full name from KRA
identification_type - String Type of identification
pin_number - String PIN number
expiration_date - String PIN expiration date
issuance_date - String PIN issuance date
phone - String Phone number
gender - String Gender
date_of_birth - String Date of birth
place_of_birth - String Place of birth
kra_pin - String KRA PIN
citizenship - String Citizenship
is_pin_active - Int Is PIN active (1 = active)
email - String Email address
country - String Country
record_status - VerificationRecordStatus Cache freshness state of this record
createdAt - DateTime Record creation timestamp
Example
{
  "id": 4,
  "provider": "BOT",
  "full_name": "xyz789",
  "identification_type": "abc123",
  "pin_number": "xyz789",
  "expiration_date": "abc123",
  "issuance_date": "abc123",
  "phone": "xyz789",
  "gender": "xyz789",
  "date_of_birth": "xyz789",
  "place_of_birth": "xyz789",
  "kra_pin": "xyz789",
  "citizenship": "xyz789",
  "is_pin_active": 987,
  "email": "abc123",
  "country": "xyz789",
  "record_status": "ACTIVE",
  "createdAt": "2007-12-03T10:15:30Z"
}

TaxVerificationTransactionFilterInput

Description

Filter input for querying tax verification transactions

Fields
Input Field Description
kra_pin - String Filter by KRA PIN
provider - TaxPlatform Filter by provider
identification_type - String Filter by identification type
record_status - VerificationRecordStatus Filter by cache freshness state
Example
{
  "kra_pin": "xyz789",
  "provider": "BOT",
  "identification_type": "abc123",
  "record_status": "ACTIVE"
}

TaxVerificationTransactionOffsetPaginatedResponse

Description

Offset paginated tax verification transactions response

Fields
Field Name Description
data - [TaxVerificationTransactionDto!]! Array of items
metadata - OffsetPaginationMetadata! Pagination metadata
Example
{
  "data": [TaxVerificationTransactionDto],
  "metadata": OffsetPaginationMetadata
}

TenantNameEnum

Description

Tenant name enumeration

Values
Enum Value Description

RESUBMISSION

APPLICATIONS

Example
"RESUBMISSION"

TestResponse

Fields
Field Name Description
message - String!
timestamp - DateTime!
version - String!
Example
{
  "message": "abc123",
  "timestamp": "2007-12-03T10:15:30Z",
  "version": "xyz789"
}

TrainingStatusEnum

Description

Training progress status

Values
Enum Value Description

NOT_REQUIRED

NOT_STARTED

IN_TRAINING

TRAINING_PAUSED

GRADUATED

Example
"NOT_REQUIRED"

TransactionStatusEnum

Description

Status of ledger transaction

Values
Enum Value Description

RECONCILED

PENDING

REJECTED

REVERSED

SUSPENDED

SPLIT

Example
"RECONCILED"

TransactionTypeEnum

Description

Type of ledger transaction

Values
Enum Value Description

PAYMENT

ADJUSTMENT

REVERSAL

WRITE_OFF

RESTRUCTURE

PENALTY

WAIVER

INTEREST_ACCRUAL

LOAN_ORIGINATION

LOAN_AGING

Example
"PAYMENT"

TransferStaffBetweenOutletsInput

Fields
Input Field Description
staff_profile_id - String!
retailer_organization_id - String!
from_outlet_id - String!
to_outlet_id - String!
transfer_reason - String
Example
{
  "staff_profile_id": "xyz789",
  "retailer_organization_id": "xyz789",
  "from_outlet_id": "xyz789",
  "to_outlet_id": "abc123",
  "transfer_reason": "xyz789"
}

TransferTerritoryInput

Fields
Input Field Description
fromEntityId - String!
toEntityId - String!
entityType - EntityType!
territoryId - ID!
effectiveDate - String
reason - String
Example
{
  "fromEntityId": "abc123",
  "toEntityId": "abc123",
  "entityType": "AGENT",
  "territoryId": "4",
  "effectiveDate": "xyz789",
  "reason": "xyz789"
}

UnassignTerritoryInput

Fields
Input Field Description
assignmentId - ID!
reason - String!
Example
{"assignmentId": 4, "reason": "abc123"}

UndoPaymentRevocationInput

Fields
Input Field Description
revocation_adjustment_id - ID!
reason_code - PaymentRevocationReasonCodeEnum!
reason_text - String!
idempotency_key - String!
Example
{
  "revocation_adjustment_id": 4,
  "reason_code": "OPERATOR_ERROR",
  "reason_text": "abc123",
  "idempotency_key": "abc123"
}

UpdateAgentProfileInput

Fields
Input Field Description
agent_status - AgentStatusEnum
kyc_status - KYCStatusEnum
staff_document_ref - ID
partner_document_ref - ID
is_deleted - Boolean
Example
{
  "agent_status": "ACTIVE",
  "kyc_status": "NOT_SUBMITTED",
  "staff_document_ref": 4,
  "partner_document_ref": "4",
  "is_deleted": true
}

UpdateApplicationCallDetailsInput

Fields
Input Field Description
status - String Call status
notes - String Notes or comments from the call
agent_name - String Agent name who made the call
caller_id - String Caller ID used during the call
delivery_location_type - String Type of delivery location (e.g., home, office)
priority - String Priority level of the call
call_date - DateTime Date when the call was made
follow_up_required - Boolean Whether a follow-up is required
customer_location - String Customer's physical location
employer_info - String Employer information provided during the call
employment_details - String Employment details shared by customer
delivery_location - String Delivery location provided during call
product_choice - String Product the customer chose
confirmed_price_plan - String Confirmed price plan chosen by the customer
geo_address - String Geographical address (geo-coded)
delivery_or_collection_location - String Delivery or collection location preference
other_delivery_notes - String Other notes about delivery instructions
call_outcome - String Outcome of the call
call_notes - String Notes from the call
call_ended_at - DateTime Timestamp when the call ended
call_started_at - DateTime Timestamp when the call started
call_duration_seconds - Int Duration of the call in seconds
call_type - CreditCallTypeEnum Type of credit call — NOK or NO_NOK
nok - CallDetailsNokInput Next of kin details
customer_general_location - String Customer general location
preferred_delivery_day - DateTime Preferred delivery day
preferred_delivery_slot - String Preferred delivery slot
work_location - String Work location of the customer
work_location_link - String Work location link for the customer
screening_consent - String Screening consent
accept_loan_terms - String Accept loan terms
extras - JSON Extra metadata for the call
createdAt - DateTime Creation timestamp
updatedAt - DateTime Last update timestamp
Example
{
  "status": "xyz789",
  "notes": "xyz789",
  "agent_name": "abc123",
  "caller_id": "xyz789",
  "delivery_location_type": "abc123",
  "priority": "xyz789",
  "call_date": "2007-12-03T10:15:30Z",
  "follow_up_required": true,
  "customer_location": "xyz789",
  "employer_info": "xyz789",
  "employment_details": "xyz789",
  "delivery_location": "xyz789",
  "product_choice": "abc123",
  "confirmed_price_plan": "abc123",
  "geo_address": "xyz789",
  "delivery_or_collection_location": "abc123",
  "other_delivery_notes": "xyz789",
  "call_outcome": "abc123",
  "call_notes": "abc123",
  "call_ended_at": "2007-12-03T10:15:30Z",
  "call_started_at": "2007-12-03T10:15:30Z",
  "call_duration_seconds": 987,
  "call_type": "NOK",
  "nok": CallDetailsNokInput,
  "customer_general_location": "abc123",
  "preferred_delivery_day": "2007-12-03T10:15:30Z",
  "preferred_delivery_slot": "xyz789",
  "work_location": "abc123",
  "work_location_link": "xyz789",
  "screening_consent": "xyz789",
  "accept_loan_terms": "abc123",
  "extras": {},
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

UpdateApplicationEntityInput

Fields
Input Field Description
application_id - String Application ID
customer_id - String Customer ID associated with the application
application_state - String Current state of the application
credit_state - String Current credit state
prospect_stage - ProspectStage Current prospect stage
application_channel - String Channel through which application was submitted
kyc_documents - [String!] List of KYC documents
active_kyc_documents - ApplicationActiveKycDocumentsInput Active KYC documents
customer - ApplicationCustomerInput Customer information
next_of_kin - ApplicationNextOfKinInput Next of kin information
previous_next_of_kin - ApplicationNextOfKinInput Previous next of kin information
credit - ApplicationCreditInput Credit information
risk - ApplicationRiskInput Risk assessment
delivery - ApplicationDeliveryInput Delivery information
liveness_check - ApplicationLivenessCheckInput Liveness check information
consent - ApplicationConsentInput Consent information
timeline - ApplicationTimelineInput Application timeline
staff - ApplicationStaffInput Staff assignments
references - ApplicationReferencesInput Reference IDs
legacy_references - ApplicationLegacyReferencesInput Legacy reference IDs
validation_references - ApplicationValidationReferencesInput Validation reference IDs
metadata - JSON Additional metadata
normal_high_deposit - NormalHighDepositEnum Whether this application uses a normal or high deposit
credit_call - ApplicationCreditCallInput Credit call details
Example
{
  "application_id": "abc123",
  "customer_id": "abc123",
  "application_state": "abc123",
  "credit_state": "xyz789",
  "prospect_stage": "UNKNOWN",
  "application_channel": "xyz789",
  "kyc_documents": ["abc123"],
  "active_kyc_documents": ApplicationActiveKycDocumentsInput,
  "customer": ApplicationCustomerInput,
  "next_of_kin": ApplicationNextOfKinInput,
  "previous_next_of_kin": ApplicationNextOfKinInput,
  "credit": ApplicationCreditInput,
  "risk": ApplicationRiskInput,
  "delivery": ApplicationDeliveryInput,
  "liveness_check": ApplicationLivenessCheckInput,
  "consent": ApplicationConsentInput,
  "timeline": ApplicationTimelineInput,
  "staff": ApplicationStaffInput,
  "references": ApplicationReferencesInput,
  "legacy_references": ApplicationLegacyReferencesInput,
  "validation_references": ApplicationValidationReferencesInput,
  "metadata": {},
  "normal_high_deposit": "NORMAL",
  "credit_call": ApplicationCreditCallInput
}

UpdateAuditLogInput

Fields
Input Field Description
object_type - String
object_id - ID
action_type - ActionTypeEnum
action_description - String
action_status - ActionStatusEnum
auditor_id - ID
auditor_username - String
auditor_email - String
actor_metadata - JSON
object_old_value - JSON
object_new_value - JSON
field_changes - JSON
action_requires_approval - Boolean
action_approval_levels - [String!]
action_requested_by_id - ID
action_requested_by_username - String
action_approver_id - ID
action_approver_username - String
action_approved_at - DateTime
action_approval_status - ActionApprovalStatusEnum
action_approval_notes - String
ip_address - String
user_agent - String
device_info - JSON
session_id - String
audited_at - DateTime
visibility_level - VisibilityLevelEnum
Example
{
  "object_type": "xyz789",
  "object_id": "4",
  "action_type": "NOTE",
  "action_description": "xyz789",
  "action_status": "DRAFT",
  "auditor_id": "4",
  "auditor_username": "xyz789",
  "auditor_email": "xyz789",
  "actor_metadata": {},
  "object_old_value": {},
  "object_new_value": {},
  "field_changes": {},
  "action_requires_approval": false,
  "action_approval_levels": ["abc123"],
  "action_requested_by_id": 4,
  "action_requested_by_username": "abc123",
  "action_approver_id": 4,
  "action_approver_username": "abc123",
  "action_approved_at": "2007-12-03T10:15:30Z",
  "action_approval_status": "PENDING",
  "action_approval_notes": "abc123",
  "ip_address": "xyz789",
  "user_agent": "abc123",
  "device_info": {},
  "session_id": "abc123",
  "audited_at": "2007-12-03T10:15:30Z",
  "visibility_level": "PUBLIC"
}

UpdateCallDispositionInput

Fields
Input Field Description
disposition - String Call disposition status
notes - String Notes or comments from the call
priority - CallPriority Priority level of the call
next_call_date - DateTime Next scheduled call date
Example
{
  "disposition": "abc123",
  "notes": "xyz789",
  "priority": "NONE",
  "next_call_date": "2007-12-03T10:15:30Z"
}

UpdateCategoryInput

Fields
Input Field Description
name - String Category name
slug - String URL-friendly name
description - String Category description
icon - String Category icon name
required_attributes - JSON Required attributes for this category
sku_attributes - JSON SKU attributes for this category
parent_category_id - String Parent category ID
level - Int Hierarchy level (0, 1, or 2)
path - String Full path (materialized)
sort_order - Int Display order
is_active - Boolean Is category visible?
meta_title - String SEO title
meta_description - String SEO description
Example
{
  "name": "xyz789",
  "slug": "xyz789",
  "description": "xyz789",
  "icon": "abc123",
  "required_attributes": {},
  "sku_attributes": {},
  "parent_category_id": "abc123",
  "level": 987,
  "path": "abc123",
  "sort_order": 987,
  "is_active": true,
  "meta_title": "xyz789",
  "meta_description": "abc123"
}

UpdateCohortInput

Fields
Input Field Description
cohort_name - String
cohort_type - CohortType
training_track - PartnerTrackEnum
cohort_status - CohortStatus
start_date - DateTime
end_date - DateTime
duration_weeks - Int
assigned_trainer_ids - [String!]
enrolled_agent_ids - [String!]
max_capacity - Int
training_location - String
region - String
curriculum_modules - [String!]
notes - String
created_by - String
Example
{
  "cohort_name": "xyz789",
  "cohort_type": "AGENT_ONBOARDING",
  "training_track": "SALES",
  "cohort_status": "PLANNED",
  "start_date": "2007-12-03T10:15:30Z",
  "end_date": "2007-12-03T10:15:30Z",
  "duration_weeks": 123,
  "assigned_trainer_ids": ["xyz789"],
  "enrolled_agent_ids": ["xyz789"],
  "max_capacity": 987,
  "training_location": "abc123",
  "region": "xyz789",
  "curriculum_modules": ["xyz789"],
  "notes": "abc123",
  "created_by": "xyz789"
}

UpdateCohortStatusInput

Fields
Input Field Description
cohort_id - String!
new_status - CohortStatus!
status_reason - String
status_notes - String
Example
{
  "cohort_id": "xyz789",
  "new_status": "PLANNED",
  "status_reason": "abc123",
  "status_notes": "xyz789"
}

UpdateCommissionInput

Fields
Input Field Description
channel_type - ChannelTypeEnum
commission_type - CommissionDeterminationType
attribute_type - CommissionAttributeType
commission_value_type - CommissionValueType
sku_id - String
min_price - Float
max_price - Float
product_commission - Float
loan_commission - Float
cash_commission - Float
start_date - String
end_date - String
is_active - Boolean
Example
{
  "channel_type": "ONLINE_AGENT",
  "commission_type": "FLAT",
  "attribute_type": "ALL",
  "commission_value_type": "FLAT",
  "sku_id": "xyz789",
  "min_price": 987.65,
  "max_price": 123.45,
  "product_commission": 987.65,
  "loan_commission": 123.45,
  "cash_commission": 123.45,
  "start_date": "xyz789",
  "end_date": "xyz789",
  "is_active": false
}

UpdateCommissionOverrideInput

Fields
Input Field Description
agent_profile_id - String
commission_rule_id - String
product_commission - Float
loan_commission - Float
cash_commission - Float
commission_value_type - CommissionValueType
is_active - Boolean
Example
{
  "agent_profile_id": "xyz789",
  "commission_rule_id": "xyz789",
  "product_commission": 987.65,
  "loan_commission": 123.45,
  "cash_commission": 123.45,
  "commission_value_type": "FLAT",
  "is_active": false
}

UpdateCommunicationInput

Fields
Input Field Description
userId - String
channel - NotificationChannel
type - NotificationType
message - BaseMessageInput
emailData - EmailDataInput
smsData - SmsDataInput
pushData - PushDataInput
inAppData - InAppDataInput
scheduledFor - DateTime
metadata - JSON
tags - [String!]
status - NotificationStatus
retryCount - Int
Example
{
  "userId": "xyz789",
  "channel": "PUSH",
  "type": "INFO",
  "message": BaseMessageInput,
  "emailData": EmailDataInput,
  "smsData": SmsDataInput,
  "pushData": PushDataInput,
  "inAppData": InAppDataInput,
  "scheduledFor": "2007-12-03T10:15:30Z",
  "metadata": {},
  "tags": ["abc123"],
  "status": "PENDING",
  "retryCount": 123
}

UpdateConditionInput

Fields
Input Field Description
grade - String Condition grade code
name - String Display name
sort_order - Int Display order
color_hex - String Badge color
badge_icon - String Icon identifier
criteria - JSON Condition criteria
description - String Customer-facing description
internal_notes - String Staff guidelines
verification_requirements - JSON Required tests/photos
warranty_months - Int Warranty period in months
price_multiplier - Float Price adjustment (1.00 = 100%)
financing_impact - JSON PAYGO loan term adjustments
seller_requirements - JSON Who can sell this grade
is_active - Boolean Is condition available?
available_for_sellers - Boolean Can sellers list this?
Example
{
  "grade": "abc123",
  "name": "abc123",
  "sort_order": 123,
  "color_hex": "xyz789",
  "badge_icon": "xyz789",
  "criteria": {},
  "description": "xyz789",
  "internal_notes": "abc123",
  "verification_requirements": {},
  "warranty_months": 123,
  "price_multiplier": 987.65,
  "financing_impact": {},
  "seller_requirements": {},
  "is_active": false,
  "available_for_sellers": true
}

UpdateConfigInput

Description

Update config input

Fields
Input Field Description
value - JSON
value_schema - JSON JSON Schema for validating the config value
ui_hints - JSON UI rendering hints for the config editor (e.g. component type)
options - [String!]
value_type - ConfigSystemType
description - String
category - ConfigCategory
is_encrypted - Boolean
is_protected - Boolean
is_ui_hidden - Boolean Hide this config from the config editor UI
requires_validation - Boolean Whether the config value should be validated against its JSON schema. Set to false to store arbitrary JSON without schema validation.
platform - ConfigPlatformEnum
publish - Boolean Publish immediately (for versioned configs)
Example
{
  "value": {},
  "value_schema": {},
  "ui_hints": {},
  "options": ["xyz789"],
  "value_type": "STRING",
  "description": "abc123",
  "category": "GENERAL",
  "is_encrypted": true,
  "is_protected": true,
  "is_ui_hidden": true,
  "requires_validation": false,
  "platform": "ALL",
  "publish": true
}

UpdateCreditApplicationInput

Fields
Input Field Description
applicationId - String!
changes - UpdateApplicationEntityInput! Partial credit application changes to apply
type - CreditUpdateType Type of update (validation, nok, credit_call, crb_info, resubmission, credit_status). Omit for general credit update.
justification - String Justification for the update
assignAgent - AssignAgentPayload Optionally assign an agent as part of this update
Example
{
  "applicationId": "xyz789",
  "changes": UpdateApplicationEntityInput,
  "type": "VALIDATION",
  "justification": "abc123",
  "assignAgent": AssignAgentPayload
}

UpdateDealerAgentInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
Example
{
  "whatsapp_number": "xyz789",
  "secondary_number": "abc123",
  "assigned_sfm_id": "xyz789"
}

UpdateDealerOwnerInput

Fields
Input Field Description
organization_name - String
assigned_sfm_id - String
location_details - LocationDetailsInput
whatsapp_number - String
county - String
sub_county - String
Example
{
  "organization_name": "abc123",
  "assigned_sfm_id": "xyz789",
  "location_details": LocationDetailsInput,
  "whatsapp_number": "xyz789",
  "county": "xyz789",
  "sub_county": "xyz789"
}

UpdateDeliveryCallInput

Fields
Input Field Description
order_id - ID
called_by - ID
confirmed_delivery_location - ConfirmedDeliveryLocationInput
spec_preference - SpecPreferenceInput
confirmed_delivery_date - String
confirmed_delivery_slot - DeliverySlotEnum
outcome - DeliveryCallOutcomeEnum
confirmed_delivery_type - ConfirmedDeliveryTypeEnum
confirmed_delivery_type_name - ConfirmedDeliveryTypeNameEnum
notes - String
metadata - JSON
Example
{
  "order_id": 4,
  "called_by": 4,
  "confirmed_delivery_location": ConfirmedDeliveryLocationInput,
  "spec_preference": SpecPreferenceInput,
  "confirmed_delivery_date": "xyz789",
  "confirmed_delivery_slot": "MORNING",
  "outcome": "CALL_BACK",
  "confirmed_delivery_type": "DELIVERY",
  "confirmed_delivery_type_name": "MO",
  "notes": "abc123",
  "metadata": {}
}

UpdateDeliveryInput

Fields
Input Field Description
order_id - ID
seller_id - ID
assigned_rider_id - ID
delivery_status - DeliveryStatusEnum
delivery_address - JSON
tracking_number - String
estimated_arrival - DateTime
actual_arrival - DateTime
delivery_notes - String
destination_location - JSON
proof_of_delivery - JSON
Example
{
  "order_id": "4",
  "seller_id": 4,
  "assigned_rider_id": "4",
  "delivery_status": "PENDING",
  "delivery_address": {},
  "tracking_number": "abc123",
  "estimated_arrival": "2007-12-03T10:15:30Z",
  "actual_arrival": "2007-12-03T10:15:30Z",
  "delivery_notes": "xyz789",
  "destination_location": {},
  "proof_of_delivery": {}
}

UpdateDeliveryItemInput

Fields
Input Field Description
delivery_id - ID
order_item_id - ID
quantity_shipped - Int
Example
{"delivery_id": 4, "order_item_id": 4, "quantity_shipped": 987}

UpdateFlashSaleInput

Fields
Input Field Description
title - String Flash sale title
slug - String
description - String
start_date - DateTime Sale start date
end_date - DateTime Sale end date
status - FlashSaleStatusEnum
max_quantity - Int
sold_quantity - Int
min_discount_percentage - Float
is_featured - Boolean
banner_image - String
icon_url - String
countdown_display - Boolean
priority - Int
participating_sellers - [String!]
performance_metrics - JSON
meta_title - String
meta_description - String
Example
{
  "title": "abc123",
  "slug": "xyz789",
  "description": "xyz789",
  "start_date": "2007-12-03T10:15:30Z",
  "end_date": "2007-12-03T10:15:30Z",
  "status": "SCHEDULED",
  "max_quantity": 987,
  "sold_quantity": 123,
  "min_discount_percentage": 987.65,
  "is_featured": false,
  "banner_image": "xyz789",
  "icon_url": "abc123",
  "countdown_display": false,
  "priority": 987,
  "participating_sellers": ["abc123"],
  "performance_metrics": {},
  "meta_title": "abc123",
  "meta_description": "xyz789"
}

UpdateFlashSaleItemInput

Fields
Input Field Description
flash_sale_id - String Flash sale ID
seller_catalog_id - String Seller catalog ID
product_id - String Product ID
sku_id - String SKU ID
original_price - Float Original price
flash_sale_price - Float Flash sale price
discount_percentage - Float Discount percentage
stock_allocated - Int Stock allocated for sale
stock_sold - Int Stock sold
stock_remaining - Int Stock remaining
max_per_customer - Int Maximum per customer
display_priority - Int Display priority
is_featured - Boolean Is item featured?
badge_text - String Badge text
Example
{
  "flash_sale_id": "abc123",
  "seller_catalog_id": "xyz789",
  "product_id": "abc123",
  "sku_id": "abc123",
  "original_price": 123.45,
  "flash_sale_price": 987.65,
  "discount_percentage": 123.45,
  "stock_allocated": 987,
  "stock_sold": 987,
  "stock_remaining": 987,
  "max_per_customer": 123,
  "display_priority": 123,
  "is_featured": true,
  "badge_text": "xyz789"
}

UpdateGroupInput

Fields
Input Field Description
name - String
description - String
parent_id - String
attributes - JSONObject
is_active - Boolean
Example
{
  "name": "abc123",
  "description": "abc123",
  "parent_id": "xyz789",
  "attributes": {},
  "is_active": true
}

UpdateIdentityVerificationTransactionInput

Description

Input for updating an identity verification transaction

Fields
Input Field Description
provider - IprsPlatform IPRS verification provider
full_name - String Full name from verification
gender - String Gender
date_of_birth - String Date of birth
place_of_birth - String Place of birth
kra_pin - String KRA PIN
citizenship - String Citizenship
is_alive - Int Is alive status (1 = alive)
identification_type - String Type of identification document
identification_number - String Identification number
id_serial - String ID serial number
uploaded_photo - String Uploaded photo URL
phone - String Phone number
email - String Email address
country - String Country
record_status - VerificationRecordStatus Cache freshness state of this record
Example
{
  "provider": "TRANSUNION",
  "full_name": "abc123",
  "gender": "abc123",
  "date_of_birth": "xyz789",
  "place_of_birth": "xyz789",
  "kra_pin": "abc123",
  "citizenship": "xyz789",
  "is_alive": 987,
  "identification_type": "xyz789",
  "identification_number": "xyz789",
  "id_serial": "abc123",
  "uploaded_photo": "xyz789",
  "phone": "xyz789",
  "email": "abc123",
  "country": "xyz789",
  "record_status": "ACTIVE"
}

UpdateInventoryAllocationInput

Fields
Input Field Description
order_item_id - ID
inventory_id - ID
quantity_allocated - Float
allocation_status - AllocationStatusEnum
expiry_date - DateTime
metadata - JSON
release_inventory_location_id - ID
Example
{
  "order_item_id": 4,
  "inventory_id": 4,
  "quantity_allocated": 123.45,
  "allocation_status": "RESERVED",
  "expiry_date": "2007-12-03T10:15:30Z",
  "metadata": {},
  "release_inventory_location_id": 4
}

UpdateInventoryInput

Fields
Input Field Description
product_id - String Product ID
sku_id - String SKU ID
condition_id - String Condition ID
seller_catalog_id - String Seller catalog ID
seller_id - String Seller ID
identifiers - JSON Additional identifiers
physical_state - PhysicalState Physical state of device
mdm_enrollment - MdmEnrollmentStatusEnum Canonical MDM enrollment status
enrollment_status - MdmEnrollmentStatusEnum Deprecated alias for mdm_enrollment
stock_status_type - StockStatusTypeEnum High-level stock status type
stock_status_name - StockStatusNameEnum Detailed stock status name
stock_origin - StockOriginEnum Origin of stock
stock_type - StockTypeEnum Ownership stock type
b2b - Boolean Whether the stock item is B2B inventory. Default = false
qc_report - QCReportInput Quality control report
qc_report_link - String QC report file URL
qc_status - QCStatus Quality control status. Default = PENDING
qc_status_type - QCStatusTypeEnum QC status type classification (Inbound, Repair, Reverse)
unit_cost - Float Unit cost paid by seller. Default = 0
contract_id - String Active contract ID
mdm_status - JSON MDM status information
batch_number - String Batch number
location_id - String Current location ID
inspection_report - String Inspection report
warranty - JSON Warranty information
supplier_name - String Supplier name
supplier_order_reference - String Supplier order reference
customer_id - String Customer ID
sale_id - String Sale ID
serial_number - String Serial number (IMEI/SN) - single value for updates
Example
{
  "product_id": "xyz789",
  "sku_id": "abc123",
  "condition_id": "abc123",
  "seller_catalog_id": "xyz789",
  "seller_id": "abc123",
  "identifiers": {},
  "physical_state": "IN_STOCK",
  "mdm_enrollment": "PENDING",
  "enrollment_status": "PENDING",
  "stock_status_type": "INBOUND",
  "stock_status_name": "ORDERED",
  "stock_origin": "INTERNATIONAL",
  "stock_type": "ONE_P",
  "b2b": true,
  "qc_report": QCReportInput,
  "qc_report_link": "abc123",
  "qc_status": "PENDING",
  "qc_status_type": "INBOUND",
  "unit_cost": 123.45,
  "contract_id": "abc123",
  "mdm_status": {},
  "batch_number": "abc123",
  "location_id": "xyz789",
  "inspection_report": "abc123",
  "warranty": {},
  "supplier_name": "abc123",
  "supplier_order_reference": "xyz789",
  "customer_id": "abc123",
  "sale_id": "abc123",
  "serial_number": "abc123"
}

UpdateInventoryLocationInput

Fields
Input Field Description
location_name - String Location name
location_type - LocationTypeEnum Type of location
location_code - String Location code
address - String Physical address
city - String City
region - String Region or state
coordinates - InventoryCoordinatesInput GPS coordinates
location_details - InventoryLocationDetailsInput Structured location details
user_id - String Associated agent profile ID
manager_id - String Deprecated alias for user_id
capacity - Int Maximum capacity
current_stock - Int Current stock count
is_active - Boolean Is location active?
operating_hours - JSON Operating hours
seller_id - String Associated seller ID
Example
{
  "location_name": "xyz789",
  "location_type": "TRANSIT_INBOUND",
  "location_code": "xyz789",
  "address": "abc123",
  "city": "abc123",
  "region": "xyz789",
  "coordinates": InventoryCoordinatesInput,
  "location_details": InventoryLocationDetailsInput,
  "user_id": "abc123",
  "manager_id": "xyz789",
  "capacity": 123,
  "current_stock": 123,
  "is_active": true,
  "operating_hours": {},
  "seller_id": "xyz789"
}

UpdateInventoryWithQCReportInput

Fields
Input Field Description
inventory_id - ID! Inventory ID to update
qc_report - QCReportInput! PhoneCheck QC report data
condition_id - ID Condition ID to assign
inspection_report - String Inspection report notes
qc_status - QCStatus QC status override (auto-determined if not provided)
qc_status_type - QCStatusTypeEnum! QC status type classification (Inbound, Repair, Reverse) — required when saving a QC report
Example
{
  "inventory_id": "4",
  "qc_report": QCReportInput,
  "condition_id": 4,
  "inspection_report": "abc123",
  "qc_status": "PENDING",
  "qc_status_type": "INBOUND"
}

UpdateLeadGenerationInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
referral_source - String
Example
{
  "whatsapp_number": "abc123",
  "secondary_number": "abc123",
  "assigned_sfm_id": "xyz789",
  "referral_source": "abc123"
}

UpdateLoanContractInput

Fields
Input Field Description
sale_id - String Sale ID associated with this loan contract
customer_id - String Customer ID associated with this loan contract
opening_date - DateTime Loan contract opening date
duration - Float Loan duration in days. Default = 364
upfront_payment - Float Upfront payment amount. Default = 0
deposit - Float Deposit amount. Default = 0
repayment_type - RepaymentTypeEnum Repayment frequency. Default = WEEKLY
gross_loan_amount - Float Gross loan amount
interest_rate - Float Daily interest rate
is_restructured - Boolean Whether this is a restructured loan. Default = false
original_contract_id - String Original contract ID if restructured
metadata - JSON Additional metadata
loan_status_override - LoanAccountStatusEnum Manual override for calculated loan account status
loan_product_code - String Loan product code
grace_period_status - String
grace_period_category - String
grace_period_credit_expiry - DateTime
returned_date - DateTime
grace_period_last_trigger_source - String
Example
{
  "sale_id": "abc123",
  "customer_id": "xyz789",
  "opening_date": "2007-12-03T10:15:30Z",
  "duration": 123.45,
  "upfront_payment": 123.45,
  "deposit": 987.65,
  "repayment_type": "DAILY",
  "gross_loan_amount": 123.45,
  "interest_rate": 987.65,
  "is_restructured": false,
  "original_contract_id": "abc123",
  "metadata": {},
  "loan_status_override": "NEW_ACTIVE",
  "loan_product_code": "abc123",
  "grace_period_status": "xyz789",
  "grace_period_category": "abc123",
  "grace_period_credit_expiry": "2007-12-03T10:15:30Z",
  "returned_date": "2007-12-03T10:15:30Z",
  "grace_period_last_trigger_source": "xyz789"
}

UpdateLoanDelinquencyTrackingInput

Fields
Input Field Description
contract_id - String Contract ID associated with this tracking record
status - DelinquencyStatusEnum Delinquency status. Default = CURRENT
delinquency_start_date - DateTime Date when delinquency started
default_date - DateTime Date when account defaulted
days_past_due - Float Number of days past due. Default = 0
amount_overdue - Float Amount currently overdue. Default = 0
escalation_level - EscalationLevelEnum Collection escalation level. Default = REMINDER
collection_actions - JSON Collection actions history
write_off_date - DateTime Date when account was written off
recovery_amount - Float Amount recovered
recovery_probability - Float Recovery probability (0-1)
last_contact_date - DateTime Last contact date with customer
next_action_date - DateTime Next planned action date
assigned_collector - String Assigned collector name
notes - String Collection notes
metadata - JSON Additional metadata
Example
{
  "contract_id": "abc123",
  "status": "CURRENT",
  "delinquency_start_date": "2007-12-03T10:15:30Z",
  "default_date": "2007-12-03T10:15:30Z",
  "days_past_due": 123.45,
  "amount_overdue": 987.65,
  "escalation_level": "REMINDER",
  "collection_actions": {},
  "write_off_date": "2007-12-03T10:15:30Z",
  "recovery_amount": 123.45,
  "recovery_probability": 987.65,
  "last_contact_date": "2007-12-03T10:15:30Z",
  "next_action_date": "2007-12-03T10:15:30Z",
  "assigned_collector": "xyz789",
  "notes": "xyz789",
  "metadata": {}
}

UpdateLoanInstallmentInput

Fields
Input Field Description
contract_id - String Contract ID associated with this installment
installment_number - Float Installment number in sequence
installment_type - InstallmentTypeEnum Type of installment. Default = REGULAR
due_date - DateTime Installment due date
due_repayment_amount - Float Total amount due for this installment
due_repayment_principal - Float Principal amount portion
due_repayment_interest - Float Interest amount portion
penalty_amount - Float Penalty amount portion. Default = 0
due_cumulative_principal - Float Cumulative principal to date
due_cumulative_interest - Float Cumulative interest to date
cumulative_expected_repay - Float Cumulative expected repayment (due_cumulative_principal + due_cumulative_interest)
paid_principal - Float Principal amount paid. Default = 0
paid_interest - Float Interest amount paid. Default = 0
paid_penalty - Float Penalty amount paid. Default = 0
outstanding_amount - Float Outstanding amount remaining. Default = 0
amount_paid - Float Total amount paid for this installment. Default = 0
status - InstallmentStatusEnum Installment status. Default = PENDING
paid_date - DateTime Date when installment was paid
days_overdue - Float Days overdue. Default = 0
installment_year_month - String Installment year-month (YYYY-MM)
metadata - JSON Additional metadata
Example
{
  "contract_id": "abc123",
  "installment_number": 123.45,
  "installment_type": "REGULAR",
  "due_date": "2007-12-03T10:15:30Z",
  "due_repayment_amount": 123.45,
  "due_repayment_principal": 123.45,
  "due_repayment_interest": 123.45,
  "penalty_amount": 123.45,
  "due_cumulative_principal": 123.45,
  "due_cumulative_interest": 987.65,
  "cumulative_expected_repay": 123.45,
  "paid_principal": 123.45,
  "paid_interest": 123.45,
  "paid_penalty": 123.45,
  "outstanding_amount": 123.45,
  "amount_paid": 123.45,
  "status": "PENDING",
  "paid_date": "2007-12-03T10:15:30Z",
  "days_overdue": 987.65,
  "installment_year_month": "xyz789",
  "metadata": {}
}

UpdateLoanLedgerInput

Fields
Input Field Description
contract_id - String Contract ID associated with this ledger entry
transaction_date - DateTime Transaction date
transaction_type - TransactionTypeEnum Type of transaction
transaction_status - TransactionStatusEnum Transaction status. Default = PENDING
debit_credit - DebitCreditEnum Debit or credit transaction
balance_due - Float Amount due on the loan
amount_paid - Float Amount paid in this transaction
arrears_amount - Float Arrears amount. Default = 0
advance_amount - Float Advance payment amount. Default = 0
next_due_amount - Float Next due amount
past_due - Float Past due amount as percentage. Default = 0
days_past_due - Float Days past due. Default = 0
loan_age_days - Float Loan age in days. Default = 0
repayment_due - Float Total repayment due. Default = 0
days_since_last_payment - Float Days since last payment. Default = 0
next_invoice_date - DateTime Next invoice date
last_payment_date - DateTime Last payment date
credit_expiry_date - DateTime Credit expiry date for device locking
loan_status - LoanAccountStatusEnum Loan account status. Default = NEW_ACTIVE
payment_type - LoanPaymentTypeEnum Payment type
payment_id - String Payment ID reference
description - String Transaction description
metadata - JSON Additional metadata
Example
{
  "contract_id": "abc123",
  "transaction_date": "2007-12-03T10:15:30Z",
  "transaction_type": "PAYMENT",
  "transaction_status": "RECONCILED",
  "debit_credit": "DEBIT",
  "balance_due": 987.65,
  "amount_paid": 987.65,
  "arrears_amount": 987.65,
  "advance_amount": 987.65,
  "next_due_amount": 987.65,
  "past_due": 123.45,
  "days_past_due": 123.45,
  "loan_age_days": 123.45,
  "repayment_due": 123.45,
  "days_since_last_payment": 987.65,
  "next_invoice_date": "2007-12-03T10:15:30Z",
  "last_payment_date": "2007-12-03T10:15:30Z",
  "credit_expiry_date": "2007-12-03T10:15:30Z",
  "loan_status": "NEW_ACTIVE",
  "payment_type": "ADJUSTMENT",
  "payment_id": "abc123",
  "description": "xyz789",
  "metadata": {}
}

UpdateLoanOverrideInput

Fields
Input Field Description
loan_id - String Loan ID associated with this override
field_name - String Name of the field being overridden
old_value - String Previous value of the field
new_value - String New value for the field
reason - String Reason for the override
approved_by - String User who approved the override
Example
{
  "loan_id": "xyz789",
  "field_name": "abc123",
  "old_value": "abc123",
  "new_value": "xyz789",
  "reason": "xyz789",
  "approved_by": "abc123"
}

UpdateOfflineAgentInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
assigned_shop_id - String
assigned_trainer_id - String
current_cohort_id - String
Example
{
  "whatsapp_number": "xyz789",
  "secondary_number": "abc123",
  "assigned_sfm_id": "xyz789",
  "assigned_shop_id": "abc123",
  "assigned_trainer_id": "xyz789",
  "current_cohort_id": "xyz789"
}

UpdateOnlineAgentInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
referral_source - String
super_agent_id - String
Example
{
  "whatsapp_number": "xyz789",
  "secondary_number": "xyz789",
  "assigned_sfm_id": "xyz789",
  "referral_source": "xyz789",
  "super_agent_id": "xyz789"
}

UpdateOrderInput

Fields
Input Field Description
customer_id - ID
order_status - OrderStatusEnum
payment_status - SalePaymentStatusEnum
shipping_address - ShippingAddressInput
currency - CurrencyEnum
sub_total - Float
total_discount - Float
delivery_fee - Float
service_fee - Float
tax_amount - Float
total_amount - Float
application_id - String
sale_agent_id - String
submitting_agent_id - String
manual_override - Boolean
order_date - DateTime
metadata - JSON
Example
{
  "customer_id": "4",
  "order_status": "PENDING",
  "payment_status": "UNPAID",
  "shipping_address": ShippingAddressInput,
  "currency": "KES",
  "sub_total": 123.45,
  "total_discount": 987.65,
  "delivery_fee": 123.45,
  "service_fee": 123.45,
  "tax_amount": 123.45,
  "total_amount": 987.65,
  "application_id": "abc123",
  "sale_agent_id": "xyz789",
  "submitting_agent_id": "abc123",
  "manual_override": false,
  "order_date": "2007-12-03T10:15:30Z",
  "metadata": {}
}

UpdateOrderItemInput

Fields
Input Field Description
order_id - ID
seller_id - ID
item_type - OrderItemTypeEnum
catalog_id - ID
quantity - Float
unit_price - Float
discount_amount - Float
adjustments - JSON
subtotal - Float
purchase_type - PurchaseTypeEnum
status - String
metadata - JSON
Example
{
  "order_id": 4,
  "seller_id": 4,
  "item_type": "PRODUCT",
  "catalog_id": "4",
  "quantity": 987.65,
  "unit_price": 123.45,
  "discount_amount": 123.45,
  "adjustments": {},
  "subtotal": 987.65,
  "purchase_type": "CASH",
  "status": "xyz789",
  "metadata": {}
}

UpdatePartnerOwnerInput

Fields
Input Field Description
organization_name - String
assigned_sfm_id - String
location_details - LocationDetailsInput
partner_track - PartnerTrackEnum
whatsapp_number - String
county - String
sub_county - String
town - String
landmark - String
Example
{
  "organization_name": "abc123",
  "assigned_sfm_id": "abc123",
  "location_details": LocationDetailsInput,
  "partner_track": "SALES",
  "whatsapp_number": "xyz789",
  "county": "abc123",
  "sub_county": "xyz789",
  "town": "xyz789",
  "landmark": "abc123"
}

UpdatePartnerProfileInput

Fields
Input Field Description
channel_type - ChannelTypeEnum
channel_category - ChannelCategoryEnum
partner_track - PartnerTrackEnum
entity_type - EntityTypeEnum
is_owner - Boolean
shop_manager_id - String
platform_owner - Boolean
is_deleted - Boolean
staff_user_ids - [String!]
reports_to_id - String
hierarchy_depth - Int
hierarchy_path - [String!]
downline_partner_ids - [String!]
whatsapp_number - String
secondary_number - String
location_details - LocationDetailsInput
partner_status - PartnerStatusEnum
assignment_status - AssignmentStatusEnum
kyc_status - KYCStatusEnum
training_status - TrainingStatusEnum
current_cohort_id - String
assigned_trainer_id - String
assigned_sfm_id - String
assigned_promoter_id - String
graduation_date - DateTime
cohort_history - [CohortEnrollmentInput!]
assigned_shop_id - String
shop_based - Boolean
outlets - [RetailerOutletInput!]
shop_metadata - StaticShopMetadataInput
kyc_metadata - KYCMetadataInput
activation_date - DateTime
reactivation_date - DateTime
deactivation_date - DateTime
created_by - String
agent_profile_id - String
seller_id - String
Example
{
  "channel_type": "ONLINE_AGENT",
  "channel_category": "IN_HOUSE",
  "partner_track": "SALES",
  "entity_type": "INDIVIDUAL",
  "is_owner": false,
  "shop_manager_id": "xyz789",
  "platform_owner": true,
  "is_deleted": false,
  "staff_user_ids": ["abc123"],
  "reports_to_id": "abc123",
  "hierarchy_depth": 987,
  "hierarchy_path": ["xyz789"],
  "downline_partner_ids": ["abc123"],
  "whatsapp_number": "xyz789",
  "secondary_number": "abc123",
  "location_details": LocationDetailsInput,
  "partner_status": "PROSPECT",
  "assignment_status": "UNASSIGNED",
  "kyc_status": "NOT_SUBMITTED",
  "training_status": "NOT_REQUIRED",
  "current_cohort_id": "abc123",
  "assigned_trainer_id": "xyz789",
  "assigned_sfm_id": "abc123",
  "assigned_promoter_id": "xyz789",
  "graduation_date": "2007-12-03T10:15:30Z",
  "cohort_history": [CohortEnrollmentInput],
  "assigned_shop_id": "abc123",
  "shop_based": true,
  "outlets": [RetailerOutletInput],
  "shop_metadata": StaticShopMetadataInput,
  "kyc_metadata": KYCMetadataInput,
  "activation_date": "2007-12-03T10:15:30Z",
  "reactivation_date": "2007-12-03T10:15:30Z",
  "deactivation_date": "2007-12-03T10:15:30Z",
  "created_by": "abc123",
  "agent_profile_id": "abc123",
  "seller_id": "abc123"
}

UpdatePartnerPromoterInput

Fields
Input Field Description
user - CreateSimpleUserInput
agent - UpdateAgentProfileInput
employee_id - String
reports_to_id - String
passport_photo - Upload
assigned_territories - [String!]
assigned_promoter_partners - [String!]
Example
{
  "user": CreateSimpleUserInput,
  "agent": UpdateAgentProfileInput,
  "employee_id": "abc123",
  "reports_to_id": "abc123",
  "passport_photo": Upload,
  "assigned_territories": ["abc123"],
  "assigned_promoter_partners": ["xyz789"]
}

UpdatePartnerShopAttendantInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
Example
{
  "whatsapp_number": "abc123",
  "secondary_number": "abc123",
  "assigned_sfm_id": "abc123"
}

UpdatePartnerStatusInput

Fields
Input Field Description
partner_id - String!
action - PartnerStatusAction!
reason - String
updated_by - String!
Example
{
  "partner_id": "abc123",
  "action": "ACTIVATE",
  "reason": "abc123",
  "updated_by": "xyz789"
}

UpdatePaymentAdjustmentInput

Fields
Input Field Description
adjustment_amount - Float Adjustment amount (decimal precision 2)
adjustment_currency - CurrencyEnum
customer_id - ID Target Customer ID
payment_id - ID Reference to the original payment transaction
related_adjustment_id - ID ID of related adjustment for splits
adjustment_reason - AdjustmentReasonEnum
adjustment_type - AdjustmentTypeEnum
adjustment_status - AdjustmentStatusEnum
posting_type - PostingTypeEnum
posting_tag - PostingTagEnum
dr_cr - DrCrEnum
original_contract_number - String
new_contract_number - String
adjustment_note - String
loan_id - String Business loan id (raw_loan_contract.loan_id) for audit/display. Reconciliation prioritization is driven by adjustment_metadata.contract_id, which the bulk importer resolves and sets from this value.
adjustment_metadata - JSON
Example
{
  "adjustment_amount": 123.45,
  "adjustment_currency": "KES",
  "customer_id": "4",
  "payment_id": "4",
  "related_adjustment_id": 4,
  "adjustment_reason": "DEPOSIT",
  "adjustment_type": "REFUND",
  "adjustment_status": "EFFECTED",
  "posting_type": "ADJUSTMENT_POST",
  "posting_tag": "STAFF_SALE_DISCOUNT",
  "dr_cr": "DR",
  "original_contract_number": "xyz789",
  "new_contract_number": "xyz789",
  "adjustment_note": "abc123",
  "loan_id": "abc123",
  "adjustment_metadata": {}
}

UpdatePaymentAllocationInput

Fields
Input Field Description
payment_id - String Payment ID that is being allocated
sale_id - String Sale ID for primary anchor linking
installment_id - String Installment ID receiving the allocation
contract_id - String Contract ID for reference
allocated_amount - Float Total amount allocated from payment
principal_allocated - Float Amount allocated to principal
interest_allocated - Float Amount allocated to interest
penalty_allocated - Float Amount allocated to penalty. Default = 0
allocation_order - Float Order of allocation for this payment
metadata - JSON Additional metadata
Example
{
  "payment_id": "xyz789",
  "sale_id": "abc123",
  "installment_id": "abc123",
  "contract_id": "xyz789",
  "allocated_amount": 123.45,
  "principal_allocated": 123.45,
  "interest_allocated": 987.65,
  "penalty_allocated": 123.45,
  "allocation_order": 987.65,
  "metadata": {}
}

UpdatePhoneVerificationTransactionInput

Description

Input for updating a phone verification transaction

Fields
Input Field Description
status - Boolean Verification status. Default = false
country_iso - String Country ISO code. Default = "KE"
provider - PhoneLookupPlatform Phone lookup provider
phone_number - String Phone number being verified
target_id - String Target ID (customer/prospect)
customer_name - String Customer name from verification
transaction_id - String Transaction ID from provider
failure_reason - String Reason for failure
registered - Boolean Whether phone is registered. Default = false
failed_at - DateTime Timestamp when verification failed
completed_at - DateTime Timestamp when verification completed
manual - Boolean Whether this was a manual verification. Default = false
check - PhoneCheckType Type of verification check
record_status - VerificationRecordStatus Cache freshness state of this record
Example
{
  "status": true,
  "country_iso": "abc123",
  "provider": "MPESA",
  "phone_number": "abc123",
  "target_id": "xyz789",
  "customer_name": "xyz789",
  "transaction_id": "xyz789",
  "failure_reason": "abc123",
  "registered": false,
  "failed_at": "2007-12-03T10:15:30Z",
  "completed_at": "2007-12-03T10:15:30Z",
  "manual": false,
  "check": "UNKNOWN",
  "record_status": "ACTIVE"
}

UpdatePricePlanInput

Fields
Input Field Description
tier_id - String
code - String
name - String
min_device_value - Float
max_device_value - Float
deposit_percent - Float
subsequent_loan_discount_percent - Float
deposit_percent_high - Float
loan_multiplier - Float
loan_multiplier_high - Float
mocare_percent - Float
duration_months - Int
duration_months_high - Int
payment_frequency - PaymentFrequencyEnum
effective_from - String
effective_to - String
early_payoff_discounts - [EarlyPayoffDiscountInput!]
status - PricePlanStatusEnum
is_private - Boolean
metadata - JSON
changeReason - String
Example
{
  "tier_id": "abc123",
  "code": "abc123",
  "name": "abc123",
  "min_device_value": 123.45,
  "max_device_value": 987.65,
  "deposit_percent": 987.65,
  "subsequent_loan_discount_percent": 123.45,
  "deposit_percent_high": 123.45,
  "loan_multiplier": 987.65,
  "loan_multiplier_high": 123.45,
  "mocare_percent": 123.45,
  "duration_months": 123,
  "duration_months_high": 987,
  "payment_frequency": "DAILY",
  "effective_from": "xyz789",
  "effective_to": "xyz789",
  "early_payoff_discounts": [EarlyPayoffDiscountInput],
  "status": "ACTIVE",
  "is_private": false,
  "metadata": {},
  "changeReason": "xyz789"
}

UpdateProductInput

Fields
Input Field Description
name - String Product name
slug - String URL-friendly name
brand - String Product brand
model - String Product model
category_id - String Category ID
description - String Short description
long_description - String Detailed description
base_specifications - JSON Product specifications
primary_image_url - String Primary product image URL
images - [String!] Additional product images
video_url - String Product video URL
meta_title - String SEO title
meta_description - String SEO description
keywords - [String!] SEO keywords
is_active - Boolean Is product active?
approval_status - ProductApprovalStatusEnum Approval status
submitted_by_seller_id - String Seller who submitted it
approved_by - String Who approved it
rejection_reason - String Rejection reason
Example
{
  "name": "xyz789",
  "slug": "xyz789",
  "brand": "xyz789",
  "model": "xyz789",
  "category_id": "abc123",
  "description": "xyz789",
  "long_description": "xyz789",
  "base_specifications": {},
  "primary_image_url": "xyz789",
  "images": ["xyz789"],
  "video_url": "xyz789",
  "meta_title": "xyz789",
  "meta_description": "xyz789",
  "keywords": ["xyz789"],
  "is_active": false,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "xyz789",
  "approved_by": "abc123",
  "rejection_reason": "xyz789"
}

UpdateProductOfferInput

Fields
Input Field Description
status - OfferStatusEnum Offer status
type - OfferTypeEnum Offer type
discount_value - Float Discount value
minimum_purchase_amount - Float Minimum purchase amount
maximum_discount_amount - Float Maximum discount amount
usage_limit - Int Usage limit
usage_count - Int Usage count
usage_limit_per_customer - Int Usage limit per customer
promo_code - String Promo code
category_filters - [String!] Category filters
brand_filters - [String!] Brand filters
applicable_channels - [String!] Applicable channels
active - Boolean Is offer active?
starts_at - DateTime Offer start date
ends_at - DateTime Offer end date
seller_id - String Associated seller ID
sku_id - String Associated SKU ID
Example
{
  "status": "DRAFT",
  "type": "PERCENTAGE",
  "discount_value": 987.65,
  "minimum_purchase_amount": 987.65,
  "maximum_discount_amount": 987.65,
  "usage_limit": 987,
  "usage_count": 123,
  "usage_limit_per_customer": 987,
  "promo_code": "xyz789",
  "category_filters": ["xyz789"],
  "brand_filters": ["abc123"],
  "applicable_channels": ["abc123"],
  "active": false,
  "starts_at": "2007-12-03T10:15:30Z",
  "ends_at": "2007-12-03T10:15:30Z",
  "seller_id": "abc123",
  "sku_id": "xyz789"
}

UpdateProspectStageInput

Fields
Input Field Description
applicationId - String!
stage - ProspectStage!
justification - String
Example
{
  "applicationId": "xyz789",
  "stage": "UNKNOWN",
  "justification": "abc123"
}

UpdateRawCustomerWalletsInput

Fields
Input Field Description
customer_id - String Customer ID this wallet belongs to
customer_wallet_available_balance - Float Unallocated funds available in wallet
customer_wallet_total_payments - Float All payments received
customer_wallet_total_adjustments - Float Refunds, bonuses, penalties
customer_wallet_total_days_given - Float Grace days granted to customer
customer_wallet_total_points - Float Loyalty/reward points earned
customer_wallet_total_allocated - Float Money allocated to sales
customer_wallet_lifetime_credits - Float All money in (lifetime credits)
customer_wallet_lifetime_debits - Float All money out (lifetime debits)
customer_wallet_currency - CurrencyEnum Wallet currency
Example
{
  "customer_id": "abc123",
  "customer_wallet_available_balance": 987.65,
  "customer_wallet_total_payments": 123.45,
  "customer_wallet_total_adjustments": 987.65,
  "customer_wallet_total_days_given": 987.65,
  "customer_wallet_total_points": 123.45,
  "customer_wallet_total_allocated": 987.65,
  "customer_wallet_lifetime_credits": 987.65,
  "customer_wallet_lifetime_debits": 123.45,
  "customer_wallet_currency": "KES"
}

UpdateRawCustomersInput

Fields
Input Field Description
customer_type - CustomerTypeEnum
customer_phone_number - String
official_id_number - String
country - String ISO 3166-1 alpha-2 country code e.g. KE
county - String
sub_county - String
ward - String
town - String
customer_email_address - String
customer_status - CustomerStatusEnum
customer_first_name - String
customer_surname_name - String
individual_details - IndividualDetailsInput
organization_name - String
organization_registration_number - String
organization_details - OrganizationDetailsInput
contact_person - ContactPersonInput
total_loans_taken - Int
active_loans_count - Int
completed_loans_count - Int
has_defaulted - Boolean
current_credit_score - String
metadata - JSONObject
kyc_documents - KycDocumentsInput
next_of_kin - NextOfKinInput
referral_code - String
Example
{
  "customer_type": "INDIVIDUAL",
  "customer_phone_number": "abc123",
  "official_id_number": "xyz789",
  "country": "abc123",
  "county": "xyz789",
  "sub_county": "abc123",
  "ward": "xyz789",
  "town": "abc123",
  "customer_email_address": "xyz789",
  "customer_status": "ACTIVE",
  "customer_first_name": "xyz789",
  "customer_surname_name": "abc123",
  "individual_details": IndividualDetailsInput,
  "organization_name": "abc123",
  "organization_registration_number": "abc123",
  "organization_details": OrganizationDetailsInput,
  "contact_person": ContactPersonInput,
  "total_loans_taken": 123,
  "active_loans_count": 123,
  "completed_loans_count": 123,
  "has_defaulted": false,
  "current_credit_score": "xyz789",
  "metadata": {},
  "kyc_documents": KycDocumentsInput,
  "next_of_kin": NextOfKinInput,
  "referral_code": "xyz789"
}

UpdateRawRiskInput

Fields
Input Field Description
block_type - RiskBlockTypeEnum
blocked_value - String
primary_id - String
primary_phone - String
phone_numbers - [String!]
associated_phone_numbers - [String!]
associated_ids - [String!]
reason - String
description - String
severity - RiskSeverityEnum
restricted_actions - [RiskRestrictedActionEnum!]
is_active - Boolean
effective_from - DateTime
expires_at - DateTime
Example
{
  "block_type": "CUSTOMER",
  "blocked_value": "xyz789",
  "primary_id": "abc123",
  "primary_phone": "xyz789",
  "phone_numbers": ["xyz789"],
  "associated_phone_numbers": ["abc123"],
  "associated_ids": ["abc123"],
  "reason": "xyz789",
  "description": "abc123",
  "severity": "LOW",
  "restricted_actions": ["BLOCK_NEW_CUSTOMERS"],
  "is_active": true,
  "effective_from": "2007-12-03T10:15:30Z",
  "expires_at": "2007-12-03T10:15:30Z"
}

UpdateRawWalletTransactionsInput

Fields
Input Field Description
wallet_transaction_id - String Unique wallet transaction identifier (auto-generated if not provided)
wallet_id - String Wallet ID this transaction belongs to
customer_id - String Customer ID this transaction belongs to
sale_id - String Sale ID for sale-specific transactions (NULL for unallocated)
wallet_transaction_ref_id - String Reference transaction ID for reversals/transfers
wallet_transaction_type - WalletTransactionTypeEnum Type of wallet transaction
wallet_transaction_sub_type - WalletTransactionSubTypeEnum Sub-type of wallet transaction
wallet_transaction_amount - Float Transaction amount
wallet_transaction_balance_before - Float Wallet balance before this transaction
wallet_transaction_balance_after - Float Wallet balance after this transaction
wallet_transaction_days_value - Float Days value for days_given transactions
wallet_transaction_points_value - Float Points value for points transactions
wallet_transaction_status - WalletTransactionStatusEnum Transaction status
reference - String External reference (M-Pesa code, bank ref, etc)
wallet_transaction_description - String Human-readable transaction description
wallet_transaction_metadata - JSON Additional flexible transaction data
wallet_transaction_completed_at - DateTime Transaction completion timestamp
Example
{
  "wallet_transaction_id": "xyz789",
  "wallet_id": "abc123",
  "customer_id": "xyz789",
  "sale_id": "xyz789",
  "wallet_transaction_ref_id": "abc123",
  "wallet_transaction_type": "PAYMENT",
  "wallet_transaction_sub_type": "MPESA",
  "wallet_transaction_amount": 987.65,
  "wallet_transaction_balance_before": 987.65,
  "wallet_transaction_balance_after": 987.65,
  "wallet_transaction_days_value": 987.65,
  "wallet_transaction_points_value": 123.45,
  "wallet_transaction_status": "PENDING",
  "reference": "xyz789",
  "wallet_transaction_description": "abc123",
  "wallet_transaction_metadata": {},
  "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
}

UpdateRefundInput

Description

Update a refund record

Fields
Input Field Description
status - RefundStatus New status
refund_method - RefundMethod Refund method
transaction_reference - String Transaction reference
notes - String Notes
rejection_reason - String Rejection reason
source_payment_id - String Source payment ID used for payout adjustment linkage
adjustment_id - String Linked payment adjustment ID
refund_workflow_type - RefundWorkflowType Workflow that originated the refund
Example
{
  "status": "PENDING",
  "refund_method": "MPESA",
  "transaction_reference": "xyz789",
  "notes": "xyz789",
  "rejection_reason": "xyz789",
  "source_payment_id": "abc123",
  "adjustment_id": "xyz789",
  "refund_workflow_type": "RETURN"
}

UpdateRegionInput

Fields
Input Field Description
name - String
code - String
is_active - Boolean
is_in_zone - Boolean
metadata - JSON
Example
{
  "name": "xyz789",
  "code": "xyz789",
  "is_active": false,
  "is_in_zone": true,
  "metadata": {}
}

UpdateRepairInput

Fields
Input Field Description
repair_display_id - String Custom repair display ID (auto-generated if not provided)
requires_technician - Boolean Requires technician?
inventory_id - String Inventory item ID
customer_id - String Customer ID
original_sale_id - String Original sale ID
provider_seller_id - String Repair provider seller ID
location_status - RepairLocationStatusEnum Location status
status - RepairStatusEnum Repair status
priority - RepairPriorityEnum Repair priority level
is_left_at_shop - Boolean Is device left at shop?
intake_details - JSON Intake details
outtake_details - JSON Outtake details
security - JSON Security details
issue_tag - String Issue tag
customer_complaint - String Customer complaint description
hq_diagnostic_notes - String HQ diagnostic notes
billing_type - RepairBillingTypeEnum Billing type
quoted_price - Float Quoted price
spares_cost - Float Spares cost
Example
{
  "repair_display_id": "xyz789",
  "requires_technician": true,
  "inventory_id": "abc123",
  "customer_id": "abc123",
  "original_sale_id": "xyz789",
  "provider_seller_id": "xyz789",
  "location_status": "FRONT_DESK",
  "status": "PENDING",
  "priority": "LOW",
  "is_left_at_shop": false,
  "intake_details": {},
  "outtake_details": {},
  "security": {},
  "issue_tag": "abc123",
  "customer_complaint": "xyz789",
  "hq_diagnostic_notes": "xyz789",
  "billing_type": "WARRANTY",
  "quoted_price": 987.65,
  "spares_cost": 987.65
}

UpdateRetailOutletStaffInput

Fields
Input Field Description
user - CreateSimpleUserInput
agent - UpdateAgentProfileInput
employee_id - String
reports_to_id - String
passport_photo - Upload
assigned_outlet_id - String
Example
{
  "user": CreateSimpleUserInput,
  "agent": UpdateAgentProfileInput,
  "employee_id": "xyz789",
  "reports_to_id": "abc123",
  "passport_photo": Upload,
  "assigned_outlet_id": "xyz789"
}

UpdateRetailerOrganizationInput

Fields
Input Field Description
organization_name - String
assigned_sfm_id - String
location_details - LocationDetailsInput
incorporation_number - String
contact_person - String
contact_email - String
contact_phone - String
headquarters_location - LocationDetailsInput
Example
{
  "organization_name": "xyz789",
  "assigned_sfm_id": "abc123",
  "location_details": LocationDetailsInput,
  "incorporation_number": "abc123",
  "contact_person": "xyz789",
  "contact_email": "xyz789",
  "contact_phone": "xyz789",
  "headquarters_location": LocationDetailsInput
}

UpdateRetailerOutletInput

Fields
Input Field Description
outlet_name - String
location - LocationDetailsInput
outlet_staff_user_ids - [String!]
Example
{
  "outlet_name": "xyz789",
  "location": LocationDetailsInput,
  "outlet_staff_user_ids": ["abc123"]
}

UpdateReturnsInput

Description

Update general fields on a returns request

Fields
Input Field Description
customer_notes - String Customer notes
Example
{"customer_notes": "xyz789"}

UpdateRoleInput

Fields
Input Field Description
level - Int
permissions - [String!]
description - String
canManage - [String!]
Example
{
  "level": 123,
  "permissions": ["abc123"],
  "description": "xyz789",
  "canManage": ["abc123"]
}

UpdateSFMInput

Fields
Input Field Description
user - CreateSimpleUserInput
agent - UpdateAgentProfileInput
employee_id - String
reports_to_id - String
passport_photo - Upload
assigned_territories - [String!]
assigned_sfm_partners - [String!]
assigned_region - String
Example
{
  "user": CreateSimpleUserInput,
  "agent": UpdateAgentProfileInput,
  "employee_id": "abc123",
  "reports_to_id": "xyz789",
  "passport_photo": Upload,
  "assigned_territories": ["abc123"],
  "assigned_sfm_partners": ["xyz789"],
  "assigned_region": "abc123"
}

UpdateSalesInput

Fields
Input Field Description
sale_date - DateTime
order_id - ID
customer_id - ID
inventory_id - ID
sale_agent_id - ID
submitting_agent_id - ID
sfm_id - ID
price_plan_id - ID
metadata - JSON
payment_type - SalesPaymentTypeEnum
payment_status - SalePaymentStatusEnum
normal_high_deposit - NormalHighDepositEnum
final_sale_price - Float
invoice_number - String
status - SaleLifecycleStatusEnum
return_date - DateTime
Example
{
  "sale_date": "2007-12-03T10:15:30Z",
  "order_id": 4,
  "customer_id": 4,
  "inventory_id": 4,
  "sale_agent_id": "4",
  "submitting_agent_id": "4",
  "sfm_id": 4,
  "price_plan_id": "4",
  "metadata": {},
  "payment_type": "REPAIR",
  "payment_status": "UNPAID",
  "normal_high_deposit": "NORMAL",
  "final_sale_price": 123.45,
  "invoice_number": "xyz789",
  "status": "ACTIVE",
  "return_date": "2007-12-03T10:15:30Z"
}

UpdateSellerCatalogInput

Fields
Input Field Description
seller_id - String Seller ID
sku_id - String SKU ID
cost_price - Float Seller cost price
retail_price - Float Retail price
currency - String Currency code
stock_on_hand - Int Stock quantity on hand
reserved_stock - Int Reserved stock quantity
is_active - Boolean Is listing active?
Example
{
  "seller_id": "abc123",
  "sku_id": "xyz789",
  "cost_price": 123.45,
  "retail_price": 123.45,
  "currency": "abc123",
  "stock_on_hand": 987,
  "reserved_stock": 123,
  "is_active": false
}

UpdateSellerInput

Fields
Input Field Description
partner_profile_id - String Partner profile ID
commission_type_id - String Commission type
tier_id - String Seller tier
seller_type - SellerTypeEnum Type of seller
payment_details - JSON Payment details
capabilities - JSON Seller capabilities
performance_metrics - JSON Performance metrics
overall_rating - Float Overall rating (0-5)
total_reviews - Int Total number of reviews
total_sales - Int Total sales count
total_orders_365_days - Int Orders in last 365 days
badges - [String!] Achievement badges
suspension_reason - String Reason for suspension
approved_by - String Who approved the seller
platform_owner - Boolean Platform oner
Example
{
  "partner_profile_id": "abc123",
  "commission_type_id": "xyz789",
  "tier_id": "xyz789",
  "seller_type": "INTERNAL",
  "payment_details": {},
  "capabilities": {},
  "performance_metrics": {},
  "overall_rating": 123.45,
  "total_reviews": 123,
  "total_sales": 987,
  "total_orders_365_days": 987,
  "badges": ["abc123"],
  "suspension_reason": "abc123",
  "approved_by": "abc123",
  "platform_owner": true
}

UpdateSellerTierInput

Fields
Input Field Description
name - String
description - String
priority - Int
is_active - Boolean
Example
{
  "name": "xyz789",
  "description": "abc123",
  "priority": 987,
  "is_active": false
}

UpdateSharedResourceInput

Fields
Input Field Description
name - String
key - String
description - String
client_id - String
is_public - Boolean
shared_with_user_ids - [String!]
shared_with_roles - [String!]
view_config - ViewConfigInput
Example
{
  "name": "abc123",
  "key": "xyz789",
  "description": "abc123",
  "client_id": "xyz789",
  "is_public": true,
  "shared_with_user_ids": ["abc123"],
  "shared_with_roles": ["xyz789"],
  "view_config": ViewConfigInput
}

UpdateShopAttendantInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
Example
{
  "whatsapp_number": "abc123",
  "secondary_number": "xyz789",
  "assigned_sfm_id": "xyz789"
}

UpdateShopManagerInput

Fields
Input Field Description
user - CreateSimpleUserInput
agent - UpdateAgentProfileInput
employee_id - String
reports_to_id - String
passport_photo - Upload
assigned_shop_id - String
Example
{
  "user": CreateSimpleUserInput,
  "agent": UpdateAgentProfileInput,
  "employee_id": "xyz789",
  "reports_to_id": "xyz789",
  "passport_photo": Upload,
  "assigned_shop_id": "xyz789"
}

UpdateShopOwnerInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
shop_name - String
country - String
county - String
sub_county - String
town - String
landmark - String
Example
{
  "whatsapp_number": "abc123",
  "secondary_number": "abc123",
  "assigned_sfm_id": "xyz789",
  "shop_name": "abc123",
  "country": "xyz789",
  "county": "abc123",
  "sub_county": "abc123",
  "town": "abc123",
  "landmark": "abc123"
}

UpdateSkuAgentWhitelistInput

Fields
Input Field Description
is_active - Boolean
Example
{"is_active": false}

UpdateSkuInput

Fields
Input Field Description
product_id - String Product ID
condition_id - String Condition ID
parent_sku_id - String Parent SKU ID
level - Int Hierarchy level. Defaults to 1 for roots.
level_attribute_key - String Hierarchy attribute key for this level
level_attribute_value - String Hierarchy attribute value for this level
sku_code - String Unique SKU code
name - String SKU name
attributes - JSON SKU attributes
variant_specifications - JSON Variant specifications
msrp_price - Float Original retail price
min_seller_price - Float Minimum seller price
max_seller_price - Float Maximum seller price
suggested_retail_price - Float Suggested retail price
images - [String!] SKU images
weight_grams - Int Weight in grams
dimensions_mm - String Dimensions in mm
is_active - Boolean Is SKU active?
approval_status - ProductApprovalStatusEnum Approval status
submitted_by_seller_id - String Seller who submitted it
approved_by - String Who approved it
rejection_reason - String Rejection reason
Example
{
  "product_id": "abc123",
  "condition_id": "xyz789",
  "parent_sku_id": "xyz789",
  "level": 987,
  "level_attribute_key": "abc123",
  "level_attribute_value": "xyz789",
  "sku_code": "abc123",
  "name": "abc123",
  "attributes": {},
  "variant_specifications": {},
  "msrp_price": 987.65,
  "min_seller_price": 987.65,
  "max_seller_price": 123.45,
  "suggested_retail_price": 987.65,
  "images": ["xyz789"],
  "weight_grams": 123,
  "dimensions_mm": "abc123",
  "is_active": true,
  "approval_status": "APPROVED",
  "submitted_by_seller_id": "xyz789",
  "approved_by": "abc123",
  "rejection_reason": "xyz789"
}

UpdateStaffAvailabilityInput

Fields
Input Field Description
staff_Id - String!
is_offline - Boolean
availability_notes - String
updated_by - String!
Example
{
  "staff_Id": "abc123",
  "is_offline": false,
  "availability_notes": "xyz789",
  "updated_by": "abc123"
}

UpdateSuperAgentInput

Fields
Input Field Description
whatsapp_number - String
secondary_number - String
assigned_sfm_id - String
referral_code - String
Example
{
  "whatsapp_number": "xyz789",
  "secondary_number": "xyz789",
  "assigned_sfm_id": "abc123",
  "referral_code": "xyz789"
}

UpdateTelesalesAgentInput

Fields
Input Field Description
user - CreateSimpleUserInput
agent - UpdateAgentProfileInput
employee_id - String
reports_to_id - String
passport_photo - Upload
Example
{
  "user": CreateSimpleUserInput,
  "agent": UpdateAgentProfileInput,
  "employee_id": "abc123",
  "reports_to_id": "xyz789",
  "passport_photo": Upload
}

UpdateTerritoryInput

Fields
Input Field Description
name - String
description - String
ward_ids - [ID!]
zone_ids - [ID!]
region_id - ID
updated_by - String
is_active - Boolean
metadata - JSON
Example
{
  "name": "xyz789",
  "description": "abc123",
  "ward_ids": ["4"],
  "zone_ids": ["4"],
  "region_id": 4,
  "updated_by": "xyz789",
  "is_active": true,
  "metadata": {}
}

UpdateTrainerInput

Fields
Input Field Description
user - CreateSimpleUserInput
agent - UpdateAgentProfileInput
employee_id - String
reports_to_id - String
passport_photo - Upload
specializations - [String!]
Example
{
  "user": CreateSimpleUserInput,
  "agent": UpdateAgentProfileInput,
  "employee_id": "abc123",
  "reports_to_id": "xyz789",
  "passport_photo": Upload,
  "specializations": ["xyz789"]
}

UpdateUserInput

Fields
Input Field Description
username - String
email - String
first_name - String
surname - String
last_name - String
phone_number - String
enabled - Boolean
user_type - UserTypeEnum
is_internal - Boolean
last_login - DateTime
synced_at - DateTime
availability_status - UserAvailabilityStatusEnum
keycloak_id - String
Example
{
  "username": "abc123",
  "email": "abc123",
  "first_name": "xyz789",
  "surname": "abc123",
  "last_name": "xyz789",
  "phone_number": "abc123",
  "enabled": false,
  "user_type": "SYSTEM_ADMIN",
  "is_internal": true,
  "last_login": "2007-12-03T10:15:30Z",
  "synced_at": "2007-12-03T10:15:30Z",
  "availability_status": "AVAILABLE",
  "keycloak_id": "xyz789"
}

UpdateVerificationRecordStatusInput

Description

Input for updating a verification record status

Fields
Input Field Description
status - VerificationRecordStatus! The new cache freshness status for this record
justification - String! Reason for changing the record status
Example
{
  "status": "ACTIVE",
  "justification": "xyz789"
}

UpdateZoneInput

Fields
Input Field Description
name - String
ward_id - ID
district_id - ID
lat - Float
lng - Float
radius_km - Float
polygon - JSON
is_active - Boolean
updated_by - String
metadata - JSON
Example
{
  "name": "xyz789",
  "ward_id": "4",
  "district_id": "4",
  "lat": 987.65,
  "lng": 987.65,
  "radius_km": 987.65,
  "polygon": {},
  "is_active": false,
  "updated_by": "abc123",
  "metadata": {}
}

UpgradeToSuperAgentInput

Fields
Input Field Description
partnerProfileId - String!
reason - String
assigned_sfm_id - String
Example
{
  "partnerProfileId": "abc123",
  "reason": "xyz789",
  "assigned_sfm_id": "abc123"
}

Upload

Description

The Upload scalar type represents a file upload.

Example
Upload

UploadKycDocumentsInput

Fields
Input Field Description
selfie_file - Upload
id_front_file - Upload
id_back_file - Upload
certificate_of_incorporation_file - Upload
tax_certificate_file - Upload
business_permit_file - Upload
associated_phone_numbers - [String!]
Example
{
  "selfie_file": Upload,
  "id_front_file": Upload,
  "id_back_file": Upload,
  "certificate_of_incorporation_file": Upload,
  "tax_certificate_file": Upload,
  "business_permit_file": Upload,
  "associated_phone_numbers": ["abc123"]
}

UploadMediaAssetInput

Fields
Input Field Description
domain - String!
target - String!
target_id - String!
documentType - String!
file - Upload!
password - String
tenant - String!
Example
{
  "domain": "xyz789",
  "target": "abc123",
  "target_id": "abc123",
  "documentType": "abc123",
  "file": Upload,
  "password": "xyz789",
  "tenant": "xyz789"
}

UploadQCReportInput

Fields
Input Field Description
inventoryId - String! Inventory ID
file - Upload! QC report CSV file
inspection_report - String Optional inspection report
Example
{
  "inventoryId": "xyz789",
  "file": Upload,
  "inspection_report": "abc123"
}

ValidationAction

Description

Action required based on validation result

Values
Enum Value Description

CASH_JOURNEY

OTP_REQUIRED

RESUBMISSION

RESUBMISSION_OTP

NO_ACTION_REQUIRED

CHANGE_NOK

BUY_ON_CASH

MPESA_STATEMENT_PERIOD_LESS_THAN_12_MONTHS

MPESA_STATEMENT_FRAUDULENT

MPESA_STATEMENT_GAP_ANALYSIS_FAILED

MPESA_STATEMENT_INSUFFICIENT_INCOME

Example
"CASH_JOURNEY"

ValidationCheckType

Description

Type of validation check (CUSTOMER or NOK)

Values
Enum Value Description

CUSTOMER

NOK

Example
"CUSTOMER"

ValidationDataGraphQL

Fields
Field Name Description
provider - String Validation service provider
error_message - String Error message if validation failed
verified_message - String Success message if validation passed
result_id - ID ID of the validation result
tenant_id - String Tenant ID
tenant_name - TenantNameEnum Tenant name
tag - String Tag for categorization
bucket - String Storage bucket information
exception_granted - Boolean Whether exception was granted for external duplicates
exception_details - String Details about granted exception
duplicate_details - [DuplicateDetailGraphQL!] Details about found duplicates
otp_details - OtpDetailGraphQL OTP verification details
Example
{
  "provider": "abc123",
  "error_message": "abc123",
  "verified_message": "abc123",
  "result_id": 4,
  "tenant_id": "xyz789",
  "tenant_name": "RESUBMISSION",
  "tag": "xyz789",
  "bucket": "xyz789",
  "exception_granted": false,
  "exception_details": "abc123",
  "duplicate_details": [DuplicateDetailGraphQL],
  "otp_details": OtpDetailGraphQL
}

ValidationDetailStatus

Description

Validation status of documents

Values
Enum Value Description

VALID

INVALID

NOT_SUBMITTED

Example
"VALID"

ValidationRecordFilterInput

Description

Filter input for validation record queries

Fields
Input Field Description
target_id - String Filter by target entity ID
target - ValidationTarget Filter by validation target
type - ValidationType Filter by validation type
status - ValidationRecordStatus Filter by validation status
action - ValidationAction Filter by validation action
result - Boolean Filter by validation result
Example
{
  "target_id": "xyz789",
  "target": "LEAD",
  "type": "CUSTOMER_IPRS",
  "status": "RUNNING",
  "action": "CASH_JOURNEY",
  "result": false
}

ValidationRecordGraphQLEntity

Fields
Field Name Description
_id - ID! Unique validation record identifier
target - ValidationTarget! Target entity being validated
target_id - ID! ID of the target entity
type - ValidationType! Type of validation being performed
status - ValidationRecordStatus! Current status of validation
action - ValidationAction Action required based on validation result
result - Boolean! Validation result - true if passed, false if failed
attempts_count - Float! Number of validation attempts made
max_attempts - Float! Maximum number of attempts allowed
data - ValidationDataGraphQL! Detailed validation data and results
createdAt - DateTime! Record creation timestamp
updatedAt - DateTime! Record last update timestamp
application - ApplicationEntityGraphQL The application associated with this validation record
Example
{
  "_id": "4",
  "target": "LEAD",
  "target_id": 4,
  "type": "CUSTOMER_IPRS",
  "status": "RUNNING",
  "action": "CASH_JOURNEY",
  "result": false,
  "attempts_count": 987.65,
  "max_attempts": 987.65,
  "data": ValidationDataGraphQL,
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "application": ApplicationEntityGraphQL
}

ValidationRecordStatus

Description

Current status of the validation record

Values
Enum Value Description

RUNNING

PROCESSING

SKIPPED

CANCELLED

INITIATED

COMPLETED

UPLOAD_SUCCESSFULLY

ERROR

OTP_SENT

BYPASSED

WAITING_FOR_INPUT

Example
"RUNNING"

ValidationTarget

Description

Target type for validation

Values
Enum Value Description

LEAD

PROSPECT

KYC_DOCUMENT

RESUBMISSION

APPLICATIONS

Example
"LEAD"

ValidationTargetFilterInput

Fields
Input Field Description
eq - ValidationTarget
ne - ValidationTarget
in - [ValidationTarget!]
notIn - [ValidationTarget!]
Example
{"eq": "LEAD", "ne": "LEAD", "in": ["LEAD"], "notIn": ["LEAD"]}

ValidationType

Description

Type of validation being performed

Values
Enum Value Description

CUSTOMER_IPRS

NOK_IPRS

DUPLICATE

RISK

PROSPECT_DUPLICATE

CUSTOMER_MPESA

NOK_MPESA

LIVENESS

KRA

MPESA_STATEMENT

CRB

PRE_SCREENING

Example
"CUSTOMER_IPRS"

ValidationUpdatePayload

Description

Validation update payload for subscriptions

Fields
Field Name Description
targetId - ID! Application or resubmission ID
type - ValidationType! Type of validation
status - ValidationRecordStatus! Current status of validation
result - Boolean! Validation result - true if passed
data - JSON Additional validation data
timestamp - DateTime! Timestamp of the update
Example
{
  "targetId": "4",
  "type": "CUSTOMER_IPRS",
  "status": "RUNNING",
  "result": false,
  "data": {},
  "timestamp": "2007-12-03T10:15:30Z"
}

VerificationRecordStatus

Description

Cache freshness state of a verification record

Values
Enum Value Description

ACTIVE

STALE

Example
"ACTIVE"

VerifyDuplicateOtpInput

Fields
Input Field Description
applicationId - ID!
otp - String!
Example
{"applicationId": 4, "otp": "abc123"}

VerifyOtpInput

Fields
Input Field Description
phoneNumber - String!
otp - String!
clientId - String!
Example
{
  "phoneNumber": "xyz789",
  "otp": "xyz789",
  "clientId": "abc123"
}

VerifyReturnsMpesaReferencePayloadType

Fields
Field Name Description
verified - Boolean!
payment_id - ID!
payment_amount - Float!
payment_reconciliation_status - String!
payment_provider_reference - String!
Example
{
  "verified": false,
  "payment_id": "4",
  "payment_amount": 123.45,
  "payment_reconciliation_status": "xyz789",
  "payment_provider_reference": "abc123"
}

ViewConfigFilterInput

Fields
Input Field Description
target_entity - StringFilterInput
Example
{"target_entity": StringFilterInput}

ViewConfigInput

Fields
Input Field Description
target_entity - ViewTargetEntityEnum!
columns - JSON
groups - JSON
sort - JSON
filters - JSON
metadata - JSON
Example
{
  "target_entity": "APPLICATIONS",
  "columns": {},
  "groups": {},
  "sort": {},
  "filters": {},
  "metadata": {}
}

ViewConfigObjectType

Fields
Field Name Description
target_entity - ViewTargetEntityEnum!
columns - JSON
groups - JSON
sort - JSON
filters - JSON
metadata - JSON
Example
{
  "target_entity": "APPLICATIONS",
  "columns": {},
  "groups": {},
  "sort": {},
  "filters": {},
  "metadata": {}
}

ViewTargetEntityEnum

Description

Entity type a view applies to

Values
Enum Value Description

APPLICATIONS

CUSTOMERS

LOANS

PAYMENTS

INVENTORY

PARTNERS

Example
"APPLICATIONS"

VisibilityLevelEnum

Values
Enum Value Description

PUBLIC

INTERNAL

RESTRICTED

PRIVATE

CONFIDENTIAL

Example
"PUBLIC"

WalletTransactionStatusEnum

Description

Status of wallet transaction

Values
Enum Value Description

PENDING

COMPLETED

FAILED

REVERSED

Example
"PENDING"

WalletTransactionSubTypeEnum

Description

Sub-type of wallet transaction

Values
Enum Value Description

MPESA

BANK

CASH

REFUND

REVERSAL

PENALTY

BONUS

DAYS_GIVEN

POINTS

SALE_RECONCILIATION

LOAN_REPAYMENT

REFERRAL_REWARD

LOAN_MIGRATION_OVERPAYMENT

Example
"MPESA"

WalletTransactionTypeEnum

Description

Type of wallet transaction

Values
Enum Value Description

PAYMENT

ALLOCATION

ADJUSTMENT

DEBIT

TRANSFER

AIRTIME_REWARD

Example
"PAYMENT"

WalletTransactionsFilterInput

Fields
Input Field Description
wallet_transaction_id - String Unique wallet transaction identifier
wallet_id - String Wallet ID this transaction belongs to
customer_id - String Customer ID this transaction belongs to
sale_id - String Sale ID for sale-specific transactions
wallet_transaction_ref_id - String Reference transaction ID for reversals/transfers
wallet_transaction_type - WalletTransactionTypeEnum Type of wallet transaction
wallet_transaction_sub_type - WalletTransactionSubTypeEnum Sub-type of wallet transaction
wallet_transaction_amount - Float Transaction amount
wallet_transaction_balance_before - Float Wallet balance before this transaction
wallet_transaction_balance_after - Float Wallet balance after this transaction
wallet_transaction_days_value - Float Days value for days_given transactions
wallet_transaction_points_value - Float Points value for points transactions
wallet_transaction_status - WalletTransactionStatusEnum Transaction status
reference - String External reference (M-Pesa code, bank ref, etc)
wallet_transaction_description - String Human-readable transaction description
wallet_transaction_metadata - JSON Additional flexible transaction data
wallet_transaction_completed_at - DateTime Transaction completion timestamp
Example
{
  "wallet_transaction_id": "abc123",
  "wallet_id": "abc123",
  "customer_id": "xyz789",
  "sale_id": "xyz789",
  "wallet_transaction_ref_id": "xyz789",
  "wallet_transaction_type": "PAYMENT",
  "wallet_transaction_sub_type": "MPESA",
  "wallet_transaction_amount": 123.45,
  "wallet_transaction_balance_before": 987.65,
  "wallet_transaction_balance_after": 123.45,
  "wallet_transaction_days_value": 123.45,
  "wallet_transaction_points_value": 987.65,
  "wallet_transaction_status": "PENDING",
  "reference": "abc123",
  "wallet_transaction_description": "abc123",
  "wallet_transaction_metadata": {},
  "wallet_transaction_completed_at": "2007-12-03T10:15:30Z"
}

WorkScheduleInput

Fields
Input Field Description
working_days - [String!]
shift_start - String
shift_end - String
is_flexible - Boolean
Example
{
  "working_days": ["abc123"],
  "shift_start": "abc123",
  "shift_end": "abc123",
  "is_flexible": true
}

WorkScheduleType

Fields
Field Name Description
working_days - [String!]!
shift_start - String
shift_end - String
is_flexible - Boolean!
Example
{
  "working_days": ["abc123"],
  "shift_start": "xyz789",
  "shift_end": "xyz789",
  "is_flexible": true
}

WorkflowSwitchType

Fields
Field Name Description
from_type - ReturnsRequestType
to_type - ReturnsRequestType
switched_at - String
switched_by - String
reason - String
force_switch - Boolean
source_status - ReturnsStatus
child_request_id - ID
Example
{
  "from_type": "SWAP",
  "to_type": "SWAP",
  "switched_at": "abc123",
  "switched_by": "abc123",
  "reason": "abc123",
  "force_switch": false,
  "source_status": "PENDING",
  "child_request_id": "4"
}

paymentAndAdjustmentUnion

Example
PaymentsEntityType