Tickets

Tickets or interventions are the main object of the application. They are created by the user and are linked to a location, an equipment and a job. They can be assigned to a user and can be scheduled for a specific date.

Properties

  • Name
    id
    Type
    string
    Description

    Unique identifier for the ticket.

  • Name
    from_public_interface
    Type
    boolean
    Description

    Whether the ticket was created from the public interface.

  • Name
    intervention_scheluded_at
    Type
    array => ISODate
    Description

    Array of dates when a visit or an intervention is scheduled (canceled dates are excluded).
    Note: the property is spelled intervention_scheluded_at in the API response. This historical spelling is kept for backward compatibility.

  • Name
    intervention_occured_at
    Type
    array => ISODate
    Description

    Array of dates when the intervention occured.

  • Name
    created_at
    Type
    string => ISODate
    Description

    Date when the ticket was created.

  • Name
    closed_at
    Type
    string => ISODate
    Description

    Date when the ticket was closed.

  • Name
    updated_at
    Type
    string => ISODate
    Description

    Date when the ticket was updated.

  • Name
    assigned_at
    Type
    string => ISODate
    Description

    Date when the ticket was assigned.

  • Name
    finished_at
    Type
    string => ISODate
    Description

    Date when the ticket was finished (null if it is not finished).

  • Name
    url
    Type
    string
    Description

    URL of the ticket.

  • Name
    number
    Type
    string
    Description

    Number of the ticket.

  • Name
    status
    Type
    string
    Description

    Status of the ticket, as a human-readable label in French (for example Ticket cloturé).
    To filter or to write code against a status, use status_key, not this label.

  • Name
    status_key
    Type
    string enum
    Description

    Status of the ticket, as a stable key. This is the value accepted by the status filter of the list endpoint.

    • draft (ticket is draft)
    • opened (ticket is waiting for validation)
    • waiting (ticket is waiting for assignment)
    • proposed (ticket was proposed to a contractor)
    • toreplan (ticket is waiting to be rescheduled)
    • toplan (ticket is to plan)
    • waitingplan (ticket is waiting to be scheduled)
    • waiting_contractor (ticket is waiting to plan or assign)
    • assigned (ticket is assigned to a contractor)
    • visit (ticket has a visit date planned)
    • visit_devis (waiting for the visit date to be confirmed as executed)
    • validation (the quote(s) need to be validated)
    • validated (the ticket's quote(s) were validated)
    • dropped (one or all of the ticket's quotes were declined)
    • intervention (ticket has an intervention date planned)
    • intervention_finish (waiting for the intervention date to be confirmed as executed)
    • finished (ticket is finished)
    • cashedby (waiting for the charge to be assigned)
    • closed (ticket is closed)
    • canceled (ticket is canceled)
    • declined (ticket is declined)
    • removed (ticket is removed)
  • Name
    status_reason
    Type
    string
    Description

    Short explanation of the status, in English (for example ticket is closed).

  • Name
    title
    Type
    string
    Description

    Title of the ticket.

  • Name
    description
    Type
    string
    Description

    Description of the ticket.

  • Name
    priority_label
    Type
    string
    Description

    Priority of the ticket.

  • Name
    client
    Type
    Object
    Description

    Client of the ticket.

    • _id (id of the client)
    • name (name of the client)
  • Name
    contractors
    Type
    array of Object
    Description

    Array of contractors.

    • _id (id of the contractor)
    • name (name of the contractor)
    • type (type of the contractor)
  • Name
    locations
    Type
    array of Object
    Description

    Array of locations with _id, name, parent_id, reference and location_facturation.

  • Name
    equipments
    Type
    array
    Description

    Array of equipments with _id, name and parent_id.

  • Name
    jobs
    Type
    array
    Description

    Array of jobs with _id and name.

  • Name
    domain
    Type
    Object
    Description

    Domain of the ticket, or null if the ticket has no domain.

    • _id (id of the domain)
    • label (name of the domain)
    • parent_id (id of the parent domain, null for a root domain)

    This object holds the most precise level set on the ticket: when the ticket has a sub-domain, domain is the sub-domain and parent_id points to its domain. When the ticket only has a domain, parent_id is null.
    You only receive the domains of your own account: on a ticket of your client, a contractor receives an empty object ({}), as for a domain deleted since. Prefer main_domain and subdomain.

  • Name
    main_domain
    Type
    Object
    Description

    Root domain of the ticket ({ _id, label, i18n }), or null if the ticket has no domain. Always the first level, whatever the level set on the ticket. label is in the language of the API token's user (then of the account), i18n holds every translation keyed by language code. The full list of your domains is available on the domains resource.

  • Name
    subdomain
    Type
    Object
    Description

    Sub-domain of the ticket ({ _id, label, i18n }), or null when the ticket only has a root domain.

  • Name
    managers
    Type
    array
    Description

    Array of managers.

  • Name
    contacts
    Type
    array
    Description

    Array of contacts (users)

  • Name
    creator
    Type
    Object
    Description

    Who created the ticket. It never changes afterwards: when a ticket opened by a contractor is validated by the client, creator stays the contractor and the validating user is exposed in validated_by.

    • id (id of the Bob! Desk user, null when there is none)
    • name (full name, null if unknown or if the user has been deleted since)
    • email (null if unknown)
    • source: user (a user of the account), contractor (a contractor user, on a ticket owned by another account), public_interface (name and email typed in the public form), maintenance (generated by a maintenance plan, nobody opened it) or api (created with an API token through POST /tickets)

    To act on behalf of a user of the client account (for example to raise a purchase request), use validated_by when it is set, otherwise creator.

  • Name
    validated_by
    Type
    Object
    Description

    User of the account who validated the ticket ({ id, name, email }), or null when the ticket has not been validated.

  • Name
    maintenance
    Type
    string
    Description

    Name of maintenance (only if the ticket is type of maintenance).

  • Name
    start_date
    Type
    string
    Description

    Start date period of maintenance (only if the ticket is type of maintenance).

  • Name
    end_date
    Type
    string
    Description

    End date period of maintenance (only if the ticket is type of maintenance).

  • Name
    quotes
    Type
    array of Object
    Description

    Quotes of the ticket that are shared with your account (deleted quotes are excluded).

    • _id (id of the quote)
    • reference (reference of the quote)
    • price (amount of the quote)
    • validated (whether the quote was validated)
    • validated_at (date of the validation, null if the quote is not validated)
    • validated_by (user who validated the quote, { id, name, email }, null if the quote is not validated)
    • document_id (id of the quote's file in the ticket documents, null when there is none or when your account cannot view it)
    • s3_key (key of that file, to pass to the download link endpoint; null in the same cases)
    • download_url (temporary signed download link of the file; only returned by GET /tickets/:ticket_id, never in the list)
  • Name
    invoices
    Type
    array of Object
    Description

    Invoices of the ticket that are shared with your account (deleted invoices are excluded).

    • _id (id of the invoice)
    • reference (reference of the invoice)
    • price (amount of the invoice)
    • document_id, s3_key, download_url (file of the invoice, same rules as for quotes)
  • Name
    invoice_group_ticket_id
    Type
    string
    Description

    Id of the grouped invoicing ticket this ticket belongs to, or null.

  • Name
    purchases
    Type
    array of Object
    Description

    Purchase documents of the ticket visible to your account, sorted by date (deleted documents are excluded). As a buyer you get every document you issued; as a supplier you only get the purchase orders addressed to you. See Purchase Documents.

    • _id (id of the document)
    • kind: purchase_request, purchase_order or goods_receipt
    • source: issued (your account is the buyer) or received (purchase order addressed to your account)
    • reference (reference of the document)
    • source_system (system the document comes from, for example your procurement tool, or null)
    • date
    • amount (null if unknown)
    • quote_id (quote of the ticket the document relates to, or null)
    • purchase_order_id (for a goods receipt, the purchase order it closes, or null)
    • buyer_company_id, supplier_company_id (null while no contractor is assigned)
    • document_id, s3_key (attached file, same rules as for quotes; null when there is none or when your account cannot view it)
    • from_api (whether the document was created through the API)
    • created_at, updated_at
  • Name
    fields
    Type
    array
    Description

    The custom fields of tickets.

  • Name
    typology
    Type
    array
    Description

    Typology of the ticket

    • _id (id of the typology, curatif, maintenance, etc...)
    • name (name of the typology)

GET/api/v3.0/tickets/get-id-from-number

Get ticket id from number

This endpoint allows you to retrieve a ticket id when you send an ticket number.

parameters

  • Name
    ticket_number
    Type
    string
    Description

    Only return tickets created after this date.

Request

GET
/api/v3.0/tickets/get-id-from-number
curl -G https://api.bob-desk.com/api/v3.0/tickets/get-id-from-number \
  -H "Authorization: Bearer {token}" \
  -d ticket_number="1234"

Response

{
    "ticket_id": "63725f259ab7e72a4fb4ae69"
}

GET/api/v3.0/tickets/:ticket_id

Get a ticket

This endpoint allows you to retrieve a single ticket. The ticket is returned with the same properties as in the list, plus a temporary signed download_url on each entry of quotes[] and invoices[] that has a file visible to your account.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Returns 404 with { "error": "Ticket not found." } when the id is not valid, when the ticket does not exist, or when your account has no access to it.

Request

GET
/api/v3.0/tickets/:ticket_id
curl https://api.bob-desk.com/api/v3.0/tickets/63725f259ab7e72a4fb4ae69 \
  -H "Authorization: Bearer {token}"

Response

{
    "ticket": {
        "_id": "63725f259ab7e72a4fb4ae69",
        "number": "123456789",
        "status": "Ticket cloturé",
        "status_key": "closed",
        "status_reason": "ticket is closed",
        "title": "Mon titre",
        "quotes": [
            {
                "_id": "63725f259ab7e72a4fb4ae70",
                "reference": "DEV-2026-118",
                "price": "1000",
                "validated": true,
                "validated_at": "2026-09-14T09:12:41.000Z",
                "validated_by": { "id": "5d9b5b5b9ab7e72a4fb4ae69", "name": "Jane Doe", "email": "jane@company.com" },
                "document_id": "66f1c2d39ab7e72a4fb4ae71",
                "s3_key": "{s3_key}",
                "download_url": "https://…" // only on this endpoint, never in the list
            }
        ]
        // ... same properties as in the list
    }
}

GET/api/v3.0/tickets

Tickets List

This endpoint allows you to retrieve a list of tickets.

Tickets are sorted by creation date, oldest first, and returned 50 per page. Pass the cursor of the response to get the next page; the last page returns "cursor": null.

optional parameters

All filters are combined with a logical AND: if you provide both created_after and updated_after, only tickets matching both conditions are returned.

Date filters (*_after, *_before) expect a Unix timestamp in milliseconds (for example 1669805251942, not 1669805251). The _after bound is included, the _before bound is excluded.

  • Name
    created_after
    Type
    string
    Description

    Only return tickets created at or after this date.

  • Name
    created_before
    Type
    string
    Description

    Only return tickets created before this date.

  • Name
    updated_after
    Type
    string
    Description

    Only return tickets updated at or after this date.

  • Name
    updated_before
    Type
    string
    Description

    Only return tickets updated before this date.

  • Name
    assigned_after
    Type
    string
    Description

    Only return tickets assigned at or after this date.

  • Name
    assigned_before
    Type
    string
    Description

    Only return tickets assigned before this date.

  • Name
    received_after
    Type
    string
    Description

    Only return tickets received by your account at or after this date.

  • Name
    received_before
    Type
    string
    Description

    Only return tickets received by your account before this date.

  • Name
    cursor
    Type
    string
    Description

    Cursor to paginate the results.

  • Name
    client_id
    Type
    string
    Description

    Id of the client (only for contractors).

  • Name
    interventions
    Type
    string
    Description

    Only accepts values true or false.
    If true return only tickets typeof interventions

  • Name
    maintenances
    Type
    string
    Description

    Only accepts values true or false.
    If true return only tickets typeof maintenances

  • Name
    status
    Type
    string
    Description

    Filter tickets by status. Accepts a comma-separated list of status keys (the status_key property of a ticket).
    By default (when status is not provided), all tickets are returned regardless of their status — including canceled, removed, etc.
    Example: status=canceled,closed,declined returns only tickets in one of those three statuses.


    Available status values:

    Status keyDescription
    draftDraft
    openedWaiting for validation
    declinedTicket declined
    waitingWaiting for assignment
    waiting_contractorTo schedule / assign
    proposedProposal sent
    assignedContractor assigned
    toplanTo schedule
    toreplanTo reschedule
    waitingplanWaiting to be scheduled
    visitVisit scheduled
    visit_devisWaiting for response — visit
    validationQuote pending validation
    validatedQuote validated
    droppedQuote declined
    interventionIntervention scheduled
    intervention_finishWaiting for response — intervention
    finishedIntervention finished
    cashedbyWaiting for charge assignment
    closedTicket closed
    canceledTicket canceled
    removedTicket removed

    validated, dropped and toreplan are transient statuses: they are cleared by the next action on the ticket (scheduling, a new quote…). To catch every validated quote, combine this filter with a periodic pass on updated_after.

  • Name
    typology
    Type
    string
    Description

    Accepts the id of the typology you want to filter, or several ids separated by commas.
    Below are the typologies and the corresponding ids shared by all accounts.

    TypologynameID
    Curatiftypology-curatif5ebb096fe1bde10a7ee21348
    Maintenancetypology-maintenance5ebb096fe1bde10a7ee21349
    Levée de réservestypology-levee-reserves5f770cb039e6b8004a1cc0b7
    Sinistretypology-sinistre5ebb096fe1bde10a7ee2134b
    Travauxtypology-travaux5ebb096fe1bde10a7ee2134a

Request

GET
/api/v3.0/tickets
curl -G https://api.bob-desk.com/api/v3.0/tickets \
  -H "Authorization: Bearer {token}" \
  -d updated_after="1669805251942" \
  -d created_after="1667828888000" \
  -d created_before="1670153026000" \
  -d assigned_after="1670153026000" \
  -d cursor="63725f259ab7e72a4fb4ae69" \
  -d status="canceled,closed,declined" \
  {/* Only for contractors */}
  -d client_id="5d9b5b5b9ab7e72a4fb4ae69"

Response

{
    "cursor": "63725f259ab7e72a4fb4ae69",
    "tickets": [
        {
            "_id": "63725f259ab7e72a4fb4ae69",
            "from_public_interface": true,
            "intervention_scheluded_at": ["2019-12-01T00:00:00.000Z"],
            "intervention_occured_at": ["2019-12-01T00:00:00.000Z"],
            "created_at": "2019-12-01T00:00:00.000Z", // string => ISODate
            "closed_at": "2019-12-01T00:00:00.000Z",
            "updated_at": "2019-12-01T00:00:00.000Z",
            "assigned_at": "2019-12-01T00:00:00.000Z",
            "finished_at": "2019-12-01T00:00:00.000Z",
            "url": "https://bob-desk.com/tickets/63725f259ab7e72a4fb4ae69",
            "number": "123456789", // no guarantee that it is unique
            "status": "Ticket cloturé", // label in French
            "status_key": "closed", // enum, use this one in your code
            "status_reason": "ticket is closed",
            "title": "Mon titre",
            "description": "Ma description",
            "priority_label": "high", // enum,
            "typology": {
              "_id": "5ebb096fe1bde10a7ee21348",
              "name": "typology-curatif"
            },  
            "quotes": [
                {
                    "reference": "123456789",
                    "_id": "63725f259ab7e72a4fb4ae69",
                    "validated": true,
                    "price": "1000",
                    "validated_at": "2026-09-14T09:12:41.000Z",
                    "validated_by": { "id": "5d9b5b5b9ab7e72a4fb4ae69", "name": "Jane Doe", "email": "jane@company.com" },
                    "document_id": "66f1c2d39ab7e72a4fb4ae71",
                    "s3_key": "{s3_key}" // pass it to GET /documents/{s3_key} to get a download link
                }
            ],
            "invoices": [
                {
                    "reference": "123456789",
                    "_id": "63725f259ab7e72a4fb4ae69",
                    "price": "1000",
                    "document_id": null, // file not shared with your account
                    "s3_key": null
                }
            ],
            "invoice_group_ticket_id": null,
            "purchases": [
                {
                    "_id": "68e0a1b29ab7e72a4fb4af01",
                    "kind": "purchase_order",
                    "source": "issued",
                    "reference": "PO-2026-00042",
                    "source_system": "coupa",
                    "date": "2026-10-01T00:00:00.000Z",
                    "amount": 1000,
                    "quote_id": "63725f259ab7e72a4fb4ae69",
                    "purchase_order_id": null,
                    "buyer_company_id": "5d9b5b5b9ab7e72a4fb4ae69",
                    "supplier_company_id": "5d973899ecb060003525ddec",
                    "document_id": "68e0a1b29ab7e72a4fb4af02",
                    "s3_key": "{s3_key}",
                    "from_api": true,
                    "created_at": "2026-10-01T08:00:00.000Z",
                    "updated_at": "2026-10-01T08:00:00.000Z"
                }
            ],
            "client":{
                "_id": "5d9b5b5b9ab7e72a4fb4ae69",
                "name": "Bob! Desk",
            },
            "locations": [
                {
                    "_id": "5d9b5b5b9ab7e72a4fb4ae69",
                    "name": "Paris",
                    "parent_id": null,
                    "reference": "OZ76YH",
                    "address": {
                          "postalCode": "75008",
                          "country": "France",
                          "city": "Paris",
                          "route": "Avenue des Champs-Élysées",
                          "streetNumber": "110",
                          "fullAddress": "110 Av. des Champs-Élysées, 75008 Paris, France",
                          "zone": "75",
                          "lat": 48.8722455,
                          "lng": 2.2996826
                    },
                    "location_facturation": {
                      "id": "5d7e3cb4101e1d004be4c378",
                      "name": "zShop 3",
                      "reference": "",
                      "address": {
                          "postalCode": "75008",
                          "country": "France",
                          "city": "Paris",
                          "route": "Avenue des Champs-Élysées",
                          "streetNumber": "110",
                          "fullAddress": "110 Av. des Champs-Élysées, 75008 Paris, France",
                          "zone": "75",
                          "lat": 48.8722455,
                          "lng": 2.2996826
                      },
                    },
                }
            ],
            "equipments": [
                {
                    "_id": "5d9b5b5b9ab7e72a4fb4ae69",
                    "name": "Machine à café",
                    "parent_id": null,
                }
            ],
            "jobs": [
                {
                    "_id": "5d9b5b5b9ab7e72a4fb4ae69",
                    "name": "Réparation",
                }
            ],
            "managers": [
              {
                "_id": "5d9b5b5b9ab7e72a4fb4ae69",
                "firstName": "first",
                "lastName": "last",
                "email": "managers@managers.fr",
                "phone": "+33601020304"
              },
            ],
            "contacts": [
              {
                "_id": "5d9b5b5b9ab7e72a4fb4ae69",
                "lastName": "last",
                "firstName": "first",
                "email": "contacts@contacts.fr",
                "phone": "+33601020304"
              }
            ],
            "creator": {
                "id": "5d9b5b5b9ab7e72a4fb4ae69",
                "name": "John Doe",
                "email": "john@company.com",
                "source": "user" // user | contractor | public_interface | maintenance | api
            },
            "validated_by": null, // { id, name, email } once the ticket has been validated
            "domain": {
                "_id": "5d9b5b5b9ab7e72a4fb4ae70",
                "label": "Plomberie",
                "parent_id": "5d9b5b5b9ab7e72a4fb4ae71" // the parent domain, null for a root domain
            },
            "main_domain": {
                "_id": "5d9b5b5b9ab7e72a4fb4ae71",
                "label": "Bâtiment",
                "i18n": { "fr": "Bâtiment", "en": "Building" }
            },
            "subdomain": {
                "_id": "5d9b5b5b9ab7e72a4fb4ae70",
                "label": "Plomberie",
                "i18n": { "fr": "Plomberie", "en": "Plumbing" }
            },
            "fields": [
                {
                    "field_id": "5d9b5b5b9ab7e72a4fb4ae69",
                    "name": {
                        "fr": "Nom du champ 1",
                        "en": "field name 1",
                    },
                    "value": "value"
                },
            ]
        }
    ]
}

POST/api/v3.0/tickets

Create ticket

This endpoint allows you to create a ticket.

Required parameters

  • Name
    title
    Type
    string
    Description

    Title of the ticket.

If you are a contractor, you can also provide this parameter

  • Name
    client_id
    Type
    string
    Description

    Id of the client.

Optional parameters

  • Name
    description
    Type
    string
    Description

    Description of the ticket.

  • Name
    priority
    Type
    enum
    Description

    Priority of the ticket. ('none', 'low', 'medium', 'high')

  • Name
    location_ids
    Type
    array
    Description

    Array of location ids.

  • Name
    equipment_ids
    Type
    array
    Description

    Array of equipment ids.

  • Name
    job_ids
    Type
    array
    Description

    Array of job ids.

  • Name
    manager_ids
    Type
    array
    Description

    Array of manager ids.

  • Name
    price_threshold
    Type
    number
    Description

    Price threshold of the ticket.

Request

POST
/api/v3.0/tickets
curl -X https://api.bob-desk.com/api/v3.0/tickets \
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \
  -d '{
    "title": "Light broken",
    "description": "I need a intervention to change my light",
    "priority": "high",
    "location_ids": ["5d9b5b5b9ab7e72a4fb4ae69"],
    "equipment_ids": ["5d9b5b5b9ab7e72a4fb4fe69"],
    "job_ids": ["5d9b5b5b9ab7e72a4fb4ae67"],
    "manager_ids": ["5d9b5b5b9ab7e72a4ff4ae69"],
    "price_threshold": 42
  }'

Response

{
   "ticket_id": "5f9b5b5b9ab7e72a4fb4ae69"
}

PUT/api/v3.0/tickets/:ticket_id/cancel

Cancel ticket

This endpoint allows you to cancel a ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Optional parameters

  • Name
    reason_cancel
    Type
    string
    Description

    Reason of cancel

Request

PUT
/api/v3.0/tickets/:ticket_id/cancel
curl -X PUT https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/cancel
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \
  -d '{
    "reason_cancel": "The client no longer needs us to do the intervention"
  }'

PUT/api/v3.0/tickets/:ticket_id/finish

Finish ticket

This endpoint allows you to finish a ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Optional parameters

  • Name
    reserve
    Type
    boolean
    Description

    Only when the ticket to finish is a reserve ticket otherwise it's not necessary.

Behavior

Returns 202 when the ticket is finished. When the account that owns the ticket requires an intervention report before a ticket can be finished, the request is refused with 400 and { "error": "An intervention report is required to finish this ticket. Please upload an intervention report before finishing." } until a report has been uploaded (see Upload a report).

Request

PUT
/api/v3.0/tickets/:ticket_id/finish
curl -X PUT https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/finish
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \
  -d '{
    "reserve": false
  }'

