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

# Validate Sale Entity

> Check that entity is ready for saving, return error messages by field.



## OpenAPI

````yaml /openapi/rest/openapi-v3-Sale.json post /api/v1/Sale/Validate
openapi: 3.0.0
info:
  version: v1-REST
  title: SuperOffice REST API v1
  description: SuperOffice REST API - Sale
  contact:
    name: SuperOffice DevNet
    url: https://docs.superoffice.com/en/api/index.html
    email: sdk@superoffice.com
servers:
  - url: http://localhost:56350
  - url: https://localhost:56350
security: []
tags: []
externalDocs:
  description: >-
    The SuperOffice DevNet Community has more documentation, examples, and
    discussion forums.
  url: https://community.superoffice.com/en/developer/
paths:
  /api/v1/Sale/Validate:
    post:
      tags:
        - Sale
      summary: Validate Sale Entity
      description: Check that entity is ready for saving, return error messages by field.
      operationId: v1SaleEntity_ValidateSaleEntity
      parameters:
        - name: Accept-Language
          in: header
          description: >-
            Convert string references and multi-language values into a specified
            language (iso2) code.
          required: false
          schema:
            type: string
        - name: SO-Language
          in: header
          description: >-
            Convert string references and multi-language values into a specified
            language (iso2) code. Overrides Accept-Language value.
          required: false
          schema:
            type: string
        - name: SO-Culture
          in: header
          description: >-
            Number, date formatting in a specified culture (iso2 language) code.
            Partially overrides SO-Language/Accept-Language value. Ignored if no
            Language set.
          required: false
          schema:
            type: string
        - name: SO-TimeZone
          in: header
          description: >-
            Specify the timezone code that you would like date/time responses
            converted to.
          required: false
          schema:
            type: string
        - name: SO-AppToken
          in: header
          description: >-
            The application token that identifies the partner app. Used when
            calling Online WebAPI from a server.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleEntity'
          text/json:
            schema:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleEntity'
          application/xml:
            schema:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleEntity'
          text/xml:
            schema:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleEntity'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleEntity'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleEntity'
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleEntity'
        description: Entity to be checked for errors.
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
            text/json:
              schema:
                type: object
                additionalProperties:
                  type: string
            application/xml:
              schema:
                type: object
                additionalProperties:
                  type: string
            text/xml:
              schema:
                type: object
                additionalProperties:
                  type: string
            application/json-patch+json:
              schema:
                type: object
                additionalProperties:
                  type: string
            application/merge-patch+json:
              schema:
                type: object
                additionalProperties:
                  type: string
      security:
        - SuperOffice_Password: []
          SuperId_Authentication: []
