> For the complete documentation index, see [llms.txt](https://docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verifone.com/api-reference/open-api-references/order-service/specification/maintenance-orders.md).

# Maintenance Orders

Operations to manage maintenance orders.

## POI Maintenance Order Request

> Submits a POI Maintenance Order Request

```json
{"openapi":"3.0.0","info":{"title":"Verifone Order Internal API","version":"2.63.1-SNAPSHOT"},"tags":[{"name":"Maintenance Orders","description":"Operations to manage maintenance orders."}],"servers":[{"url":"https://api.verifone.com"}],"paths":{"/pois/orders/maintenance/{poiUid}":{"post":{"tags":["Maintenance Orders"],"summary":"POI Maintenance Order Request","description":"Submits a POI Maintenance Order Request","operationId":"poiMaintenanceOrderRequest","requestBody":{"description":"Maintenance Order details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoiMaintenanceOrder"}}}},"responses":{"201":{"description":"Create POI Maintenance Order Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PoiMaintenanceOrderResponse"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"503":{"$ref":"#/components/responses/503"},"504":{"$ref":"#/components/responses/504"}},"parameters":[{"name":"poiUid","in":"path","description":"The assigned ID corresponding for the POI.","required":true,"style":"simple","explode":false,"schema":{"$ref":"#/components/schemas/PoiUid"}}]}}},"components":{"schemas":{"PoiMaintenanceOrder":{"type":"object","allOf":[{"$ref":"#/components/schemas/BaseOrderData"},{"properties":{"maintenanceType":{"type":"string","enum":["Swapout","Recovery"]},"deliveryPackage":{"$ref":"#/components/schemas/BundleAndData"}}}],"required":["maintenanceType"]},"BaseOrderData":{"type":"object","properties":{"orderReference":{"$ref":"#/components/schemas/OrderReference"},"customerEntityUid":{"type":"string","format":"uuid","description":"Verifone allocated ID for the customer this order is for (packages and bundles are associated with this entity)."},"requestedDate":{"type":"string","description":"The requested date for this order.","format":"date-time"},"deferredOrderProcessingDate":{"type":"string","format":"date-time","description":"Defers order processing until the specified ISO 8601 UTC datetime (e.g. 2026-06-20T09:00:00Z). The workflow will not start before this point. If absent, processing begins immediately."},"poRef":{"type":"string","description":"Purchase Order Reference"},"paymentDetails":{"$ref":"#/components/schemas/PaymentDetails"},"notes":{"type":"string","description":"Notes for the Order"},"additionalOrderData":{"type":"array","description":"Input data which maybe required for the country/business unit to to complete the order. For example some countries require a VAT ID, or different legal forms of business, this will be defined by Verifone if needed for your integration","maxItems":100,"items":{"$ref":"#/components/schemas/VariableResponseType"}}},"required":["orderReference","customerEntityUid"]},"OrderReference":{"description":"Client reference for the Order.","type":"string","minLength":1},"PaymentDetails":{"description":"Details of how the order will be paid, and the further re-occuring billing for services.","type":"object","properties":{"paymentType":{"type":"string","description":"Type of payment that can be made.","default":"CREDIT"}},"discriminator":{"propertyName":"paymentType","mapping":{"ACCOUNT":"#/components/schemas/PaymentDetailsAccount","CREDIT":"#/components/schemas/PaymentDetailsCredit","NET":"#/components/schemas/PaymentDetailsNET","EINVOICE":"#/components/schemas/PaymentDetailsEInvoice"}},"required":["paymentType"],"oneOf":[{"title":"ACCOUNT","allOf":[{"$ref":"#/components/schemas/PaymentDetailsAccount"}]},{"title":"CREDIT","allOf":[{"$ref":"#/components/schemas/PaymentDetailsCredit"}]},{"title":"NET","allOf":[{"$ref":"#/components/schemas/PaymentDetailsNET"}]},{"title":"EINVOICE","allOf":[{"$ref":"#/components/schemas/PaymentDetailsEInvoice"}]}]},"PaymentDetailsAccount":{"allOf":[{"$ref":"#/components/schemas/PaymentDetails"},{"properties":{"accountType":{"$ref":"#/components/schemas/PaymentAccountType"},"accountCurrency":{"$ref":"#/components/schemas/CurrencyCodeEnum"},"institutionName":{"type":"string","description":"Name of the institution where the account is held."},"accountName":{"type":"string","description":"Name of the account as known by the financial institution operating the account."},"sortCode":{"type":"string","description":"The Routing Number for the bank account. Also referred to as the UK Sorting Code identifier, range from 4 to 6 chars, e.g. [xxxx or xxxxx or xxxxxx].","pattern":"^[0-9]{4,6}$"},"bsb":{"type":"string","description":"An Australian/New Zealand term for the Bank State Branch indicator. It is a 6 digit value constructed with the first 2 digits identifying the bank.","pattern":"^[0-9]{6,6}$"},"routingTransitNumber":{"type":"string","description":"routing transit number for the bank account. A routing transit number is a nine-digit number used to identify a bank or financial institution when clearing funds or processing checks. Established by the American Bankers Association (ABA)","pattern":"^[0-9]{9,9}$"},"accountNumber":{"type":"string","description":"The Number of the account"},"accountAddress":{"$ref":"#/components/schemas/BaseAddress"},"ean":{"type":"string","description":"EAN Reference, thirteen digit reference","pattern":"^[0-9]{13,13}$"},"iban":{"$ref":"#/components/schemas/IBANIdentifier"},"bic":{"$ref":"#/components/schemas/BICIdentifier"}}}],"required":["accountType","accountCurrency","accountName","accountNumber","institutionName"]},"PaymentAccountType":{"type":"string","enum":["CHEQUE","SAVINGS","TRANSMISSION","BANKGIRO"]},"CurrencyCodeEnum":{"title":"Currency Code","description":"Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond\nto [ISO 4217](https://wikipedia.org/wiki/ISO_4217).\n\n**Deprecated:** `BYR` (replaced by BYN), `FRF` (replaced by EUR), `LTL` (replaced by EUR), `LVL` (replaced by EUR), `MRO` (replaced by MRU), `STD` (replaced by STN), `USS` (no replacement), `VEF`  (replaced by VES), `ZMK` (replaced by ZMV) and `BTC` (Bitcoin only supported as Crypto Amount).","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BYR","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","FRF","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STD","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","USS","UYI","UYU","UYW","UZS","VEF","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMK","ZMW","ZWL","BTC"]},"BaseAddress":{"description":"An Address following the convention of http://microformats.org/wiki/hcard","type":"object","properties":{"receiverName":{"type":"string","minLength":1,"description":"The receiver name for the address if different to the company/site name."},"addressLine1":{"minLength":1,"maxLength":40,"type":"string","description":"Address Line 1. Should include street and apartment number if required."},"addressLine2":{"maxLength":40,"type":"string","description":"Address Line 2"},"addressLine3":{"maxLength":40,"type":"string","description":"Address Line 3"},"poBox":{"type":"string","description":"The PO BOX number."},"city":{"minLength":1,"maxLength":28,"type":"string","description":"Name of a built-up area, with defined boundaries, and a local government. This could be city or town."},"countrySubdivision":{"maxLength":35,"minLength":1,"type":"string","description":"Identifies a sub-division of a country which may be state, region or county. This follows a similar format to the openbank api."},"postCode":{"$ref":"#/components/schemas/PostCode"},"country":{"$ref":"#/components/schemas/CountryCode3Enum"},"timeZone":{"$ref":"#/components/schemas/TimeZone"}}},"PostCode":{"description":"Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.","type":"string","minLength":1,"maxLength":16},"CountryCode3Enum":{"title":"Country Code","type":"string","description":"The [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country code.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as is used in that country's top-level domain names.</blockquote>.","enum":["ZZZ","ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BSB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGC","SGP","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WSM","YEM","ZAF","ZMB","ZWE"]},"TimeZone":{"description":"A time zone, following the format defined in the IANA tz database (https://www.iana.org/time-zones). Valid examples are America/New_York and Etc/UTC. Do not use ambiguous, non-qualified values such as EST or GB. Before including this type in your interface, please consider whether it is actually appropriate to convey time zone information with your type. It is almost always the case that this should be transformed from UTC at the time of display to the user; this type might therefore be most associated with user-preference APIs.","type":"string","minLength":1,"maxLength":127},"IBANIdentifier":{"title":"IBAN","description":"International Bank Account Number (ISO 13616-1:2007).\n The use of an IBAN is mandated for all SEPA transactions.\nThere are 66 countries that support this format. The length will vary by country. Norway has the shortest format, 15 characters, currently Malta is the longest with 31 characters.\n","type":"string","pattern":"^[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"},"BICIdentifier":{"title":"Bank Identifier Code","type":"string","description":"International Bank Identifier Code Format.\nThe Bank Identifier Code or SWIFT Code ,this can also be referred to as the CHIPS, NCC, VSC or IFSC depending on your location. Made up of 8 or 11 characters .The 3 main parts include: BankCode(4), Country Code(2) and Location (2).\nOptionally the branch identifier is a 3 character optional element that can supplement the 8 character BIC.\n[ISO 9362](https://www.iso.org/standard/84108.html)","pattern":"^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$","maxLength":11},"PaymentDetailsCredit":{"allOf":[{"$ref":"#/components/schemas/PaymentDetails"},{"properties":{"accountType":{"$ref":"#/components/schemas/PaymentAccountType"},"accountCurrency":{"$ref":"#/components/schemas/CurrencyCodeEnum"},"creditAmountRequested":{"description":"Amount of credit to be requested.","type":"number","format":"float"},"purchaseOrderReference":{"type":"string","description":"Purchase Order Reference."},"existingCustomerLegalName":{"type":"string","description":"Existing Customer Legal Name."},"references":{"type":"array","description":"List of references.","maxItems":50,"items":{"$ref":"#/components/schemas/ReferenceContactType"}}}}],"required":["accountType","accountCurrency"]},"ReferenceContactType":{"description":"Company and contact details for reference","type":"object","properties":{"contact":{"$ref":"#/components/schemas/ContactType"},"companyName":{"type":"string","description":"Name of the company."},"accountNumber":{"type":"string","description":"The account Number of the reference"},"referenceType":{"type":"string","description":"Type of reference.","enum":["BANK","TRADE"]}},"required":["contact","companyName","referenceType"]},"ContactType":{"description":"The details of a Contact.","type":"object","properties":{"contactType":{"$ref":"#/components/schemas/ContactTypeEnum"},"name":{"$ref":"#/components/schemas/ContactName"},"phoneNumbers":{"description":"The phone numbers to be used for the Contact. If you include this property there should be at least one phone number.","items":{"$ref":"#/components/schemas/Phone"},"minItems":1,"uniqueItems":true,"type":"array"},"email":{"$ref":"#/components/schemas/EmailAddress"},"businessTitle":{"$ref":"#/components/schemas/BusinessTitle"}},"required":["contactType","name"]},"ContactTypeEnum":{"title":"Contact Type","description":"An indicator for the type of contact.\n\n|Value|Description|\n|----|-----------|\n|BUSINESS|Generic business contact information, e.g. info@example.com|\n|DISPUTE_HANDLING|Generic contact information specific to dispute handling, e.g. disputes@example.com|\n|OWNER|Individual contact information of the owner of the Entity, e.g. ben.jerry@example.com|\n|PERSONAL|Personal contact information of the person representing the Entity, e.g. bjerr83@example-personal-email-domain.com|","type":"string","enum":["BUSINESS","DISPUTE_HANDLING","OWNER","PERSONAL"],"default":"BUSINESS"},"ContactName":{"allOf":[{"$ref":"#/components/schemas/Name"}]},"Name":{"title":"Name Details","description":"An object representing the name or component names of a party, person or business. No elements are mandatory due to the different usages, but the business rules need to be applied in the context where name is used.","type":"object","uniqueItems":false,"properties":{"firstName":{"description":"The given name of contact.","type":"string","minLength":1,"maxLength":120},"lastName":{"description":"The surname name or family name of the contact. This is required when the name is for a party or person. Can also include the matronymic or mother's family name where this is customarily used.","minLength":1,"maxLength":120,"type":"string"},"prefix":{"description":"The prefix to the party name. This is sometimes referred to as a title, salutation or appellation.","maxLength":120,"type":"string"},"alternateFullName":{"description":"The alternate name for the party. This can be a business name or nickname. This should be used where the name of the party cannot be parsed into its constituent parts such as first name or last name. If the party is a business then this should always be present.","maxLength":200,"type":"string"},"middleName":{"description":"The middle name or names for a party or person.","maxLength":120,"type":"string"},"suffix":{"description":"The name suffix for the party.","maxLength":120,"type":"string"}},"required":["firstName","lastName"]},"Phone":{"title":"Phone number","description":"A simple Phone Number","type":"object","additionalProperties":false,"properties":{"callingCode":{"description":"Country Calling Code. Mapped to PARTY_PHONE.CALLING_CODE or VENUE_PHONE.CALLING_CODE","type":"string"},"value":{"description":"The actual phone number less country code and/or extension.","type":"string","minLength":5},"extension":{"description":"The internal extension number where applicable or known.","type":"string"},"isPrimary":{"description":"Indicates that the phone is a the primary phone. Mapped to PARTY_PHONE_PRIMARY","type":"boolean","default":false},"phoneType":{"$ref":"#/components/schemas/PhoneTypeEnum"}},"required":["value","phoneType"]},"PhoneTypeEnum":{"title":"Phone Type","description":"Phone type in PHONE_TYPE_CON. Mapped to PARTY_PHONE.PHONE_TYPE_CON_ID or VENUE_PHONE.PHONE_TYPE_CON_ID","type":"string","enum":["HOME","MOBILE","WORK","FAX","OTHER"],"default":"HOME"},"EmailAddress":{"title":"Email Address","maxLength":254,"minLength":3,"type":"string","format":"email","pattern":"^[a-zA-Z0-9!#$%&'*+=?^_`{|}~.-]+@[a-zA-Z0-9-]+[.].+$","description":"A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1."},"BusinessTitle":{"type":"string","maxLength":100},"PaymentDetailsNET":{"allOf":[{"$ref":"#/components/schemas/PaymentDetails"}]},"PaymentDetailsEInvoice":{"allOf":[{"$ref":"#/components/schemas/PaymentDetails"},{"properties":{"bankPartnerName":{"type":"string","description":"The banking partner used in conjunction with the billing details to perform e-invoicing."},"gln":{"type":"string","description":"The Global Location Number (GLN) to be captured when E-Invoice payment method is used for the Sweden Portfolio.","pattern":"^[0-9]{13}$"},"eAddress":{"type":"string","description":"This is required for Finnish customers who have opted to receive invoices electronically."}}}]},"VariableResponseType":{"description":"Variable/Value Pairs.","type":"object","properties":{"variableName":{"type":"string","description":"Variable name (this would be provided by Verifone)","pattern":"^[A-Za-z0-9_-]*$"},"variableValue":{"type":"string","maxLength":10000,"description":"Value of the variable"}}},"BundleAndData":{"type":"object","properties":{"packageBundleId":{"$ref":"#/components/schemas/PackageBundleId"},"additionalPackageData":{"type":"array","description":"Input data required to configure the package. For example some packages require a merchant ID.","maxItems":50,"items":{"$ref":"#/components/schemas/VariableResponseType"}}},"required":["packageBundleId"]},"PackageBundleId":{"description":"The Verifone allocated ID for the package bundle.","type":"string","pattern":"^[A-Za-z0-9_-]*$","maxLength":100},"PoiMaintenanceOrderResponse":{"allOf":[{"$ref":"#/components/schemas/PoiMaintenanceOrder"},{"properties":{"orderId":{"$ref":"#/components/schemas/OrderId"},"status":{"$ref":"#/components/schemas/OrderStatusEnum"},"createdUserUid":{"$ref":"#/components/schemas/CreatedUserId"},"createdBy":{"$ref":"#/components/schemas/UserName"},"createdDate":{"type":"string","description":"The created date for this order.","format":"date-time"},"modifiedUserUid":{"description":"The assigned User_ID corresponding to the Order Modified By.","type":"string","format":"uuid"},"modifiedBy":{"$ref":"#/components/schemas/UserName"},"modifiedDate":{"type":"string","description":"The last modified date for this order.","format":"date-time"},"orderType":{"type":"string","default":"POIMaintenanceOrder"},"entityUid":{"$ref":"#/components/schemas/EntityUid"},"merchantCompanyEntityUid":{"$ref":"#/components/schemas/MerchantCompanyEntityUid"},"merchant":{"$ref":"#/components/schemas/MerchantNameWrapper"},"internal":{"$ref":"#/components/schemas/InternalAllocatedInformation"}}}],"required":["orderId","status","orderType"]},"OrderId":{"description":"Verifone allocated ID for the Order.","type":"string","format":"uuid"},"OrderStatusEnum":{"type":"string","enum":["DRAFT","SUBMITTED","INPROGRESS","COMPLETED","CANCELLED","ONHOLD"]},"CreatedUserId":{"description":"The assigned User ID corresponding to the Order Created By.","type":"string","format":"uuid"},"UserName":{"description":"The username of the person who's UID is represented, e.g. \"John/Jane Smith\".","type":"string","minLength":1},"EntityUid":{"description":"The Verifone allocated unique id for this site.","type":"string","format":"uuid"},"MerchantCompanyEntityUid":{"description":"The Verifone allocated unique ID for this merchant company.","type":"string","format":"uuid"},"MerchantNameWrapper":{"description":"Simple Wrapper object for Merchant Name.Used by UI.","type":"object","properties":{"merchantName":{"$ref":"#/components/schemas/MerchantName"}}},"MerchantName":{"description":"The primary merchant name, e.g. \"McDonalds\".","type":"string","pattern":"^(?!\\\\s*$).+","minLength":1,"maxLength":100},"InternalAllocatedInformation":{"description":"Internally allocated identifiers. This is for verifone use only and is subject to change.","type":"object","properties":{"oracleOrderNumber":{"description":"The order number which Oracle allocated as part of the order.","type":"number"},"oracleShippingTrackingReference":{"description":"The order shipping reference which Oracle allocated as part of the order.","type":"string"},"kycReportUid":{"description":"KYC report generated for this order.","type":"string","format":"uuid"},"tokenScopeUid":{"description":"Token scope generated for this order.","type":"string","format":"uuid"},"extendedDetails":{"$ref":"#/components/schemas/ExtendedDetails"},"orderStats":{"$ref":"#/components/schemas/OrderStats"},"vmssApplication":{"$ref":"#/components/schemas/VmssApplication"},"salesforceApplicationId":{"description":"The Application ID allocated by Salesforce.","type":"string"},"signingInformation":{"$ref":"#/components/schemas/SigningInformation"},"econtractNotificationReminder":{"description":"E-Contract Notification Reminder Sent Details.","$ref":"#/components/schemas/NotificationReminder"},"draftNotificationReminder":{"description":"Draft Notification Reminder Sent Details.","$ref":"#/components/schemas/NotificationReminder"},"notificationReminders":{"description":"A container for all supported notification reminders.","$ref":"#/components/schemas/NotificationReminders"},"customerOrderLink":{"description":"Details of Customer Order Link.","$ref":"#/components/schemas/CustomerOrderLink"},"cancellationHistory":{"type":"array","description":"List of cancellation records for the customer order.","items":{"$ref":"#/components/schemas/OrderCancellation"}},"externalOnboarding":{"type":"object","description":"External merchant onboarding details","$ref":"#/components/schemas/ExternalOnboarding"}}},"ExtendedDetails":{"description":"Detailed Status of the Order","type":"object","properties":{"status":{"$ref":"#/components/schemas/DetailedStatusEnum"},"code":{"type":"string","description":"Code associated with the status (if applicable)"},"information":{"type":"string","description":"Extra Information associated with the status (if applicable)"},"lastChangeTime":{"$ref":"#/components/schemas/LastChangeTime"},"canCancel":{"type":"boolean","description":"Can this order be cancelled."}}},"DetailedStatusEnum":{"description":"An order will be in one of the following states.","type":"string","enum":["DRAFT","SUBMITTED","INPROGRESS","PENDING_THIRD_PARTY","PENDING_SIGNATURE","UNDER_REVIEW","REQUIRES_ATTENTION","INTERNAL_BOARDING","FULFILMENT_BOOKED","FULFILMENT_PICKED","FULFILMENT_SHIPPED","CANCEL_REQUESTED","CANCEL_INPROGRESS","CANCEL_ERROR","CANCELED_BYUSER","COMPLETED","CANCELLED","DECLINED","ONHOLD","OFFER_SENT","OPENED_BY_CUSTOMER","INPROGRESS_BY_CUSTOMER","DOCS_REQUIRED","DOCS_REQUIRES_ATTENTION"]},"LastChangeTime":{"description":"Time status detailed status last changed.","type":"string","format":"date-time"},"OrderStats":{"type":"object","description":"Order Statistics","properties":{"minsSinceCreatedToLastUpdate":{"type":"integer","description":"Number of minutes since last status update and created order time","default":0},"minsSinceLastStatusUpdate":{"type":"integer","description":"Number of minutes (if > 0) since last status update","default":0}}},"VmssApplication":{"type":"object","properties":{"visaStatus":{"$ref":"#/components/schemas/VmssSchemeStatus"},"visaMatches":{"$ref":"#/components/schemas/VmssSchemeMatches"},"mcdStatus":{"$ref":"#/components/schemas/VmssSchemeStatus"},"mcdMatches":{"$ref":"#/components/schemas/VmssSchemeMatches"},"mcdTransactionReference":{"type":"string","description":"Reference to the status check to mastercard"}}},"VmssSchemeStatus":{"description":"Scheme Status","type":"string","enum":["NA ","PENDING","ERROR","COMPLETE"]},"VmssSchemeMatches":{"description":"Number of matches found against the VMSS service.","type":"number"},"SigningInformation":{"description":"Information on the signing request.","type":"object","properties":{"provider":{"type":"string","description":"Signing Provider used","enum":["SIGNICAT","ADOBE","DOKOBIT"]},"providerRef":{"type":"string","description":"Signing Provider reference to the signing request"},"signedFileUrl":{"type":"string","description":"URL to the signed file"},"signingRequests":{"type":"array","items":{"$ref":"#/components/schemas/SignersInformation"}}},"required":["provider","providerRef"]},"SignersInformation":{"description":"Information on the signers in the request.","type":"object","properties":{"providerRef":{"description":"Signing Provider reference to the signers signing request.","type":"string"},"contact":{"$ref":"#/components/schemas/ContactType"},"signed":{"description":"Has the signer signed the contract.","type":"boolean","default":false},"signedDateTime":{"description":"Date/Time signer signed the request.","type":"string","format":"date-time"},"signingLink":{"description":"This is the link used for signing the contract.","type":"string"}},"required":["contact"]},"NotificationReminder":{"description":"Notification Reminder Sent Details","type":"object","properties":{"lastNotificationSentDateTime":{"description":"Date and Time of the last notification sent. Defaulted to `createdDateTime` on first saved order.","type":"string","format":"date-time"},"notificationCount":{"description":"Number of notifications sent. -1 = Unsubscribed, or 1, 2, 3 as per the notification sent.","type":"integer"},"templateName":{"description":"NotificationTemplate Name used, e.g. `T650P_WELCOME`","type":"string"},"notifications":{"description":"List of notifications, each with the date-time sent and the template used.","type":"array","items":{"$ref":"#/components/schemas/Notification"}}}},"Notification":{"description":"Object containing the sent date-time and template used for the notification.","type":"object","properties":{"sentDateTime":{"description":"Date and Time when the notification was sent.","type":"string","format":"date-time"},"template":{"description":"Template name used for the notification.","type":"string"},"responseReferenceId":{"description":"An ID from Messaging Service's response.","type":"string"}}},"NotificationReminders":{"description":"A container for all supported notification reminders.","type":"object","properties":{"econtract":{"$ref":"#/components/schemas/NotificationReminder"},"draft":{"$ref":"#/components/schemas/NotificationReminder"},"docRequired":{"$ref":"#/components/schemas/NotificationReminder"}},"additionalProperties":false},"CustomerOrderLink":{"description":"Customer Order Link Sent Details","type":"object","properties":{"orderLink":{"description":"The unique order link sent to the customer to help them navigate directly to the relevant  step in the order process. This link ensures the customer can update their order efficiently.\n","type":"string","format":"uri"},"linkInitiatorUserUid":{"description":"The unique User ID of the user who generated the order link.","type":"string","format":"uuid"},"linkInitiatorUsername":{"$ref":"#/components/schemas/UserName"},"linkReceiverUserUid":{"description":"The unique User ID of the customer who received the order link.","type":"string","format":"uuid"},"linkReceiverUsername":{"$ref":"#/components/schemas/UserName"},"linkSendTime":{"description":"Date and time when the order link was sent to the customer.  This represents when the system triggered the link delivery.\n","type":"string","format":"date-time"},"linkOpendByCustomerTime":{"description":"Date and time when the order link was opened by the customer.\n","type":"string","format":"date-time"},"customerUpdateTime":{"description":"Date and time when the customer last updated their order after using the order link.\n","type":"string","format":"date-time"}}},"OrderCancellation":{"type":"object","properties":{"cancelReasonEnum":{"$ref":"#/components/schemas/CancelReasonEnum"},"cancelAdditionalReason":{"$ref":"#/components/schemas/CancelAdditionalReason"},"cancelledUserUid":{"description":"Unique identifier (UUID) of the user who performed the cancellation.","type":"string","format":"uuid"},"cancelledBy":{"$ref":"#/components/schemas/UserName"},"cancelledDate":{"type":"string","description":"Date and time when the order was cancelled, in UTC.","format":"date-time"}},"required":["cancelReasonEnum"]},"CancelReasonEnum":{"description":"Reason for order cancellation.","type":"string","enum":["ADMIN_REASON","RELATED_PO_CHANGES","WRONG_PRODUCT","ORDER_LATE","OTHER"]},"CancelAdditionalReason":{"description":"Free-Form reason for order cancellation.","type":"string"},"ExternalOnboarding":{"description":"External merchant onboarding details","type":"object","discriminator":{"propertyName":"provider","mapping":{"BANKAXEPT":"#/components/schemas/BankAxeptExternalOnboarding"}},"properties":{"provider":{"title":"External Onboarding Provider","description":"The third-party provider used for merchant onboarding.","type":"string","enum":["BANKAXEPT"],"default":"BANKAXEPT"},"agreementId":{"type":"string","format":"uuid","description":"Agreement or onboarding order identifier returned by the third-party provider when onboarding is initiated.\n"},"agreementStatus":{"type":"string","description":"Latest onboarding or agreement status received from the third-party provider.\n"}},"oneOf":[{"title":"BANKAXEPT","allOf":[{"$ref":"#/components/schemas/BankAxeptExternalOnboarding"}]}]},"BankAxeptExternalOnboarding":{"title":"Bank Axept External Onboarding","description":"Bank Axept specific external merchant onboarding details","type":"object","allOf":[{"$ref":"#/components/schemas/ExternalOnboarding"},{"properties":{"merchantId":{"type":"string","description":"Merchant ID / Bax Id."}}}]},"httpError400":{"title":"HTTP 400 Error","type":"object","description":"The request could not be understood by the server due to malformed syntax.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"ErrorResp":{"title":"Error","description":"A common Error object returned as part of the API layer.\n\n. This is modified to become the base class for all of the derived HTTP Error Responses.","type":"object","properties":{"reversalStatus":{"description":"Indicates to the API client if a technical reversal is required or has been completed by Verifone.\n\n|Value|Description|\n|-|-|\n|NONE|Reversal status is not set. This indicates the status of reversal processing is not known and the client should implement default reversal processing.|\n|REQUIRED|A reversal is required by the client.|\n|COMPLETED|A reversal has been completed by verifone or a reversal is not required for this transaction.|","type":"string","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"}},"required":["code"]},"httpError401":{"title":"HTTP 401 Error","type":"object","description":"The request must be authenticated to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError403":{"title":"HTTP 403 Error","type":"object","description":"The request must be authorised to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError404":{"title":"HTTP 404 Error","type":"object","description":"The server cannot find the requested resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError429":{"title":"HTTP 429 Error","type":"object","description":"The resource exists the number of requests has exceeded the specified quota.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["429"],"default":"429"},"title":{"type":"string","enum":["Too Many Requests"],"default":"Too Many Requests"},"message":{"type":"string","default":"The number of requests from this client is restricted to a specified quota."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["RATE_LIMIT_ERROR"],"default":"RATE_LIMIT_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError500":{"title":"HTTP 500 Error","type":"object","description":"Unexpected Server Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError503":{"title":"HTTP 503 Error","type":"object","description":"Service Unavailable Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError504":{"title":"HTTP 504 Error","type":"object","description":"Gateway Timeout Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["504"],"default":"504"},"title":{"type":"string","enum":["Gateway Timeout"],"default":"Gateway Timeout"},"message":{"type":"string","default":"The server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"PoiUid":{"description":"The Verifone allocated unique id for this terminal/POI. This is allocated by Verifone when an order is initially received.","type":"string","format":"uuid"}},"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError400"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError401"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"403":{"description":"Forbidden Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpError403"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError404"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError429"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError500"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"503":{"description":"Service Not Available","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError503"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"504":{"description":"Service Timeout","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError504"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}}}}}
```

## Device Exchange

> Submits a device exchange request, recording the old device being sent for repair and the replacement device being exchanged in. Returns the DID associated with the replacement device.<br>

```json
{"openapi":"3.0.0","info":{"title":"Verifone Order Internal API","version":"2.63.1-SNAPSHOT"},"tags":[{"name":"Maintenance Orders","description":"Operations to manage maintenance orders."}],"servers":[{"url":"https://api.verifone.com"}],"paths":{"/devices/exchange":{"post":{"tags":["Maintenance Orders"],"summary":"Device Exchange","description":"Submits a device exchange request, recording the old device being sent for repair and the replacement device being exchanged in. Returns the DID associated with the replacement device.\n","operationId":"deviceExchange","requestBody":{"description":"Device exchange request details","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceExchangeRequest"}}}},"responses":{"200":{"description":"Device exchange processed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceExchangeResponse"}}}},"400":{"$ref":"#/components/responses/400"},"404":{"$ref":"#/components/responses/404"},"409":{"description":"Conflict — serial number / DID cross-validation mismatch.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["SN_DID_MISMATCH"]},"message":{"type":"string"}},"required":["code","message"]}}}},"500":{"$ref":"#/components/responses/500"},"503":{"$ref":"#/components/responses/503"}}}}},"components":{"schemas":{"DeviceExchangeRequest":{"type":"object","properties":{"oldDeviceSerialNumber":{"type":"string","description":"Serial number of the device being sent for repair / exchanged out."},"newDeviceSerialNumber":{"type":"string","description":"Serial number of the replacement device being exchanged in."},"priorityExchange":{"type":"boolean","description":"true = Advance Exchange (a new DID is assigned to the replacement device); false = Non-Priority Exchange (the existing DID is retained).\n"},"customerEntityUid":{"type":"string","format":"uuid","description":"Customer entity UID for profile lookup."}},"required":["oldDeviceSerialNumber","priorityExchange"]},"DeviceExchangeResponse":{"type":"object","properties":{"deviceId":{"type":"string","description":"The DID returned after the device exchange."}},"required":["deviceId"]},"httpError400":{"title":"HTTP 400 Error","type":"object","description":"The request could not be understood by the server due to malformed syntax.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"ErrorResp":{"title":"Error","description":"A common Error object returned as part of the API layer.\n\n. This is modified to become the base class for all of the derived HTTP Error Responses.","type":"object","properties":{"reversalStatus":{"description":"Indicates to the API client if a technical reversal is required or has been completed by Verifone.\n\n|Value|Description|\n|-|-|\n|NONE|Reversal status is not set. This indicates the status of reversal processing is not known and the client should implement default reversal processing.|\n|REQUIRED|A reversal is required by the client.|\n|COMPLETED|A reversal has been completed by verifone or a reversal is not required for this transaction.|","type":"string","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"}},"required":["code"]},"httpError404":{"title":"HTTP 404 Error","type":"object","description":"The server cannot find the requested resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError500":{"title":"HTTP 500 Error","type":"object","description":"Unexpected Server Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError503":{"title":"HTTP 503 Error","type":"object","description":"Service Unavailable Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false}},"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError400"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError404"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError500"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"503":{"description":"Service Not Available","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError503"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}}}}}
```

## Delete Repair Device

> Deletes the POI associated with the given device serial number from Entity-Service and removes the device record from VHQ. Both operations are attempted independently. Pre-condition failures (missing VHQ config, unknown customer) return 4xx before either operation is attempted. Operational results are embedded in the 200 response body.<br>

```json
{"openapi":"3.0.0","info":{"title":"Verifone Order Internal API","version":"2.63.1-SNAPSHOT"},"tags":[{"name":"Maintenance Orders","description":"Operations to manage maintenance orders."}],"servers":[{"url":"https://api.verifone.com"}],"paths":{"/devices/repair/{deviceSerialNumber}":{"delete":{"tags":["Maintenance Orders"],"summary":"Delete Repair Device","description":"Deletes the POI associated with the given device serial number from Entity-Service and removes the device record from VHQ. Both operations are attempted independently. Pre-condition failures (missing VHQ config, unknown customer) return 4xx before either operation is attempted. Operational results are embedded in the 200 response body.\n","operationId":"deleteRepairDevice","parameters":[{"name":"deviceSerialNumber","in":"path","required":true,"schema":{"type":"string","minLength":1,"pattern":"^[a-zA-Z0-9\\-_]+$"},"description":"Serial number of the device to delete."}],"responses":{"200":{"description":"Both operations were attempted. Check entityServiceStatus and vhqStatus for outcomes.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRepairDeviceResponse"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"description":"Customer entity or estate owner not found.","$ref":"#/components/responses/404"},"422":{"description":"VHQ boarding configuration incomplete.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}}},"500":{"$ref":"#/components/responses/500"},"503":{"description":"VHQ service unreachable.","$ref":"#/components/responses/503"}}}}},"components":{"schemas":{"DeleteRepairDeviceResponse":{"type":"object","properties":{"deviceSerialNumber":{"type":"string","description":"The serial number of the device targeted for deletion."},"entityServiceStatus":{"type":"string","enum":["SUCCESS","NOT_FOUND","FAILED"],"description":"Result of the Entity-Service POI deletion."},"entityServiceMessage":{"type":"string","description":"Error detail when entityServiceStatus is FAILED or NOT_FOUND. Multiple POI errors separated by semicolon."},"poiUidsDeleted":{"type":"array","items":{"type":"string","format":"uuid"},"description":"UUIDs of POI records successfully deleted from Entity-Service."},"vhqStatus":{"type":"string","enum":["SUCCESS","NOT_FOUND","FAILED","SKIPPED"],"description":"Result of VHQ device deletion. SKIPPED when vhqDeleteDevice configuration is false or null for this customer.\n"},"vhqMessage":{"type":"string","description":"Error detail when vhqStatus is FAILED."}},"required":["deviceSerialNumber","entityServiceStatus","vhqStatus"]},"httpError400":{"title":"HTTP 400 Error","type":"object","description":"The request could not be understood by the server due to malformed syntax.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["400"],"default":"400"},"title":{"type":"string","enum":["Bad Request"],"default":"Bad Request"},"message":{"type":"string","default":"The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"ErrorResp":{"title":"Error","description":"A common Error object returned as part of the API layer.\n\n. This is modified to become the base class for all of the derived HTTP Error Responses.","type":"object","properties":{"reversalStatus":{"description":"Indicates to the API client if a technical reversal is required or has been completed by Verifone.\n\n|Value|Description|\n|-|-|\n|NONE|Reversal status is not set. This indicates the status of reversal processing is not known and the client should implement default reversal processing.|\n|REQUIRED|A reversal is required by the client.|\n|COMPLETED|A reversal has been completed by verifone or a reversal is not required for this transaction.|","type":"string","enum":["NONE","REQUIRED","COMPLETED"],"default":"NONE"}},"required":["code"]},"httpError401":{"title":"HTTP 401 Error","type":"object","description":"The request must be authenticated to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["401"],"default":"401"},"title":{"type":"string","enum":["Unauthorised"],"default":"Unauthorised"},"message":{"type":"string","default":"The request requires client authentication."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError403":{"title":"HTTP 403 Error","type":"object","description":"The request must be authorised to access the resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["403"],"default":"403"},"title":{"type":"string","enum":["Forbidden"],"default":"Forbidden"},"message":{"type":"string","default":"The request requires client authorisation to access resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["AUTHENTICATION_ERROR"],"default":"AUTHENTICATION_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError404":{"title":"HTTP 404 Error","type":"object","description":"The server cannot find the requested resource.","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["404"],"default":"404"},"title":{"type":"string","enum":["Not Found"],"default":"Not Found"},"message":{"type":"string","default":"The server cannot find the requested resource."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["INVALID_REQUEST_ERROR"],"default":"INVALID_REQUEST_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError500":{"title":"HTTP 500 Error","type":"object","description":"Unexpected Server Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["500"],"default":"500"},"title":{"type":"string","enum":["Internal Server Error"],"default":"Internal Server Error"},"message":{"type":"string","default":"The server encountered an unexpected condition which prevented it from fulfilling the request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false},"httpError503":{"title":"HTTP 503 Error","type":"object","description":"Service Unavailable Error","allOf":[{"$ref":"#/components/schemas/ErrorResp"},{"properties":{"code":{"type":"string","enum":["503"],"default":"503"},"title":{"type":"string","enum":["Service Unavailable"],"default":"Service Unavailable"},"message":{"type":"string","default":"The server is not ready to handle the request. If specified please check the <strong>Retry-After</strong> for the time period specified for recovery/re-attempt of request."},"timestamp":{"description":"The time that the error occurred. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone.","type":"string","format":"date-time"},"type":{"type":"string","enum":["API_ERROR"],"default":"API_ERROR"},"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"}}}],"required":["code","title","message","type"],"additionalProperties":false}},"responses":{"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError400"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"401":{"description":"Unauthorised Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError401"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"403":{"description":"Forbidden Request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpError403"}}}},"404":{"description":"Not Found Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError404"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError500"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}},"503":{"description":"Service Not Available","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpError503"},{"properties":{"param":{"description":"The parameter the error relates to if the error is parameter-specific. You can use this to display a message near the correct form field, for example.","type":"string"},"additionalProperties":{"type":"object","additionalProperties":{"type":"object"}}}}],"required":["code","title","message","type"]}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.verifone.com/api-reference/open-api-references/order-service/specification/maintenance-orders.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