PUT/api/v3.0/tickets/:ticket_id/close

Close a ticket

This endpoint allows you to close a ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Optional parameters

  • Name
    reserve
    Type
    boolean
    Description

    Only when the ticket to close is a reserve ticket, otherwise it is not needed.

Request

PUT
/api/v3.0/tickets/:ticket_id/close
curl -X PUT https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/close
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \
  -d '{
    "reserve": false
    }'

POST/api/v3.0/tickets/:ticket_id/open

ReOpen ticket

This endpoint allows you to reopen a ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Request

POST
/api/v3.0/tickets/:ticket_id/open
curl -X POST https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/open
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}"

GET/api/v3.0/tickets/:ticket_id/notes

Notes ticket

This endpoint allows you to get all notes of a ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Request

GET
/api/v3.0/tickets/:ticket_id/notes
curl -G https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/notes
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \

Response

{
   "public_notes": [],
   "internal_notes": [],
   "managers_notes": []
}

Properties of the response

  • Name
    public_notes
    Type
    array
    Description

    Messages shared by everyone involved in the ticket. A contractor only receives the messages posted while it was assigned to the ticket.

  • Name
    internal_notes
    Type
    array
    Description

    Internal notes of your account, never visible to the other parties.

  • Name
    managers_notes
    Type
    array
    Description

    Notes exchanged between the managers of your account.

