Moloni ON Logo WhiteGuidesAPI ReferenceExplorer
Guides

Salespersons

Salespersons (sales representatives) are internal agents that can be assigned to customers and documents. They earn commissions on the documents they are associated with.

Required fields

FieldTypeNotes
numberString!Unique reference code within the company
nameString!Salesperson name
countryIdInt!The salesperson's country
languageIdInt!The salesperson's preferred language

Creating a salesperson

mutation {
  salespersonCreate(
    companyId: 1
    data: {
      number: "SP001"
      name: "João Silva"
      countryId: 1
      languageId: 1
      email: "joao.silva@company.com"
      phone: "+351 910 000 000"
      baseCommission: 5.0
    }
  ) {
    data {
      salespersonId
      number
      name
      baseCommission
    }
    errors { field msg }
  }
}

Key fields

FieldDescription
baseCommissionDefault commission percentage earned on documents
documentCopiesDefault number of document copies to print

Getting a salesperson

query {
  salesperson(companyId: 1, salespersonId: 5) {
    data {
      salespersonId
      number
      name
      email
      baseCommission
      country { name }
      language { name }
    }
    errors { field msg }
  }
}

Listing salespersons

query {
  salespersons(
    companyId: 1
    options: {
      pagination: { page: 1, qty: 20 }
      order: { field: name, sort: ASC }
    }
  ) {
    data {
      salespersonId
      number
      name
      baseCommission
    }
    options {
      pagination { page qty count }
    }
  }
}

Updating a salesperson

Only the fields you send are updated. salespersonId is required:

mutation {
  salespersonUpdate(
    companyId: 1
    data: {
      salespersonId: 5
      baseCommission: 7.5
      email: "joao.silva.new@company.com"
    }
  ) {
    data {
      salespersonId
      baseCommission
    }
    errors { field msg }
  }
}

Deleting salespersons

Accepts an array of IDs. Salespersons referenced by existing documents cannot be deleted, so check deletable first:

mutation {
  salespersonDelete(companyId: 1, salespersonId: [5]) {
    status
    deletedCount
    elementsCount
    errors { field msg }
  }
}

Commissions

Use salespersonCommissions to retrieve commission data, including earned and pending amounts from associated documents:

query {
  salespersonCommissions(
    companyId: 1
    options: {
      pagination: { page: 1, qty: 20 }
    }
  ) {
    data {
      salespersonId
      name
    }
    options {
      pagination { page qty count }
    }
  }
}

Retrieve all documents associated with a salesperson:

query {
  getSalespersonRelatedDocuments(
    companyId: 1
    salespersonId: 5
    options: {
      pagination: { page: 1, qty: 20 }
    }
  ) {
    data {
      documentId
      documentTypeId
      number
      date
      totalValue
    }
    options {
      pagination { page qty count }
    }
  }
}

Next steps

© 2026 Moloni ON

Tax Authority Certificate No. 3075