# Submit advice This operation accepts a PDF along with the business case information, which is to be included as XML attachment. The provided PDF must not contain an XML attachment. Ideally the PDF conforms to the PDF/A-3b, if not, conversion is attempted. Please note that PDF format conversion may fail due to various technical reason. Endpoint: POST /api/v1/business-cases/advice/multipart Version: 1.1 Security: X-API-Key ## Query parameters: - `processingMode` (string, required) STAGE: BusinessCase gets validated and staged (proceed via web UI), DELIVER: BusinessCase gets validated, processed and delivered to the bill recipient Enum: "STAGE", "DELIVER" ## Request fields (multipart/form-data): - `file` (string, required) PDF file - `advice` (object, required) Advice - `advice.referenceNumber` (string, required) - `advice.businessCaseDate` (string, required) - `advice.totalAmount` (object, required) The amount of the business case (amount incl. VAT + currency code, e.g. CHF 1183.46). Must be matching with the total amount (totalAmount), if business case is an invoice, reminder or donation inquiry. - `advice.totalAmount.value` (number) - max. 99'999'999.99 for invoices, payments by instalments, reminders, credit notes and donation inquiries - min. - 99'999'999.99, max 99'999'999.99 for advices - Amount must be greater than 0 for invoices, payments by instalments, reminders and donation inquiries. - Amount must be ≥ 0 for credit notes. - If an IBAN or QR-IBAN is used for invoices or payments by instalments, the amount does not have to be supplied (compatibility QR invoice). - `advice.totalAmount.currencyCode` (string, required) Currency code according to ISO 4217. When using QR-IBAN, only CHF and EUR are allowed. - `advice.referencedBill` (object) - `advice.billRecipient` (object, required) - `advice.billRecipient.emailAddress` (string) - `advice.billRecipient.enterpriseIdentificationNumber` (string) - `advice.billRecipient.billRecipientSixId` (string) - `advice.billRecipient.name` (string, required) - `advice.billRecipient.address` (object, required) - `advice.billRecipient.address.structuredAddress` (object) - `advice.billRecipient.address.structuredAddress.street` (string) - `advice.billRecipient.address.structuredAddress.buildingNumber` (string) - `advice.billRecipient.address.structuredAddress.city` (string, required) - `advice.billRecipient.address.structuredAddress.postalCode` (string, required) - `advice.billRecipient.address.structuredAddress.countryCode` (string, required) Two-letter ISO country code according to ISO 3166-1. - `advice.workflow` (object) Information about the workflow. Auxiliary data that can be used for pre-registering a business case in bill recipients ERP/bookkeeping. - `advice.workflow.vatEnterpriseIdentificationNumbers` (object) Value Added Tax Enterprise Identification Numbers (VAT-UIDs) of the invoice issuer - `advice.workflow.vatEnterpriseIdentificationNumbers.vatEnterpriseIdentificationNumber` (array) VAT-UID of the invoice issuer. Presentation without punctuation (e.g. CHE123456789MWST). - `advice.workflow.deliveryDateStart` (string) Start date of the service provision, in case it is different than deliveryDateEnd - `advice.workflow.deliveryDateEnd` (string) Delivery date or end date of the service provision - `advice.workflow.netAmount` (object) Total invoice amount without VAT (e.g. CHF 1095.80) - `advice.workflow.amountPaid` (object) Sum of the amount that was paid by the invoice recipient in advance (without VAT-relevant advance invoice). The outstanding total invoice amount to be paid corresponds to the element "totalAmount". - `advice.workflow.vatRates` (object) Grouping of VAT rates - `advice.workflow.vatRates.vatRate` (array, required) VAT information per VAT rate - `advice.workflow.vatRates.vatRate.percentage` (number) VAT rate in percent (example: 8%) - `advice.workflow.vatRates.vatRate.taxBaseAmount` (object) Tax base amount (example: CHF 1095.80) - `advice.workflow.vatRates.vatRate.taxAmount` (object) Amount of a tax to be owed (example: CHF 87.66) - `advice.workflow.caseReferenceForBillRecipient` (string) Association reference to be used by the invoice recipient to allocate the business case in his bookkeeping. ## Response 201 fields (application/json): - `id` (integer, required) A unique SIX ID for this business case. Property must not be given when creating a new business case. Example: "BCID0FB909852BBC4D06AD8336AAE87D7FC9" - `type` (string, required) the type of the business case Enum: "Bill", "InstalmentBill", "Advice", "CreditNote", "Reminder", "DonationInquiry" - `billerSixId` (string, required) Biller SIX ID Example: "BIID0000123456" - `referenceNumber` (string) A business case reference given by the biller. Must be unique in combination with the billerId. Example: "2018-123456-22" - `referencedBill` (object) The business case can only reference bills or instalment bills. - `referencedBill.businessCaseSixId` (string) Business Case SIX ID Example: "BCID0FB909852BBC4D06AD8336AAE87D7FC9" - `referencedBill.referenceNumber` (string, required) The reference number of the referenced bill. Example: "2018-123456-22" - `businessCaseDate` (string, required) The business case date (ISO-8601 format), can not be more than 90 days in the past on the date it was created. Cannot be in the future. Example: "Fri Dec 22 01:00:00 CET 2017" - `status` (string) the status of the business case Enum: "OPEN", "APPROVED", "REJECTED", "COMPLETED" - `processingStatus` (string) the processing status of the business case Enum: "STAGED", "INVALID", "PROCESSING", "FAILED", "DELIVERED" - `totalAmount` (object, required) An amount whose value may be omitted. - `totalAmount.value` (number) The amount value. Take care when using JavaScript libraries to parse this value - it should be treated as a financial amount and therefore not as a floating point number but rather using a precise decimal representation (like BigDecimal in Java). : : Example: 99.99 - `totalAmount.currencyCode` (string, required) The amount currency code according to ISO-4217. Example: "CHF" ## Response 400 fields (application/json): - `status` (integer) The HTTP status code generated by the origin server for this occurrence of the problem. Example: 400 - `message` (string) A human readable explanation specific to this occurrence of the problem. Example: "The submitted request contains invalid or missing data which can not be processed." - `fieldErrors` (array) - `fieldErrors.fieldName` (string) the name of the field with the error Example: "localizedData.ger.address.city" - `fieldErrors.message` (string) the message describing the error Example: "size must be between 1 and 35" - `fieldErrors.rejectedValue` (string) the provided value which was rejected if available Example: "Very Long Invalid City Name Which Is Rejected"