Returns 404 when the ticket does not exist or when your account has no access to it.


POST/api/v3.0/tickets/:ticket_id/notes

Create a note

This endpoint allows you to post a note on a specific ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Required parameters

  • Name
    note
    Type
    string
    Description

    The content of note.

  • Name
    type
    Type
    string
    Description

    Type of the note:

    • internal: internal note of your account, never visible to the other parties
    • managers: note between the managers of your account
    • public: message shared with everyone involved in the ticket

    Any value other than internal or managers creates a shared (public) message.

A note can be posted on a ticket whatever its status, including a closed ticket. Returns 400 when note or type is missing, and 403 when your account is a contractor that is no longer assigned to the ticket.

Request

POST
/api/v3.0/tickets/:ticket_id/notes
curl -X https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/notes
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \
  -d '{
    "note": "Tell me when you are coming",
    "type": "internal"
  }'

GET/api/v3.0/tickets/:ticket_id/dates

Dates list

This endpoint allows you to get all dates of a ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Request

GET
/api/v3.0/tickets/:ticket_id/dates
curl -G https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/dates
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \

Response

{
   "visit_dates": [],
   "intervention_dates": [],
}

Properties of the response

  • Name
    visit_dates
    Type
    array
    Description

    An array of visit dates.

  • Name
    intervention_dates
    Type
    array
    Description

    An array of intervention dates.


POST/api/v3.0/tickets/:ticket_id/dates

Append a date

This endpoint allows you to post a date by type on a specific ticket.

Route Parameters

  • Name
    ticket_id
    Type
    ObjectID
    Description

    The ticket id

Required parameters

  • Name
    start
    Type
    ISODate || Timestamps
    Description

    The start of visit date.

  • Name
    end
    Type
    ISODate || Timestamps
    Description

    Tne end of visit date.

  • Name
    type
    Type
    string
    Description

    The type of date
    ( Only values allowed: planned, actual )

Request

POST
/api/v3.0/tickets/:ticket_id/dates
curl -X https://api.bob-desk.com/api/v3.0/tickets/:ticket_id/dates
  -H "Content-Type: application/json"
  -H "Authorization: Bearer {token}" \
  -d '{
    "start": "2023-03-17T10:00:00.915Z",
    "end": "2023-03-17T14:00:00.915Z",
    "type": "planned"
  }'