Managing tickets

Tickets are issues related to orders that have been raised either by the buyer or the seller. They are always bound to order units (for more information about orders and order units, see the Managing Orders page). Once a ticket has been opened, the seller, the buyer or the customer service communicate with each other through sending messages. A ticket has a N-to-N relation with order units. This means that a ticket can include multiple order units and an order unit can have multiple tickets.

Retrieving open tickets

You can retrieve the unresolved tickets on your sales by sending a GET request to the /tickets endpoint with the status=opened query parameter. The is_seller_responsible flag indicates that the customer is waiting for you to respond. When it is set to true and you write a message for the ticket, this flag will automatically be changed to false, indicating that you have done everything you can and now you're waiting for a response or reaction from the customer.

Example output:

{
  "data": [
    {
      "id_ticket": "0011234567",
      "ids_order_units": [
        123456789,
        987654321
      ],
      "id_buyer": 123456789,
      "ts_created_iso": "2021-07-24T19:26:05Z",
      "ts_updated_iso": "2021-07-24T19:26:05Z",
      "status": "opened",
      "open_reason": "product_not_as_described",
      "topic": "delivery_not_received",
      "is_seller_responsible": false,
      "fulfillment_type": "fulfilled_by_merchant"
    }
  ],
  "pagination": {
    "offset": 30,
    "limit": 10,
    "total": 200
  }
}

Note: by default this endpoint only returns tickets related to orders fulfilled by the seller. To get tickets related to orders fulfilled by Kaufland, an appropriate filter parameter needs to be applied. Read more about FBK.

Responding to a ticket

If you want to respond to a ticket, you only need the id_ticket of the related ticket. Then you should send a POST request to the /tickets/{id_ticket}/messages endpoint passing the id_ticket via the URL.

For example, to send a message to the buyer who opened ticket #2308211 with the reason product_not_delivered:

POST https://sellerapi.kaufland.com/v2/tickets/0012308211/messages

Request body:

{
	"text": "I'm sorry you did not receive the item you ordered. I will ship another one immediately."
}

By default, sending a message will flip the is_seller_responsible flag to indicate that you have done everything you can and you are now waiting for a response or reaction from the customer. However, sometimes you just want to tell the customer that you are working on the issue, but you're not done yet. For these situations, you can suppress the automatic behavior by adding the "interim_notice": true property to your request. If you do, the is_seller_responsible flag will stay in the true state, indicating that you will follow up with another message.

For example, if you send a message for the ticket #2308212 for which the is_seller_responsible flag indicates that you should respond, the flag will not be changed by sending a message with the following request:

POST https://sellerapi.kaufland.com/v2/tickets/0012308211/messages

Request body:

{
	"text": "Just to inform you: I have received your return and I am working on it.",
	"interim_notice": true
}

If you'd like to attach one or more files to your ticket message, you can do so by adding an ticket_message_files array to the request. Each of the files has to have a name, the correct mime_type and the corresponding data encoded in base64. No additional API parameters required:

POST https://sellerapi.kaufland.com/v2/tickets/0012308211/messages

{
	"text": "Just to inform you: I have received your return and I am working on it.",
	"interim_notice": true,
	"ticket_message_files": [
        {
			"filename": "Test.jpg"
			"mime_type": "image/jpeg"
			"data": "data:image/jpeg;base64,..."
		}
		...
    ]
}
    Valid Mime Types:
  • text/plain - Plain Text
  • image/png - PNG Image
  • image/jpeg - JPEG Image
  • image/gif - GIF Animation
  • image/tiff - TIFF Image
  • application/pdf - PDF
  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - MS Excel Sheet (XLSX)
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document - MS Word Document (DOCX)
  • application/msword - MS Word Document (DOC)

Closing a ticket

You can close a ticket by sending a PATCH request to the /tickets/{id_ticket}/close endpoint, passing the ticket id via the URL.

Example:

PATCH https://sellerapi.kaufland.com/v2/tickets/0012308211/close

Opening a ticket

You can open a ticket for one or multiple order units by sending a POST request to the /tickets endpoint. A ticket can only be opened for order units belonging to the same order.

Example: Opening a ticket for two order units. (assuming they belong to the same order)

POST https://sellerapi.kaufland.com/v2/tickets

{
	"id_order_unit": [
		314567849803494,
		314567849803495,
	],
	"reason": "product_return",
	"message": "An article was missing in your return."
   }

Allowed values for the field reason are:

  • product_not_as_described: Ordered article was not in described condition/version
  • product_defect: An ordered article has a defect
  • product_not_delivered: An ordered article was not delivered yet
  • product_return: Return of an ordered article
  • contact_other: Miscellaneous question