Supersnel internet

"$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://vodafone-partners.nl/res/3rdparty/vz-order_api-schema.json", "title": "VZOrder API", "description": "Detailed schema for requesting or storing data trough this API", "type": "object", "properties": { "sendConfirmationEmail": { "$ref": "#/definitions/sendConfirmationEmail" }, "confirmationEmail": { "$ref": "#/definitions/confirmationEmail" }, "runInTestMode": { "$ref": "#/definitions/runInTestMode" }, "zipcode": { "$ref": "#/definitions/zipcode" }, "housenumber": { "$ref": "#/definitions/housenumber" }, "extension": { "$ref": "#/definitions/extension" }, "productId": { "$ref": "#/definitions/productId" }, "orderType": { "$ref": "#/definitions/orderType" }, "subpartnerId": { "$ref": "#/definitions/subpartnerId" }, "package": { "$ref": "#/definitions/package" }, "contractDuration": { "$ref": "#/definitions/contractDuration" }, "vBusinessCustomer": { "$ref": "#/definitions/vBusinessCustomer" }, "identifier": { "description": "Previously stored identifier as returned by storeOrder", "type": "string" }, "orders": { "description": "Array of identifiers or order ids to get the status of cancellation", "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": ["string", "number"] } }, "order": { "description": "Properties of the order", "type": "object", "properties": { "productId": { "$ref": "#/definitions/productId" }, "subpartnerId": { "$ref": "#/definitions/subpartnerId" }, "orderType": { "$ref": "#/definitions/orderType" }, "migrationCustomerNumber": { "$ref": "#/definitions/migrationCustomerNumber" }, "statusContract": { "$ref": "#/definitions/statusContract" }, "package": { "$ref": "#/definitions/package" }, "contractDuration": { "$ref": "#/definitions/contractDuration" }, "discountId": { "$ref": "#/definitions/discountId" }, "vBusinessCustomer": { "$ref": "#/definitions/vBusinessCustomer" }, "connectionAddress": { "type": "object", "description": "Address to order the product", "properties": { "zipcode": { "$ref": "#/definitions/zipcode" }, "housenumber": { "$ref": "#/definitions/housenumber" }, "extension": { "$ref": "#/definitions/extension" } }, "required": [ "zipcode", "housenumber" ] }, "collectiveBuilding": { "$ref": "#/definitions/collectiveBuilding" }, "roomNumber": { "type": "string", "description": "Roomnumber if applicable within the collective building" }, "hasAop": { "$ref": "#/definitions/hasAop" }, "desiredAopLocation": { "$ref": "#/definitions/desiredAopLocation" }, "aopContact": { "type": "object", "description": "AOP contact block, required if hasAop is set to false", "properties": { "primaryContact": { "type": "string", "description": "Indication of the primary contact type", "enum": [ "partner", "client" ] }, "companyName": { "type": "string", "description": "Company name for the contact, only required if primaryContact equals partner" }, "contactPerson": { "type": "string", "description": "Name of the contactperson" }, "phone": { "$ref": "#/definitions/phone" }, "email": { "$ref": "#/definitions/email" } }, "required": [ "primaryContact", "contactPerson", "phone", "email" ] }, "postalAddress": { "type": "object", "description": "Postal address for the product", "properties": { "zipcode": { "$ref": "#/definitions/zipcode" }, "housenumber": { "$ref": "#/definitions/housenumber" }, "extension": { "$ref": "#/definitions/extension" } }, "required": [ "zipcode", "housenumber" ] }, "currentServices": { "type": "object", "description": "What to do with existing services when migrating", "properties": { "television": { "type": "string", "description": "What to do with the current television package", "enum": [ "CONTINUE", "CANCEL", "NOTRELEVANT" ] }, "internet": { "type": "string", "description": "What to do with the current internet package", "enum": [ "CONTINUE", "CANCEL", "NOTRELEVANT" ] }, "telephony": { "type": "string", "description": "What to do with the current telephony package", "enum": [ "CONTINUE", "CANCEL", "NOTRELEVANT" ] }, "comment": { "type": "string", "description": "Any other services description. Please provide comments wether to continue or cancel these" } }, "required": [] }, "television": { "type": "object", "description": "Television options like selection and extra hardware", "properties": { "tvPackageId": { "$ref": "#/definitions/tvPackageId" }, "hwPackageId": { "$ref": "#/definitions/hwPackageId" }, "ehwPackageId": { "$ref": "#/definitions/ehwPackageId" }, "ehwPackages": { "$ref": "#/definitions/ehwPackages" }, "channelPackages": { "$ref": "#/definitions/channelPackages" } }, "required": [ "tvPackageId" ], "dependencies": { "hwPackageId": [ "tvPackageId" ], "ehwPackageId": [ "tvPackageId" ], "ehwPackages": [ "tvPackageId" ], "channelPackages": [ "tvPackageId" ] } }, "telephony": { "type": "object", "description": "Telephony packages", "properties": { "telPackageIds": { "$ref": "#/definitions/telPackageIds" }, "migrateExistingNumbers": { "$ref": "#/definitions/migrateExistingNumbers" } }, "required": [ "telPackageIds" ], "dependencies": { "migrateExistingNumbers": [ "telPackageIds" ] } }, "cocNumber": { "$ref": "#/definitions/cocNumber" }, "ibanNumber": { "$ref": "#/definitions/ibanNumber" }, "ibanAccountHolder": { "$ref": "#/definitions/ibanAccountHolder" }, "referenceCode": { "$ref": "#/definitions/referenceCode" }, "administrativeContact": { "description": "Details for the administrative contactperson", "type": "object", "properties": { "gender": { "$ref": "#/definitions/gender" }, "initials": { "$ref": "#/definitions/initials" }, "prefix": { "$ref": "#/definitions/prefix" }, "surname": { "$ref": "#/definitions/surname" }, "phone": { "$ref": "#/definitions/phone" }, "cellphone": { "$ref": "#/definitions/cellphone" }, "fax": { "$ref": "#/definitions/fax" }, "email": { "$ref": "#/definitions/email" } }, "required": [ "gender", "initials", "surname", "phone", "email" ] }, "technicalContact": { "description": "Details for the technical contactperson. If omitted, same as administrativeContact", "type": "object", "properties": { "gender": { "$ref": "#/definitions/gender" }, "initials": { "$ref": "#/definitions/initials" }, "prefix": { "$ref": "#/definitions/prefix" }, "surname": { "$ref": "#/definitions/surname" }, "phone": { "$ref": "#/definitions/phone" }, "cellphone": { "$ref": "#/definitions/cellphone" }, "fax": { "$ref": "#/definitions/fax" }, "email": { "$ref": "#/definitions/email" } }, "required": [ "gender", "initials", "surname", "phone", "email" ] }, "requiresMechanic": { "$ref": "#/definitions/requiresMechanic" }, "useTransferService": { "$ref": "#/definitions/useTransferService" }, "deliveryDate": { "$ref": "#/definitions/deliveryDate" }, "comment": { "$ref": "#/definitions/comment" } }, "required" : [ "productId", "orderType", "package", "contractDuration", "vBusinessCustomer", "connectionAddress", "television", "cocNumber", "ibanNumber", "ibanAccountHolder", "collectiveBuilding", "hasAop" ] } }, "definitions": { "zipcode": { "description": "Zipcode in 6 character format like 1000SA", "type": "string", "maxLength": 6, "minLength": 6, "pattern": "^([0-9]{4}[A-Z]{2})$" }, "housenumber": { "description": "Number part of the address", "type": "integer" }, "extension": { "description": "Extension to the housenumber like A or -2C", "type": "string" }, "orderType": { "description": "Valid order type as returned by getAvailableOrderTypes", "type": "string", "enum": [ "NEW_CUST", "MIGR_PMI", "MIGR_PZI" ] }, "subpartnerId": { "description": "Valid subpartnerId as returned by getSubpartners", "type": "string" }, "migrationCustomerNumber": { "description": "Existing Ziggo customer number", "type": "string" }, "statusContract": { "description": "Does the customer have a running contract or is the customer out of contract", "type": "string", "enum": [ "IN_CONTRACT", "OUT_OF_CONTRACT" ] }, "productId": { "description": "Valid product id as returned by getAvailableProducts", "type": "string", "enum": [ "ZI" ] }, "package": { "description": "Valid internet package as returned by getAvailableProducts", "type": "string", "enum": [ "ZISPD_1", "ZISPD_2", "ZISPD_3", "ZISPD_4" ] }, "contractDuration": { "description": "Valid product duration as returned by getAvailableProducts", "type": "integer", "enum": [ 1, 12, 24, 36, 48 ] }, "discountId": { "description": "Valid discount id as returned by getAvailableDiscounts", "type": "string" }, "vBusinessCustomer": { "description": "Indicate if this client is already a Vodafone business customer", "type": "boolean" }, "collectiveBuilding": { "type": "boolean", "description": "Indicates wheter or not the company is inside a collective building or industrial area" }, "hasAop": { "type": "boolean", "description": "Indicates if the connection has an AOP. If false then desiredAopLocation and aopContact are required" }, "desiredAopLocation": { "type": "string", "description": "Where do you want to install the AOP" }, "tvPackageId": { "description": "Tv package like Start or Complete as provided by getTelevisionOptions", "type": "string", "enum": [ "TV_NOTV", "TV_START", "TV_COMPL" ] }, "hwPackageId": { "description": "Tv hardware package as provided by getTelevisionOptions", "type": "string", "enum": [ "TV_MEDBNXT", "TV_MEDB", "TV_CIM" ] }, "ehwPackageId": { "description": "Extra tv hardware package as provided by getTelevisionOptions", "type": "string", "enum": [ "TV_ECIM", "TV_EMEDBNXT", "TV_EMEDB" ] }, "ehwPackages": { "description": "Extra (multiple) tv hardware package as provided by getTelevisionOptions", "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "object", "properties": { "packageId": { "type": "string", "enum": [ "TV_ECIM", "TV_EMEDBNXT", "TV_EMEDB" ], "description": "Extra tv hardware package as provided by getTelevisionOptions" }, "amount": { "type": "integer", "description": "Amount of packages" } } } }, "channelPackages": { "description": "Extra tv channel packages as provided by getTelevisionOptions", "type": ["array","string"], "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": [ "TVC_MS", "TVC_MSXL", "TVC_STOT_FSE", "TVC_STOT", "TVC_FILM1", "TVC_FSE", "TVC_FSI", "TVC_HIND", "TVC_TURK", "TVC_ERO", "TVC_GAY" ] } }, "telPackageIds": { "description": "Telephony package like as provided by getTelephonyOptions", "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "enum": [ "TEL_NOTEL", "TEL_L1", "TEL_L2", "TEL_L1_NAT", "TEL_L1_INT", "TEL_L2_NAT", "TEL_L2_INT" ] } }, "migrateExistingNumbers": { "description": "List of existing numbers to migrate", "type": "array", "minItems": 1, "maxItems": 2, "uniqueItems": true, "items": { "type": "string" } }, "cocNumber": { "description": "Chamber of Commerce number", "type": "string", "minLength": 8, "pattern": "^[0-9]{8,10}([-]{1}[0-9]{4})?$" }, "cocCompany": { "description": "Companyname as registered with the Chamber of Commerce", "type": "string", "minLength": 2 }, "ibanNumber": { "description": "IBAN Number in format CN00BANK-123456789", "type": "string", "minLength": 15, "maxLength": 27, "pattern": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}$" }, "ibanAccountHolder": { "description": "", "type": "string", "minLength": 2, "maxLength": 200 }, "referenceCode": { "description": "Short textual reference that's printed on the invoice for your administration", "type": "string", "minLength": 2, "maxLength": 200 }, "gender": { "type": "string", "description": "Gender, used to determine salutation", "enum": [ "m", "f" ] }, "initials": { "type": "string", "description": "Initials as string, freely formatted", "minLength": 1 }, "prefix": { "type": "string", "description": "The Dutch 'tussenvoegsel'" }, "surname": { "type": "string", "description": "Given surname/familyname", "minLength": 2 }, "phone": { "type": "string", "description": "Primary phonenumber (landline or mobile)", "minLength": 8, "pattern": "^[+]?[0-9\\-\\s]{8,16}$" }, "cellphone": { "type": "string", "description": "Mobile phonenumber", "minLength": 8, "pattern": "^[+]?[0-9\\-\\s]{8,16}$" }, "fax": { "type": "string", "description": "Faxnumber", "minLength": 8, "pattern": "^[+]?[0-9\\-\\s]{8,16}$" }, "email": { "type": "string", "description": "E-mailaddress", "minLength": 6, "pattern": "^(([^<>()\\[\\]\\.,;:\\s@\"]+(.[^<>()\\[\\]\\.,;:\\s@\"]+)*)|(\".+\"))@(([^<>()[\\]\\.,;:\\s@\"]+\\.)+[^<>()[\\]\\.,;:\\s@\"]{2,})$" }, "requiresMechanic": { "type": "boolean", "description": "Indicates if the installation mechanic is needed or if the client installs the package" }, "useTransferService": { "type": "boolean", "description": "Indicates if the end user wants to use the Ziggo Overstapservice or not, if true this requires a deliveryDate" }, "deliveryDate": { "type": "string", "format": "date" }, "comment": { "description": "Comment/instruction for order processing", "type": "string" }, "sendConfirmationEmail": { "description": "Send a confirmation email when finalizeOrder is called", "type": "boolean" }, "confirmationEmail": { "description": "Configuration object for where to send confirmationEmail", "type": "object", "properties": { "to": { "description": "Mail TO field, may be comma seperated", "type": ["array","string"] }, "cc": { "description": "Mail CC field, may be comma seperated", "type": ["array","string"] }, "bcc": { "description": "Mail BCC field, may be comma seperated", "type": ["array","string"] } } }, "runInTestMode": { "description": "When running in test mode, data won't be processed and api calls are an (closely approximated) estimate of what they should return", "type": "boolean" } }, "dependencies": { "zipcode": [ "housenumber" ], "housenumber": [ "zipcode" ], "extension": [ "zipcode", "housenumber" ], "discountId": [ "orderType", "productId", "package", "contractDuration", "vBusinessCustomer" ], "deliveryDate": [ "useTransferService" ] } }