components:
  schemas:
    SuperOffice.CRM.Services.SaleEntity:
      description: >-
        Partial SaleEntity class associating the generated SaleEntity with an
        interface.
      type: object
      properties:
        Appointment:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Appointment'
        Associate:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        UpdatedBy:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        CreatedBy:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Associate'
        Contact:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Contact'
        Project:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Project'
        SaleText:
          description: Text describing the sale
          type: string
        Person:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Person'
        Currency:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Currency'
        Competitor:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Competitor'
        Credited:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Credited'
        Rating:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Rating'
        Reason:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Reason'
        Source:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Source'
        Status:
          description: 'The state of the Sale: Open / Sold / Lost / Stalled'
          enum:
            - Unknown
            - Open
            - Sold
            - Lost
            - Stalled
            - SaintAll
          type: string
        Saledate:
          format: date-time
          description: (expected / lost / won) sales date
          type: string
        Amount:
          format: double
          description: Total sale amount
          type: number
        SaleId:
          format: int32
          description: Primary key
          type: integer
        Earning:
          format: double
          description: Earning on sale
          type: number
        EarningPercent:
          format: double
          description: Earning as percent of total
          type: number
        Heading:
          description: Sale heading (short description?)
          type: string
        Number:
          description: Alphanumeric user field
          type: string
        Probability:
          format: int32
          description: Actual probability, may differ from the one in the list
          type: integer
        CreatedDate:
          format: date-time
          description: Registered date  in UTC.
          type: string
        UpdatedDate:
          format: date-time
          description: Last updated  in UTC.
          type: string
        Completed:
          description: >-
            The Sale completed state. The completed state is either Started or
            Completed. NotStarted is treated as Started. The value maps to the
            Done database field.
          enum:
            - Unknown
            - NotStarted
            - Started
            - Completed
          type: string
        ActiveLinks:
          format: int32
          description: Number of active links to sale, document, appointment.
          type: integer
        Links:
          description: List of all elements linked to the sale.
          type: array
          items:
            $ref: '#/components/schemas/SuperOffice.CRM.Services.Link'
        NextDueDate:
          format: date-time
          description: >-
            Next due date, this is a denormalization of 'closest future activity
            date, or most recent if no future activities'. Maintained by the
            system, but very convenient for searching.
          type: string
        Postit:
          description: >-
            The actual text, max 2047 significant characters even though it is
            stored as a larger data type on some databases
          type: string
        SaleType:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleType'
        ReasonSold:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.ReasonSold'
        ReasonStalled:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.ReasonStalled'
        ReopenDate:
          format: date-time
          description: >-
            Date the sale is to be reopened; valid only for status=stalled. Not
            necessarily the same as the nextDueDate.
          type: string
        SaleStakeholders:
          description: ''
          type: array
          items:
            $ref: '#/components/schemas/SuperOffice.CRM.Services.SaleStakeholder'
        ActiveErpLinks:
          format: int32
          description: The number of active erp links
          type: integer
        UserDefinedFields:
          description: "Deprecated: Use {SuperOffice.CRM.Services.SaleEntity.CustomFields} instead.\r\nDictionary of user defined field data.\r\nThe key string is the ProgId of the UdefField, or if the ProgId is empty it is a string of the format \"SuperOffice:[UdefFieldIdentity]\", e.g. \"SuperOffice:1234\""
          type: object
          additionalProperties:
            type: string
        ExtraFields:
          description: "Deprecated: Use {SuperOffice.CRM.Services.SaleEntity.CustomFields} instead.\r\nExtra fields added to the carrier. This could be data from Plug-ins, the foreign key system, external applications, etc."
          type: object
          additionalProperties:
            type: string
        CustomFields:
          description: "Udef + Extra fields added to the carrier. Extra fields as defined by changes to database schema + user-defined fields as defined by admin.\r\nCustom fields combines user defined fields and extra fields into one bucket. \r\nThe individual {SuperOffice.CRM.Services.SaleEntity.ExtraFields} and <see cref=\"P:SuperOffice.CRM.Services.SaleEntity.UserDefinedFields\">UserDefinedFields</see> properties are deprecated in favor of this\r\ncombined collection."
          type: object
          additionalProperties:
            type: string
        PublishEventDate:
          format: date-time
          description: Publish event date
          type: string
        PublishTo:
          format: date-time
          description: Publication valid to (inclusive)
          type: string
        PublishFrom:
          format: date-time
          description: Publication valid from (inclusive)
          type: string
        IsPublished:
          description: Publication is published
          type: boolean
        VisibleFor:
          description: The set of users or groups the record is visible for
          type: array
          items:
            $ref: '#/components/schemas/SuperOffice.CRM.Services.VisibleFor'
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Appointment:
      description: "Simple read-only appointment data.\r\n<para />\r\nCarrier object for Appointment.\r\nServices for the Appointment Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IAppointmentAgent\">Appointment Agent</see>."
      type: object
      properties:
        AppointmentId:
          format: int32
          description: Primary key
          type: integer
        StartDate:
          format: date-time
          description: date + start time planned
          type: string
        EndDate:
          format: date-time
          description: Date + end time planned
          type: string
        Type:
          description: >-
            The different types of appointment, if the appointment is supposed
            to be shown in the diary or checklist, or if it's a document. See
            the different types of appointments in the database manual.
          enum:
            - Unknown
            - inDiary
            - inChecklist
            - Note
            - Document
            - SavedReport
            - BookingForDiary
            - BookingForChecklist
            - MergeDraft
            - MergeFinal
          type: string
        Task:
          description: >-
            Task comprises the different types of activities, like “Phone call”,
            “Meeting” and so on.
          type: string
        AssociateFullName:
          description: >-
            The owner of the appointment - the associate whose diary/checklist
            the appointment is in.
          type: string
        ContactName:
          description: The contact associated with the appointment.
          type: string
        Description:
          description: >-
            The appointment's textbox; holds a descriptive text about the
            appointment. Filled out by the user.
          type: string
        PersonFullName:
          description: The full name of the person this appointment belongs to.
          type: string
        PersonId:
          format: int32
          description: Person ID of person the appointment is with, may be 0
          type: integer
        ContactId:
          format: int32
          description: Contact ID of owning contact, may be 0
          type: integer
        ProjectId:
          format: int32
          description: ID of project referred to, may be 0
          type: integer
        ProjectName:
          description: >-
            The name of the project this appointment belong to. Blank if no
            project is connected.
          type: string
        IsPublished:
          description: True if appointment have an entry in published table
          type: boolean
        AssociateId:
          format: int32
          description: ID of associate whose diary the appointment is in, REQUIRED
          type: integer
        ColorIndex:
          format: int32
          description: >-
            Appointment colour, used only in Japanese versions. Western versions
            take colour from Task
          type: integer
        IsFree:
          description: True if free, false if busy
          type: boolean
        HasAlarm:
          description: Does this appointment have an alarm
          type: boolean
        IsAlldayEvent:
          description: True if all day event
          type: boolean
        Private:
          description: >-
            Obsolete, but still maintained field for appointment privacy;
            denormalization of visiblefor status
          enum:
            - Public
            - PrivateUser
            - PrivateGroup
          type: string
        PriorityId:
          format: int32
          description: Link to priority list
          type: integer
        PriorityName:
          description: Name of the appointments priority
          type: string
        TaskType:
          description: >-
            The different task types of the appointment, if the activity is an
            appointment, task, phone. See the different types of appointments in
            the database manual.
          enum:
            - Unknown
            - Appointment
            - Document
            - Email
            - Fax
            - Phone
            - ToDo
            - MailMergeDraft
            - MailMergeFinal
            - Report
            - SaintAll
          type: string
        IsBookingMain:
          description: >-
            True if this appointment is a booking and current associate is the
            owner. False if it is a booking and current associate is a
            participant.
          type: boolean
        IsRecurrence:
          description: True if the appointment is part of a recurring pattern.
          type: boolean
        IsBooking:
          description: True if this appointment is a booking.
          type: boolean
        ActiveDate:
          format: date-time
          description: The date to be used for searching & showing
          type: string
        AssignmentStatus:
          description: >-
            Status if this appointment is in the process of being assigned to
            someone else
          enum:
            - Unknown
            - None
            - Assigning
            - Seen
            - Declined
          type: string
        InvitationStatus:
          description: Status if this appointment represents an invitation
          enum:
            - Unknown
            - None
            - Accepted
            - Hidden
            - Invitation
            - Moved
            - Seen
            - MovedSeen
            - Declined
            - Cancelled
          type: string
        BookingType:
          description: The type of booking the appointment represents
          enum:
            - Unknown
            - None
            - Owner
            - Participant
          type: string
        Completed:
          description: The Completed state.
          enum:
            - Unknown
            - NotStarted
            - Started
            - Completed
          type: string
        RecurringPattern:
          description: ''
          enum:
            - Unknown
            - Daily
            - Weekly
            - Monthly
            - Yearly
            - Custom
          type: string
        RecurringStartDate:
          format: date-time
          description: ''
          type: string
        RecurringEndDate:
          format: date-time
          description: ''
          type: string
        MotherId:
          format: int32
          description: >-
            ID of mother appointment; self if booking master, master ID if
            booking slave, 0 if normal appointment. However, if 0 and assoc_id
            != reg_id then this is an assigned appointment, indicated vt type =
            kBooking
          type: integer
        AssignedBy:
          format: int32
          description: Who (last) assigned this appointment to associate_id?
          type: integer
        AssignedByFullName:
          description: >-
            The associate's culture formatted fullname (firstname, middleName
            and lastname)
          type: string
        RejectReason:
          description: >-
            Why was this booking or assignment rejected, the RejectReason list
            is a source of suggestions but you can write anything here
          type: string
        Location:
          description: >-
            Location for appointment, defaulted from invited resource of type
            place and other rules, but you can write anything you want here
          type: string
        AlarmLeadTime:
          description: Alarm lead time.
          type: string
        SaleId:
          format: int32
          description: Owning sale, if any (may be 0)
          type: integer
        SaleName:
          description: Heading of Owning sale, if any. (may be blank)
          type: string
        AssociateName:
          description: The associate's name
          type: string
        CreatedDate:
          format: date-time
          description: Appointment creation date
          type: string
        CreatedBy:
          description: Who created the appointment. Associate name.
          type: string
        CreatedByFullName:
          description: Who created the appointment. Full name.
          type: string
        CreatedByAssociateId:
          format: int32
          description: Id of the associate that created the appointment
          type: integer
        CautionWarning:
          description: Status field to indicate appointments that have some sort of problem
          enum:
            - OK
            - NotInSync
            - NotNotifiedByEmail
            - RecurrencePatternNotSupported
            - IncomingRecurrenceChangeNotSupported
            - ExternalParticipantsDateTimeMismatch
          type: string
        OwnedExternally:
          description: Set if an external system owns this appointment.
          enum:
            - None
            - Other
            - Outlook
            - Google
          type: string
        MotherAssociateId:
          format: int32
          description: Associate/owner of the mother appointment
          type: integer
        JoinVideomeetUrl:
          description: >-
            Blank when not a video meeting. Filled with Join Meeting URL when
            created.
          type: string
        PreferredTZLocation:
          format: int32
          description: >-
            Preferred timezone location to use when displaying/editing this
            appointment
          type: integer
        Title:
          description: The title of the appointment.
          type: string
        Agenda:
          description: The agenda of the appointment.
          type: string
        InternalNotes:
          description: Internal notes for the appointment.
          type: string
        TaskId:
          format: int32
          description: Link to task list
          type: integer
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Associate:
      description: "Carrier object for Associate.\r\nServices for the Associate Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IAssociateAgent\">Associate Agent</see>."
      type: object
      properties:
        AssociateId:
          format: int32
          description: Primary key
          type: integer
        Name:
          description: Initials, also login name, possibly database user name
          type: string
        PersonId:
          format: int32
          description: "Owning person record \r\n<para>Use MDO List name \"person\" to get list items.</para>"
          type: integer
        Rank:
          format: int32
          description: Rank order
          type: integer
        Tooltip:
          description: Tooltip or other description
          type: string
        Type:
          description: >-
            User type - 1 = internal user, 2 = resource, 3 = external user, 4 =
            anonymous, 5 = system
          enum:
            - Unknown
            - InternalAssociate
            - ResourceAssociate
            - ExternalAssociate
            - AnonymousAssociate
            - SystemAssociate
          type: string
        GroupIdx:
          format: int32
          description: >-
            Primary group membership, see UserGroupLink for secondary
            memberships
          type: integer
        FullName:
          description: >-
            The associate's culture formatted fullname (firstname, middleName
            and lastname)
          type: string
        FormalName:
          description: >-
            The associate's culture formatted formalname (firstname, middleName
            and lastname, title, mrmrs)
          type: string
        Deleted:
          description: >-
            If true, the user is retired and should have no rights, not appear
            in lists, etc.
          type: boolean
        EjUserId:
          format: int32
          description: >-
            ID of the ej user record corresponding to this associate; 0 for
            associates that are not ej users
          type: integer
        UserName:
          description: User name
          type: string
        ExtraFields:
          description: "Deprecated: Use {SuperOffice.CRM.Services.Associate.CustomFields} instead.\r\nExtra fields added to the carrier. This could be data from Plug-ins, the foreign key system, external applications, etc."
          type: object
          additionalProperties:
            type: string
        CustomFields:
          description: "Udef + Extra fields added to the carrier. Extra fields as defined by changes to database schema + user-defined fields as defined by admin.\r\nCustom fields combines user defined fields and extra fields into one bucket. \r\nThe individual {SuperOffice.CRM.Services.Associate.ExtraFields} and <see cref=\"!:UserDefinedFields\">UserDefinedFields</see> properties are deprecated in favor of this\r\ncombined collection."
          type: object
          additionalProperties:
            type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Contact:
      description: "Carrier object for Contact.\r\nServices for the Contact Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IContactAgent\">Contact Agent</see>."
      type: object
      properties:
        ContactId:
          format: int32
          description: Primary key
          type: integer
        Name:
          description: Contact name
          type: string
        OrgNr:
          description: VAT number or similar
          type: string
        Department:
          description: Department
          type: string
        URL:
          description: The internet address to this contact
          type: string
        City:
          description: City corresponding to zip code
          type: string
        DirectPhone:
          description: The contacts phone
          type: string
        AssociateId:
          format: int32
          description: Our contact
          type: integer
        CountryId:
          format: int32
          description: Country
          type: integer
        EmailAddress:
          description: The contact email address
          type: string
        Kananame:
          description: Contact kana name, used in Japanese versions only
          type: string
        EmailAddressName:
          description: Visible field
          type: string
        URLName:
          description: Visible field
          type: string
        AssociateFullName:
          description: >-
            The associate's culture formatted fullname (firstname, middleName
            and lastname)
          type: string
        BusinessName:
          description: The business list item name
          type: string
        CategoryName:
          description: The category list item name
          type: string
        CountryName:
          description: Name of country in installed language
          type: string
        Address:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.Address'
        FormattedAddress:
          description: >-
            The contact's address, formatted with linebreaks and spaces into a
            single string.
          type: string
        FullName:
          description: ''
          type: string
        IsOwnerContact:
          description: >-
            Is the contact an owner contact.  This means that all persons on
            this contact can on only be internal users and not external users.
          type: boolean
        ActiveErpLinks:
          format: int32
          description: The number of active erp links
          type: integer
        Number1:
          description: Alphanumeric user field
          type: string
        Number2:
          description: Alphanumeric user field
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Project:
      description: "Carrier object for Project.\r\nServices for the Project Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IProjectAgent\">Project Agent</see>."
      type: object
      properties:
        ProjectId:
          format: int32
          description: Primary key
          type: integer
        Name:
          description: Project name
          type: string
        Description:
          description: The projects description
          type: string
        URL:
          description: URL address
          type: string
        Type:
          description: The project type.
          type: string
        AssociateId:
          format: int32
          description: The project owner id (associate id)
          type: integer
        AssociateFullName:
          description: The project owner
          type: string
        TypeId:
          format: int32
          description: ''
          type: integer
        Updated:
          format: date-time
          description: Last updated date  in UTC.
          type: string
        StatusId:
          format: int32
          description: The projects status id
          type: integer
        Status:
          description: The projects status
          type: string
        TextId:
          format: int32
          description: The id of the description
          type: integer
        PublishTo:
          format: date-time
          description: Publication valid to (inclusive)
          type: string
        PublishFrom:
          format: date-time
          description: Publication valid from (inclusive)
          type: string
        IsPublished:
          description: ''
          type: boolean
        URLName:
          description: Visible field
          type: string
        ProjectNumber:
          description: Automatically generated number
          type: string
        ActiveErpLinks:
          format: int32
          description: The number of active erp links
          type: integer
        EventId:
          format: int32
          description: Reserved field for Lyyti event when project is linked to an event.
          type: integer
        StartDate:
          format: date-time
          description: >-
            Reserved field for Lyyti event when project is linked to an event,
            is the event start date.
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Person:
      description: "Carrier object for Person.\r\nServices for the Person Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IPersonAgent\">Person Agent</see>."
      type: object
      properties:
        Position:
          description: >-
            The position. This is a predefined SuperOffice value, different from
            Title
          type: string
        PersonId:
          format: int32
          description: Primary key
          type: integer
        Mrmrs:
          description: e.g. Mrs   sex_title
          type: string
        Firstname:
          description: First name
          type: string
        Lastname:
          description: Last name
          type: string
        MiddleName:
          description: Middle name or 'van' etc.
          type: string
        Title:
          description: Title
          type: string
        Description:
          description: Info text/description on person.
          type: string
        Email:
          description: First email on contact person.
          type: string
        FullName:
          description: >-
            Get the persons full name (internal name used in clients for
            employees).
          type: string
        DirectPhone:
          description: Returns the direct phone that belong to the contact person.
          type: string
        FormalName:
          description: >-
            Get formal name for a person, as used in labels. (Full name + person
            title + academic title)
          type: string
        CountryId:
          format: int32
          description: Country
          type: integer
        ContactId:
          format: int32
          description: Owning contact ID
          type: integer
        ContactName:
          description: The persons company name
          type: string
        Retired:
          format: int32
          description: >-
            1 = the user is retired and should have no rights, not appear in
            lists, etc.
          type: integer
        Rank:
          format: int32
          description: Display sort sequence for default sort order
          type: integer
        ActiveInterests:
          format: int32
          description: >-
            Number of records in pintr table; select count(*) from pintr pi
            where pi.person_id = this.person_id == activeInterests is always
            true
          type: integer
        ContactDepartment:
          description: The persons contact department
          type: string
        ContactCountryId:
          format: int32
          description: The persons contact country id
          type: integer
        ContactOrgNr:
          description: The persons contact organization number
          type: string
        FaxPhone:
          description: Returns the fax phone that belong to the contact person.
          type: string
        MobilePhone:
          description: Returns the mobile phone that belong to the contact person.
          type: string
        ContactPhone:
          description: Returns the direct phone that belong to the persons contact.
          type: string
        AssociateName:
          description: Name of the person's owner
          type: string
        AssociateId:
          format: int32
          description: Id of the item's owner (Associate id)
          type: integer
        UsePersonAddress:
          description: If 1, use person's address for mailing instead of company address
          type: boolean
        ContactFax:
          description: Actual phone number as eneterd by the user
          type: string
        Kanafname:
          description: Kana first name, used in Japanese versions only
          type: string
        Kanalname:
          description: Kana last name, used in Japanese versions only
          type: string
        Post1:
          description: Postal address, used in Japanese versions only
          type: string
        Post2:
          description: Postal address, used in Japanese versions only
          type: string
        Post3:
          description: Postal address, used in Japanese versions only
          type: string
        EmailName:
          description: E-mail description
          type: string
        ContactFullName:
          description: Company full name + department
          type: string
        ActiveErpLinks:
          format: int32
          description: How many active ERP links are there for this person?
          type: integer
        TicketPriorityId:
          format: int32
          description: Ticket priority ID
          type: integer
        SupportLanguageId:
          format: int32
          description: Support priority ID
          type: integer
        SupportAssociateId:
          format: int32
          description: Our support contact for this person
          type: integer
        CategoryName:
          description: The category list item name
          type: string
        PersonNumber:
          description: Alphanumeric user field
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Currency:
      description: "Carrier object for Currency.\r\nServices for the Currency Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Competitor:
      description: "Carrier object for Competitor.\r\nServices for the Competitor Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Credited:
      description: "Carrier object for Credited.\r\nServices for the Credited Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Rating:
      description: "Sale Stage with probability percent.\r\n<para />\r\nCarrier object for Rating.\r\nServices for the Rating Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Reason:
      description: "Reason for a lost sale\r\n<para />\r\nCarrier object for Reason.\r\nServices for the Reason Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Source:
      description: "Source of a sale\r\n<para />\r\nCarrier object for Source.\r\nServices for the Source Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.Link:
      description: "Links two entities (contacts/projects/sales/URLs) together.\r\n<para />\r\nCarrier object for Link.\r\nServices for the Link Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        EntityName:
          description: >-
            Name of the entity the link points to (The destination/target
            entity)
          type: string
        Id:
          format: int32
          description: >-
            Id of the entity the link points to (The destination/target entity
            primary key)
          type: integer
        Description:
          description: Link description.
          type: string
        ExtraInfo:
          description: >-
            Extrainfo for link. Use for information that does not have a primary
            key
          type: string
        LinkId:
          format: int32
          description: Primary key
          type: integer
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.SaleType:
      description: "Carrier object for SaleType.\r\nServices for the SaleType Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.ReasonSold:
      description: "Reason for a succesfully sold sale\r\n<para />\r\nCarrier object for ReasonSold.\r\nServices for the ReasonSold Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.ReasonStalled:
      description: "Carrier object for ReasonStalled.\r\nServices for the ReasonStalled Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.IListAgent\">List Agent</see>."
      type: object
      properties:
        Id:
          format: int32
          description: The List Item Id
          type: integer
        Value:
          description: The List Item Value
          type: string
        Tooltip:
          description: The List Item Tooltip
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.SaleStakeholder:
      description: "Carrier object for SaleStakeholder.\r\nServices for the SaleStakeholder Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.ISaleAgent\">Sale Agent</see>."
      type: object
      properties:
        StakeholderRoleName:
          description: Stakeholder role name
          type: string
        Comment:
          description: Optional comment text
          type: string
        StakeholderRoleId:
          format: int32
          description: Stakeholde role list id - Primary key
          type: integer
        CountryId:
          format: int32
          description: Country id - primary key
          type: integer
        PersonId:
          format: int32
          description: Person id - Primary key
          type: integer
        EmailDescription:
          description: E-mail description
          type: string
        EmailId:
          format: int32
          description: E-mail address id - Primary key
          type: integer
        EmailAddress:
          description: E-mail address
          type: string
        PhoneId:
          format: int32
          description: Primary key
          type: integer
        ContactName:
          description: Contact name
          type: string
        ContactId:
          format: int32
          description: Contact ID of person or contact who is the sale stakeholder
          type: integer
        SaleId:
          format: int32
          description: Parent sale
          type: integer
        Mrmrs:
          description: e.g. Mrs, Mr, Ms, Dr.
          type: string
        Firstname:
          description: First name
          type: string
        MiddleName:
          description: Middle name or 'van' etc.
          type: string
        Lastname:
          description: Last name
          type: string
        SaleStakeholderId:
          format: int32
          description: Primary key
          type: integer
        Rank:
          format: int32
          description: Rank in list of stakeholders
          type: integer
        Phone:
          description: Phone number
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.VisibleFor:
      description: "Carrier object for VisibleFor.\r\nServices for the VisibleFor Carrier is available from the <see cref=\"T:SuperOffice.CRM.Services.ISentryAgent\">Sentry Agent</see>."
      type: object
      properties:
        VisibleId:
          format: int32
          description: ''
          type: integer
        Visibility:
          description: ''
          enum:
            - All
            - Associate
            - Group
          type: string
        DisplayValue:
          description: ''
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Security.TableRight:
      description: "Wraps a table right together with an explanatory reason.\r\nCode can indicate why access is restricted."
      type: object
      properties:
        Mask:
          type: string
        Reason:
          type: string
    SuperOffice.CRM.Security.FieldProperty:
      description: >-
        Class holding properties like field length, field type about a field in
        the carrier.
      type: object
      properties:
        FieldRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldRight'
        FieldType:
          type: string
        FieldLength:
          format: int32
          description: ''
          type: integer
    SuperOffice.CRM.Services.Address:
      description: "Street and/or Postal address, in both formatted and structured forms. You only need to modify one of the two for the change to be registered.\r\n<para />\r\nCarrier object for Address."
      type: object
      properties:
        Wgs84Latitude:
          format: double
          description: >-
            Latitude (that's north/south), decimal degrees, relative to WGS 84
            ellipsoid. SuperOffice ASA is at 59.91892. This value needs no
            further grid reference or other qualifying information.
          type: number
        Wgs84Longitude:
          format: double
          description: >-
            Longitude (that's East/west), decimal degrees, relative to WGS 84
            ellipsoid. SuperOffice ASA is at 10.73159. This value needs no
            further grid reference or other qualifying information.
          type: number
        LocalizedAddress:
          description: >-
            LocalizedFieldArray is a list of LocalizedFieldList objects. Used to
            store localized information such as formatted address data.
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/SuperOffice.CRM.Services.LocalizedField'
        Street:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.StructuredAddress'
        Postal:
          $ref: '#/components/schemas/SuperOffice.CRM.Services.StructuredAddress'
        Formatted:
          description: >-
            Read-only formatted address multi-line string. Combines street and
            postal into one string. e.g.: <c>"Postboks 123,\nBrugata 123,\n1234
            OSLO\n"</c> or <c>"Postbox 123,\nBridgelane 123,\nWest
            Tooting,\nEast Shire ES2 W31\n"</c>.
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Security.FieldRight:
      description: "Wraps the field right together with an explanatory reason.\r\nAlso adds logical operators to the field rights so that they can be easily combined."
      type: object
      properties:
        Mask:
          type: string
        Reason:
          type: string
    SuperOffice.CRM.Services.LocalizedField:
      description: "LocalizedField is used to store localized information such as formatted address data, a formatted phone number, etc.\r\n<para />\r\nCarrier object for LocalizedField."
      type: object
      properties:
        Name:
          description: Name of the value field
          type: string
        Value:
          description: The field's value
          type: string
        Tooltip:
          description: The tooltip
          type: string
        Label:
          description: The label of the field
          type: string
        ValueLength:
          format: int32
          description: Database length of the value
          type: integer
        AddressType:
          description: ''
          type: string
        TableRight:
          $ref: '#/components/schemas/SuperOffice.CRM.Security.TableRight'
        FieldProperties:
          description: >-
            Field property dictionary mapping field names to field access
            rights.
          type: object
          additionalProperties:
            $ref: '#/components/schemas/SuperOffice.CRM.Security.FieldProperty'
    SuperOffice.CRM.Services.StructuredAddress:
      description: "Address with structured fields (Address1, City, Zip) - does not vary its layout by country, unliked the formatted address.\r\n<para />\r\nCarrier object for StructuredAddress."
      type: object
      properties:
        AtypeIdx:
          description: >-
            Bit mask, combines address type (EAddressType) and owner type
            (EOwnerType)
          enum:
            - Unknown
            - ContactPostalAddress
            - ContactStreetAddress
            - PersonPrivateAddress
            - QuoteBillingAddress
            - QuoteShippingAddress
          type: string
        Address1:
          description: Address line 1
          type: string
        Address2:
          description: Address line 2
          type: string
        Address3:
          description: Address line 3
          type: string
        City:
          description: City corresponding to zip code
          type: string
        County:
          description: County (not country)
          type: string
        State:
          description: State
          type: string
        Zipcode:
          description: Zip code, alphanumeric
          type: string
        Formatted:
          description: >-
            Read-only formatted address multi-line string. e.g.: <c>"Brugata
            123,\n1234 OSLO\n"</c> or <c>"Bridgelane 123,\nWest Tooting,\nThe
            Shire ES2 W31\n"</c>.
          type: string

````

## Related topics

- [Validate Sale Entity](/en/api/reference/restful/agent/sale_agent/validate-sale-entity.md)
- [SuperOffice.WebApi.Data.Sale ValidateSaleEntityRequest](/en/api/reference/webapi/SuperOffice.WebApi.Data.Sale_ValidateSaleEntityRequest.md)
- [NSSaleAgent](/en/automation/crmscript/reference/CRMScript.NetServer.NSSaleAgent.md)
- [SuperOffice.WebApi.Agents.SaleAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.SaleAgent.md)
- [SuperOffice.WebApi.Agents.ISaleAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.ISaleAgent.md)
- [Validate Appointment Entity](/en/api/reference/restful/rest/appointment/validate-appointment-entity.md)
