Questionnaire Clarifications
Creates the clarification points of an answer again from its AI comparison results.
POST/api/media/questionnaire_answer/{identifier}/generate_clarifications
Points somebody already worked on and manual points are kept.
Path parameters
identifierrequiredstring |
Responses
200Creates the clarification points of a MediaQuestionnaireAnswer againMediaQuestionnaireAnswer3
Show fields (6)
companyCRMCompany23Show fields (62)
idintegerPrimary key of the company. Internal ID.
short_namestringShort name of the company.
company_namestringLegal name of the company.
secondary_namestringSecond name line of the company.
direct_dialstringDirect dial number of the company.
invoice_emailstringE-mail address for invoices.
send_invoice_emailbooleanSend invoices by e-mail.
send_invoice_letterbooleanSend invoices by letter.
time_report_emailstringE-mail address for time reports.
payment_goalPaymentGoalPayment term of the company.
payment_intervalstringInterval of the payments.
vatidstringVAT identification number.
taxnumberstringTax number of the company.
buyer_reference_idstringLeitweg-ID or custom reference ID defined by the customer
taxTaxTax rate used for the company.
infostringInformation about the company.
numberstringCustomer or supplier number of the company.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringCompany number as text, including prefix.
is_customerbooleanThe company is a customer.
is_supplierbooleanThe company is a supplier.
is_otherbooleanThe company is neither customer nor supplier.
is_memberbooleanThe company is a member.
archivedbooleanThe company is archived.
categoryCRMCompanyCategoryCategory of the company.
visible_for_customerbooleanWhether the company is visible to the customer.
founding_datestring (date-time)Founding date of the company.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringMain phone number.
main_faxstringMain fax number.
main_emailstringMain e-mail address.
websitestringWebsite address.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
payment_ownerstringAccount owner of the direct debit.
payment_institutionstringName of the bank of the direct debit.
payment_bicstringBIC of the bank account.
payment_ibanstringIBAN of the bank account.
payment_mandatestringReference of the SEPA mandate.
payment_mandate_sign_datestring (date-time)Date the SEPA mandate was signed.
payment_mandate_valid_until_datestring (date-time)Date until which the SEPA mandate is valid.
payment_typePaymentTypecompany_employee_countintegerNumber of employees of the company.
company_founding_yearintegerFounding year of the company.
company_family_ownedbooleanWhether the company is family-owned.
company_sales_volumestringSales volume of the company.
company_segmentstringMarket segment of the company.
personCRMPerson10Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
idintegerPrimary key of the questionnaire answer. Internal ID.
media_questionnaireMediaQuestionnaire5Questionnaire that was answered.
Show fields (37)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
configuration_hintsarray<string>Not persisted: warnings about the installation setup this questionnaire depends on (e.g. AI comparison without LLM or OCR), filled for the admin detail response.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
pagesarray<MediaQuestionnairePage>Pages of the questionnaire.
entriesarray<MediaQuestionnaireContent2>Questions and contents of the questionnaire.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
clarification_enabledbooleanSecond loop after the AI comparison: answers the AI does not rate as fulfilled become clarification points (MediaQuestionnaireClarification) that are discussed with the customer and decided before the result template is created. Without it the result template follows the AI comparison directly.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
namestringName of the entity.
slug_identifierstringSlug used in URLs of the entity.
media_questionnaire_answer_groupMediaQuestionnaireAnswerGroup11Answer group the answer belongs to.
Show fields (17)
answer_countintegercompanyCRMCompany23personCRMPerson10idintegerPrimary key of the questionnaire answer group. Internal ID.
media_questionnaireMediaQuestionnaire5Questionnaire the answers belong to.
answersarray<MediaQuestionnaireAnswer3>Answers of the group.
end_timestring (date-time)Time the answers were completed.
confirmedbooleanThe answers are confirmed.
draftbooleanThe answers are a draft and not yet submitted.
processingbooleanThe answers are being processed.
externalbooleanThe answers were given by an external party.
confirmed_disclaimerbooleanDisclaimer confirmed.
confirmed_privacybooleanPrivacy policy confirmed.
confirmed_cancellation_policybooleanCancellation policy confirmed.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
- … 16 more fields
- … 59 more fields
curl --request POST \
--url https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"company_name": "Beispiel",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"name": "Beispiel"
}Completes the review of an answer once every clarification point is decided or dismissed.
POST/api/media/questionnaire_answer/{identifier}/complete_review
The result template (report) follows, as it does without the second loop.
Path parameters
identifierrequiredstring |
Responses
200Completes the review of a MediaQuestionnaireAnswerMediaQuestionnaireAnswer3
Show fields (6)
companyCRMCompany23Show fields (62)
idintegerPrimary key of the company. Internal ID.
short_namestringShort name of the company.
company_namestringLegal name of the company.
secondary_namestringSecond name line of the company.
direct_dialstringDirect dial number of the company.
invoice_emailstringE-mail address for invoices.
send_invoice_emailbooleanSend invoices by e-mail.
send_invoice_letterbooleanSend invoices by letter.
time_report_emailstringE-mail address for time reports.
payment_goalPaymentGoalPayment term of the company.
payment_intervalstringInterval of the payments.
vatidstringVAT identification number.
taxnumberstringTax number of the company.
buyer_reference_idstringLeitweg-ID or custom reference ID defined by the customer
taxTaxTax rate used for the company.
infostringInformation about the company.
numberstringCustomer or supplier number of the company.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringCompany number as text, including prefix.
is_customerbooleanThe company is a customer.
is_supplierbooleanThe company is a supplier.
is_otherbooleanThe company is neither customer nor supplier.
is_memberbooleanThe company is a member.
archivedbooleanThe company is archived.
categoryCRMCompanyCategoryCategory of the company.
visible_for_customerbooleanWhether the company is visible to the customer.
founding_datestring (date-time)Founding date of the company.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringMain phone number.
main_faxstringMain fax number.
main_emailstringMain e-mail address.
websitestringWebsite address.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
payment_ownerstringAccount owner of the direct debit.
payment_institutionstringName of the bank of the direct debit.
payment_bicstringBIC of the bank account.
payment_ibanstringIBAN of the bank account.
payment_mandatestringReference of the SEPA mandate.
payment_mandate_sign_datestring (date-time)Date the SEPA mandate was signed.
payment_mandate_valid_until_datestring (date-time)Date until which the SEPA mandate is valid.
payment_typePaymentTypecompany_employee_countintegerNumber of employees of the company.
company_founding_yearintegerFounding year of the company.
company_family_ownedbooleanWhether the company is family-owned.
company_sales_volumestringSales volume of the company.
company_segmentstringMarket segment of the company.
personCRMPerson10Show fields (81)
idintegerPrimary key of the person. Internal ID.
first_namestringFirst name of the person.
last_namestringLast name of the person.
numberintegerMember or customer number of the person.
manual_numberintegerNumber set manually instead of the automatic number.
number_stringstringMember or customer number as text, including prefix.
genderstringGender of the person.
titlestringAcademic or other title of the person.
positionstringPosition or role of the person.
languagestringPreferred language of the person.
special_salutationstringSpecial salutation text for letters.
form_of_salutationstringForm of salutation, for example formal or informal.
birthdaystring (date-time)Birthday of the person.
known_allergiesstringKnown allergies of the person.
confirmed_no_allergiesbooleanGuardian confirmed that there are no known allergies.
allow_photosbooleanPhotos of the person may be taken and published.
allow_leaving_alonebooleanThe person may leave the event alone.
authorized_pickupstringPersons who are allowed to pick up the person.
needs_supportbooleanThe person needs support, for example for inclusion.
support_descriptionstringDescription of the support the person needs.
financial_supportbooleanThe person receives financial support.
financial_support_numberstringNumber of the financial support.
municipal_supportbooleanThe person receives municipal support.
municipal_support_numberstringNumber of the municipal support.
grade_levelintegerSchool grade level of the person.
school_classstringSchool class of the person.
start_timestring (date-time)Start of the membership or activity.
start_time_reasonstringReason for the start.
end_timestring (date-time)End of the membership or activity.
end_time_reasonstringReason for the end.
confirmed_gtc_timestring (date-time)Time the general terms and conditions were confirmed.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das pruefbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Time the person opted in to the chatbot.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezaehlten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Contact data of the person, for example phone and e-mail.
archivedbooleanWhether the person is archived.
subscribed_newsletterbooleanWhether the person subscribed to the newsletter.
subscribed_magazinebooleanWhether the person subscribed to the magazine.
printed_member_cardbooleanWhether a member card has been printed for the person.
has_login_userbooleanWhether the person has a login user.
profile_picture_urlstringURL of the profile picture of the person.
log_book_staffbooleanLog book flag: staff.
log_book_staff1booleanLog book flag: staff, level 1.
log_book_staff2booleanLog book flag: staff, level 2.
log_book_memberbooleanLog book flag: member.
log_book_trainerbooleanLog book flag: trainer.
log_book_trainer1booleanLog book flag: trainer, level 1.
log_book_trainer2booleanLog book flag: trainer, level 2.
log_book_head_of_departmentbooleanLog book flag: head of department.
log_book_supervisory_boardbooleanLog book flag: supervisory board.
log_book_board_of_directorsbooleanLog book flag: board of directors.
log_book_honorary_memberbooleanLog book flag: honorary member.
log_book_club_card_onebooleanLog book flag: club card.
log_book_health_recoveredbooleanLog book flag: recovered from illness.
log_book_health_vaccinatedbooleanLog book flag: vaccinated.
log_book_health_vaccinated_additionstringDetails of the vaccination.
log_book_good_conductbooleanLog book flag: certificate of good conduct.
log_book_first_aidbooleanLog book flag: first aid training.
log_book_measles_vaccinationbooleanLog book flag: measles vaccination.
sync_lanistabooleanWhether the person is synchronized with Lanista.
categoryCRMPersonCategoryPerson category.
nicknamestringNickname of the person.
preferred_color_hexstringPreferred color of the person as hex value.
avatar_tokenstringToken of the avatar image.
search_stringstringText that the entity can be searched by.
addressstringAddress as text.
address_streetstringStreet of the address.
address_house_numberstringHouse number of the address.
address_street_levelstringStreet and house number of the address.
address_costringCare-of line of the address.
address_citystringCity of the address.
address_zipstringPostal code of the address.
address_admin_level1stringFirst administrative level of the address, e.g. the federal state.
address_countrystringCountry code of the address.
address_full_countrystringFull name of the country of the address.
address_geo_latstringLatitude of the address.
address_geo_lngstringLongitude of the address.
address_external_provider_idstringfield to store the external provider id of the address. e.g. Google Maps PlaceID like google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Point in time the entity was created.
- … 2 more fields
idintegerPrimary key of the questionnaire answer. Internal ID.
media_questionnaireMediaQuestionnaire5Questionnaire that was answered.
Show fields (37)
idintegerPrimary key of the questionnaire. Internal ID.
questionnaire_typestringType of the questionnaire, for example registration or survey.
tokenstringPublic token of the questionnaire. Used instead of the ID.
public_copyrightstringCopyright text shown with the questionnaire.
public_language_codestringLanguage of the questionnaire, for example de.
complexity_levelintegerComplexity level of the questionnaire.
public_authorstringAuthor shown to the public.
show_free_textbooleanShow a free text field.
show_attachmentbooleanShow an upload field for attachments.
configuration_hintsarray<string>Not persisted: warnings about the installation setup this questionnaire depends on (e.g. AI comparison without LLM or OCR), filled for the admin detail response.
require_attachmentbooleanAn attachment must be uploaded.
with_paginationbooleanShow the questionnaire page by page.
one_entry_per_personbooleanIf true, only one entry per person is allowed - only for logged-in users and table results
require_addressbooleanThe address must be entered.
require_contactbooleanContact details must be entered.
require_agebooleanThe age must be entered.
require_grade_levelbooleanThe school grade level must be entered.
start_timestring (date-time)Start of the availability of the questionnaire.
end_timestring (date-time)End of the availability of the questionnaire.
pagesarray<MediaQuestionnairePage>Pages of the questionnaire.
entriesarray<MediaQuestionnaireContent2>Questions and contents of the questionnaire.
age_groupstringAge group the questionnaire is intended for.
min_ageintegerMinimum age in years.
max_ageintegerMaximum age in years.
min_grade_levelintegerMinimum school grade level.
max_grade_levelintegerMaximum school grade level.
age_toleranceintegerYears by which the age may be outside the range and still be accepted.
group_allowedbooleanWhether the questionnaire is limited to a group.
allow_self_registerbooleanWhether people can register themselves to answer the questionnaire.
allow_self_download_result_templatebooleanWhether answerers can download their own result.
clarification_enabledbooleanSecond loop after the AI comparison: answers the AI does not rate as fulfilled become clarification points (MediaQuestionnaireClarification) that are discussed with the customer and decided before the result template is created. Without it the result template follows the AI comparison directly.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
image_urlstringURL of the image of the entity.
namestringName of the entity.
slug_identifierstringSlug used in URLs of the entity.
media_questionnaire_answer_groupMediaQuestionnaireAnswerGroup11Answer group the answer belongs to.
Show fields (17)
answer_countintegercompanyCRMCompany23personCRMPerson10idintegerPrimary key of the questionnaire answer group. Internal ID.
media_questionnaireMediaQuestionnaire5Questionnaire the answers belong to.
answersarray<MediaQuestionnaireAnswer3>Answers of the group.
end_timestring (date-time)Time the answers were completed.
confirmedbooleanThe answers are confirmed.
draftbooleanThe answers are a draft and not yet submitted.
processingbooleanThe answers are being processed.
externalbooleanThe answers were given by an external party.
confirmed_disclaimerbooleanDisclaimer confirmed.
confirmed_privacybooleanPrivacy policy confirmed.
confirmed_cancellation_policybooleanCancellation policy confirmed.
nace_sectionstringNACE section code (letter A-U)
nace_codestringNACE code (numeric like 01.11, 62.01)
- … 16 more fields
- … 59 more fields
curl --request POST \
--url https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://your-instance.iw-erp.de/api/media/questionnaire_answer/42/complete_review'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"company_name": "Beispiel",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"name": "Beispiel"
}Returns the clarification points (filter with mediaQuestionnaireAnswer)
GET/api/media/questionnaire_clarification
Query parameters
idinteger | |
deletedboolean | This property is used to mark an entity as deleted / archived | Default value: false |
mediaQuestionnaireAnswerstring | |
contentAnswerstring | The answered question this point is about. Null for general points of the auditor. |
contentKeystring | Stable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer |
sourcestring | AI or MANUAL |
statusstring | OPEN, ANSWERED, RESOLVED, DISMISSED |
aiVerdictstring | Rating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none) |
finalVerdictstring | Decision of the auditor: PASSED, FAILED, NOT_APPLICABLE |
viewOrderstring | |
createdstring | |
updatedstring | |
searchStringstring | text to search for in the list |
orderFieldNamestring | name of the order field |
orderFieldSortstring | sorting modeAllowed: DESCASC |
pageinteger | page of the list |
pageSizeinteger | number of entries for each page |
withMaxPageNumberstring | returns the number of pages available as a header if this is set |
Responses
200Returns a list of MediaQuestionnaireClarification objectsarray<MediaQuestionnaireClarification>
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
]Adds a clarification point of the auditor (source MANUAL), e.g. a finding of an on-premise AI check
POST/api/media/questionnaire_clarification
Request body application/json
dataMediaQuestionnaireClarification2Show fields (13)
media_questionnaire_answerMediaQuestionnaireAnswer17Answer the clarification is about.
content_answerMediaQuestionnaireContentAnswer4The answered question this point is about. Null for general points of the auditor.
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
view_orderintegerSort order of the clarification in lists.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Add a new MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request POST \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
title: 'Beispiel',
media_questionnaire_answer: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
ai_verdict: 'string',
ai_score: 1,
ai_reasoning: 'string',
question: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification"
payload = { "data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification', [
'body' => '{"data":{"title":"Beispiel","media_questionnaire_answer":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"ai_verdict":"string","ai_score":1,"ai_reasoning":"string","question":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification"
payload := strings.NewReader("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/media_questionnaire_clarification.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.post(MediaQuestionnaireClarification.fromJson({
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Returns a single clarification point
GET/api/media/questionnaire_clarification/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Returns a single MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request GET \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Updates a clarification point (question, response of the customer, decision of the auditor)
PUT/api/media/questionnaire_clarification/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataMediaQuestionnaireClarification2Show fields (13)
media_questionnaire_answerMediaQuestionnaireAnswer17Answer the clarification is about.
content_answerMediaQuestionnaireContentAnswer4The answered question this point is about. Null for general points of the auditor.
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
view_orderintegerSort order of the clarification in lists.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update a MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PUT \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
title: 'Beispiel',
media_questionnaire_answer: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
ai_verdict: 'string',
ai_score: 1,
ai_reasoning: 'string',
question: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
payload = { "data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', [
'body' => '{"data":{"title":"Beispiel","media_questionnaire_answer":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"ai_verdict":"string","ai_score":1,"ai_reasoning":"string","question":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
payload := strings.NewReader("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/media_questionnaire_clarification.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.put(MediaQuestionnaireClarification.fromJson({
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Updates a clarification point (question, response of the customer, decision of the auditor)
PATCH/api/media/questionnaire_clarification/{identifier}
Path parameters
identifierrequiredstring |
Request body application/json
dataMediaQuestionnaireClarification2Show fields (13)
media_questionnaire_answerMediaQuestionnaireAnswer17Answer the clarification is about.
content_answerMediaQuestionnaireContentAnswer4The answered question this point is about. Null for general points of the auditor.
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
view_orderintegerSort order of the clarification in lists.
deletedbooleanThis property is used to mark an entity as deleted / archived
Responses
200Update a MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request PATCH \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
title: 'Beispiel',
media_questionnaire_answer: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
ai_verdict: 'string',
ai_score: 1,
ai_reasoning: 'string',
question: 'string'
}
})
};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
payload = { "data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', [
'body' => '{"data":{"title":"Beispiel","media_questionnaire_answer":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"ai_verdict":"string","ai_score":1,"ai_reasoning":"string","question":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}");
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42")
.patch(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
payload := strings.NewReader("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}),
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Deletes a clarification point (soft delete)
DELETE/api/media/questionnaire_clarification/{identifier}
Path parameters
identifierrequiredstring |
Responses
200Delete a MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request DELETE \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Starts the AI re-evaluation of a clarification point with the response and the late evidence
POST/api/media/questionnaire_clarification/{identifier}/evaluate
Path parameters
identifierrequiredstring |
Responses
200Starts the AI re-evaluation of a MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request POST \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/evaluate \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/evaluate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/evaluate"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/evaluate', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/evaluate"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/evaluate")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/evaluate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with the iw_erp_api package
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'your-instance.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.postEvaluate('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Links a late evidence document (an uploaded Attachment) to a clarification point
POST/api/media/questionnaire_clarification/{identifier}/adds/attachments
Path parameters
identifierrequiredstring |
Responses
200Add an Attachment to a MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request POST \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Removes a late evidence document from a clarification point
POST/api/media/questionnaire_clarification/{identifier}/deletes/attachments
Path parameters
identifierrequiredstring |
Responses
200Remove an Attachment from a MediaQuestionnaireClarificationMediaQuestionnaireClarification
Show fields (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimary key of the questionnaire clarification. Internal ID.
content_keystringStable key of the question (MediaQuestionnaireContent::$contentKey), copied from the content answer
titlestringTitle of the question, copied from the content answer (or a free title for manual points)
sourcestringAI or MANUAL
ai_verdictstringRating of the AI after the comparison: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null if the AI gave none)
ai_scoreintegerDegree of fulfilment 0-100 given by the AI
ai_reasoningstringWhy the AI rated the answer this way (what is missing)
questionstringThe question to ask the customer (generated by the AI, editable)
responsestringWhat the customer answered (notes of the interview)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanTrue while the AI re-evaluates the point
ai_suggested_verdictstringSuggestion of the AI re-evaluation (response and late evidence included)
ai_suggestion_reasoningstringReasoning of the AI suggestion for the clarification.
final_verdictstringDecision of the auditor: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringNote of the auditor for the report
decided_atstring (date-time)Time the clarification was decided.
decided_bystringName of the user who decided the point
attachmentsarray<Attachment10>Late evidence handed in during the clarification
Show fields (25)
idintegerPrimary key of the attachment. Internal ID.
filenamestringOriginal file name.
filesizestringSize of the file in bytes.
mimetypestringMIME type of the file.
createdbyusernamestringName of the user who uploaded the file, as text.
createdstring (date-time)Point in time the attachment was created.
googleidstringID of the file in Google Drive.
scopestringScope that controls who can see the attachment.
ocr_document_typestringDocument type recognized by OCR.
ocr_from_namestringSender name recognized by OCR.
ocr_from_companystringSender company recognized by OCR.
ocr_from_addressstringSender address recognized by OCR.
ocr_from_emailstringSender e-mail address recognized by OCR.
ocr_from_phonestringSender phone number recognized by OCR.
ocr_to_namestringRecipient name recognized by OCR.
ocr_to_companystringRecipient company recognized by OCR.
ocr_to_addressstringRecipient address recognized by OCR.
ocr_to_emailstringRecipient e-mail address recognized by OCR.
ocr_to_phonestringRecipient phone number recognized by OCR.
ocr_summarystringSummary of the document created by OCR.
ocr_statusstringOCR processing status: null=not processed, pending, processing, done, error
ocr_errorstringReason of the last failed or incomplete OCR run, null when it went through
ocr_processed_atstring (date-time)Point in time OCR processing finished.
virus_checkedboolean1 once the virus scan has passed for this file. The scan runs in the background (AttachmentVirusScanCommand), so a freshly uploaded file starts at 0 and stays there until it was really checked. An infected file never reaches 1 - it is deleted instead. UIs use this to decide whether a file may be handed to a user, so it must stay false until proven otherwise.
virus_checked_atstring (date-time)When the virus scan passed. Null while the file is still waiting.
view_orderintegerSort order of the clarification in lists.
createdstring (date-time)Point in time the entity was created.
updatedstring (date-time)Point in time the entity was last updated.
deletedbooleanThis property is used to mark an entity as deleted / archived
curl --request POST \
--url https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart with package:http (no controller in the iw_erp_api package)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://your-instance.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}