Servidor MCP

Hum Internet Availability

com.letshum/internet-availability
Comercio y retail Comunicación Público y accesible MCP 2025-11-25

Qué hace este MCP

Checks U.S. address-level internet availability and plans, then supports validated broadband order submission and tracking.

check_availability
Check broadband availability
Start with {address}; continue only with a returned candidate_id and requested unit, {lookup_id} to poll, or the current question_set_id and answers. FCC findings are area-level evidence. Select only returned executable offer_id values.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'check_availabilityArguments', 'properties': {'unit': {'anyOf': [{'type': 'string', 'maxLength': 100, 'minLength': 1}, {'type': 'null'}], 'title': 'Unit', 'default': None}, 'address': {'anyOf': [{'type': 'string', 'maxLength': 300, 'minLength': 1}, {'type': 'null'}], 'title': 'Address', 'default': None}, 'answers': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'title': 'Answers', 'default': None}, 'lookup_id': {'anyOf': [{'type': 'string', 'maxLength': 256, 'minLength': 1}, {'type': 'null'}], 'title': 'Lookup Id', 'default': None}, 'candidate_id': {'anyOf': [{'type': 'string', 'maxLength': 2048, 'minLength': 1}, {'type': 'null'}], 'title': 'Candidate Id', 'default': None}, 'question_set_id': {'anyOf': [{'type': 'string', 'maxLength': 256, 'minLength': 1}, {'type': 'null'}], 'title': 'Question Set Id', 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$defs': {'Offer': {'type': 'object', 'title': 'Offer', 'required': ['name', 'pricing', 'fees', 'contract_terms', 'offer_id', 'provider_id', 'qualification_revision', 'qualified_at', 'expires_at', 'orderable_through_hum'], 'properties': {'fees': {'$ref': '#/$defs/FeeFacts'}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'pricing': {'$ref': '#/$defs/MoneyFacts'}, 'offer_id': {'type': 'string', 'title': 'Offer Id', 'maxLength': 256, 'minLength': 1}, 'conditions': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Conditions', 'maxItems': 50}, 'data_limit': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'title': 'Data Limit', 'default': None}, 'expires_at': {'type': 'string', 'title': 'Expires At', 'format': 'date-time'}, 'technology': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Technology', 'default': None}, 'provider_id': {'type': 'string', 'title': 'Provider Id', 'maxLength': 256, 'minLength': 1}, 'upload_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Upload Mbps', 'default': None}, 'qualified_at': {'type': 'string', 'title': 'Qualified At', 'format': 'date-time'}, 'download_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Download Mbps', 'default': None}, 'contract_terms': {'$ref': '#/$defs/ContractTerms'}, 'orderable_through_hum': {'type': 'boolean', 'const': True, 'title': 'Orderable Through Hum'}, 'qualification_revision': {'type': 'integer', 'title': 'Qualification Revision', 'minimum': 1}}, 'additionalProperties': False}, 'Sources': {'type': 'object', 'title': 'Sources', 'required': ['fcc', 'live_provider_check'], 'properties': {'fcc': {'$ref': '#/$defs/SourceState'}, 'live_provider_check': {'$ref': '#/$defs/SourceState'}}, 'additionalProperties': False}, 'FccMatch': {'type': 'object', 'title': 'FccMatch', 'required': ['granularity'], 'properties': {'data_as_of': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Data As Of', 'default': None}, 'granularity': {'enum': ['census_block', 'census_tract'], 'type': 'string', 'title': 'Granularity'}}, 'additionalProperties': False}, 'FeeFacts': {'type': 'object', 'title': 'FeeFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'activation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Activation Cents', 'default': None}, 'self_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Self Installation Cents', 'default': None}, 'recurring_equipment_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Recurring Equipment Cents', 'default': None}, 'professional_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Professional Installation Cents', 'default': None}}, 'additionalProperties': False}, 'Provider': {'type': 'object', 'title': 'Provider', 'required': ['provider_id', 'name', 'provenance', 'qualification_status'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'offers': {'type': 'array', 'items': {'$ref': '#/$defs/Offer'}, 'title': 'Offers', 'maxItems': 500}, 'fcc_match': {'anyOf': [{'$ref': '#/$defs/FccMatch'}, {'type': 'null'}], 'default': None}, 'provenance': {'type': 'array', 'items': {'enum': ['fcc', 'live_provider_check'], 'type': 'string'}, 'title': 'Provenance', 'maxItems': 2, 'minItems': 1}, 'provider_id': {'type': 'string', 'title': 'Provider Id', 'maxLength': 256, 'minLength': 1}, 'catalog_plans': {'type': 'array', 'items': {'$ref': '#/$defs/InformationalPlan'}, 'title': 'Catalog Plans', 'maxItems': 500}, 'qualification_status': {'enum': ['not_checked', 'checking', 'needs_information', 'qualified', 'not_qualified', 'failed'], 'type': 'string', 'title': 'Qualification Status'}, 'orderable_through_hum': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Orderable Through Hum', 'default': None}}, 'additionalProperties': False}, 'Question': {'type': 'object', 'title': 'Question', 'required': ['question_id', 'prompt', 'type', 'required', 'sensitivity'], 'properties': {'type': {'enum': ['string', 'boolean', 'single_choice', 'date'], 'type': 'string', 'title': 'Type'}, 'prompt': {'type': 'string', 'title': 'Prompt', 'maxLength': 500, 'minLength': 1}, 'choices': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}, 'maxItems': 100}, {'type': 'null'}], 'title': 'Choices', 'default': None}, 'required': {'type': 'boolean', 'title': 'Required'}, 'question_id': {'type': 'string', 'title': 'Question Id', 'maxLength': 256, 'minLength': 1}, 'sensitivity': {'enum': ['none', 'personal', 'sensitive'], 'type': 'string', 'title': 'Sensitivity'}}, 'additionalProperties': False}, 'Candidate': {'type': 'object', 'title': 'Candidate', 'required': ['candidate_id', 'display', 'requires_unit'], 'properties': {'display': {'type': 'string', 'title': 'Display', 'maxLength': 500, 'minLength': 1}, 'candidate_id': {'type': 'string', 'title': 'Candidate Id', 'maxLength': 2048, 'minLength': 1}, 'requires_unit': {'type': 'boolean', 'title': 'Requires Unit'}}, 'additionalProperties': False}, 'MoneyFacts': {'type': 'object', 'title': 'MoneyFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'intro_months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Intro Months', 'default': None}, 'monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Monthly Cents', 'default': None}, 'regular_monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Regular Monthly Cents', 'default': None}}, 'additionalProperties': False}, 'ErrorDetail': {'type': 'object', 'title': 'ErrorDetail', 'required': ['code', 'message', 'retryable', 'next_action'], 'properties': {'code': {'enum': ['invalid_request', 'invalid_address', 'invalid_answer', 'not_found', 'expired', 'offer_changed', 'offer_unavailable', 'validation_required', 'confirmation_required', 'idempotency_conflict', 'duplicate_order', 'rate_limited', 'temporarily_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable'}, 'next_action': {'type': 'string', 'title': 'Next Action', 'maxLength': 500, 'minLength': 1}, 'field_errors': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Field Errors', 'default': None}, 'correlation_id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}], 'title': 'Correlation Id', 'default': None}, 'retry_after_seconds': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'title': 'Retry After Seconds', 'default': None}}, 'additionalProperties': False}, 'SourceState': {'type': 'object', 'title': 'SourceState', 'required': ['status'], 'properties': {'error': {'anyOf': [{'$ref': '#/$defs/ErrorDetail'}, {'type': 'null'}], 'default': None}, 'status': {'enum': ['checking', 'needs_information', 'complete', 'failed', 'timed_out'], 'type': 'string', 'title': 'Status'}, 'checked_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Checked At', 'default': None}, 'data_as_of': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Data As Of', 'default': None}}, 'additionalProperties': False}, 'ContractTerms': {'type': 'object', 'title': 'ContractTerms', 'properties': {'months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Months', 'default': None}, 'required': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Required', 'default': None}}, 'additionalProperties': False}, 'InformationalPlan': {'type': 'object', 'title': 'InformationalPlan', 'required': ['name', 'pricing', 'fees', 'contract_terms'], 'properties': {'fees': {'$ref': '#/$defs/FeeFacts'}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'pricing': {'$ref': '#/$defs/MoneyFacts'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Conditions', 'maxItems': 50}, 'data_limit': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'title': 'Data Limit', 'default': None}, 'technology': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Technology', 'default': None}, 'upload_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Upload Mbps', 'default': None}, 'download_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Download Mbps', 'default': None}, 'contract_terms': {'$ref': '#/$defs/ContractTerms'}}, 'additionalProperties': False}, 'NormalizedAddress': {'type': 'object', 'title': 'NormalizedAddress', 'required': ['display', 'street_line', 'city', 'state', 'postal_code'], 'properties': {'city': {'type': 'string', 'title': 'City', 'maxLength': 100, 'minLength': 1}, 'unit': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Unit', 'default': None}, 'state': {'type': 'string', 'title': 'State', 'pattern': '^[A-Z]{2}$'}, 'display': {'type': 'string', 'title': 'Display', 'maxLength': 500, 'minLength': 1}, 'postal_code': {'type': 'string', 'title': 'Postal Code', 'pattern': '^\\d{5}(?:-\\d{4})?$'}, 'street_line': {'type': 'string', 'title': 'Street Line', 'maxLength': 300, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'AvailabilityEnvelope', 'required': ['schema_version', 'status'], 'properties': {'error': {'anyOf': [{'$ref': '#/$defs/ErrorDetail'}, {'type': 'null'}], 'default': None}, 'status': {'enum': ['checking', 'needs_information', 'complete', 'failed', 'error'], 'type': 'string', 'title': 'Status'}, 'message': {'anyOf': [{'type': 'string', 'maxLength': 500}, {'type': 'null'}], 'title': 'Message', 'default': None}, 'sources': {'anyOf': [{'$ref': '#/$defs/Sources'}, {'type': 'null'}], 'default': None}, 'revision': {'anyOf': [{'type': 'integer', 'minimum': 1}, {'type': 'null'}], 'title': 'Revision', 'default': None}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Warnings', 'maxItems': 20}, 'lookup_id': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'title': 'Lookup Id', 'default': None}, 'providers': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/Provider'}, 'maxItems': 500}, {'type': 'null'}], 'title': 'Providers', 'default': None}, 'questions': {'type': 'array', 'items': {'$ref': '#/$defs/Question'}, 'title': 'Questions', 'maxItems': 100}, 'candidates': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/Candidate'}, 'maxItems': 5}, {'type': 'null'}], 'title': 'Candidates', 'default': None}, 'expires_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Expires At', 'default': None}, 'next_action': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'title': 'Next Action', 'default': None}, 'required_field': {'anyOf': [{'type': 'string', 'const': 'unit'}, {'type': 'null'}], 'title': 'Required Field', 'default': None}, 'schema_version': {'type': 'integer', 'const': 4, 'title': 'Schema Version'}, 'question_set_id': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'title': 'Question Set Id', 'default': None}, 'clarification_type': {'anyOf': [{'enum': ['candidate_selection', 'unit_required'], 'type': 'string'}, {'type': 'null'}], 'title': 'Clarification Type', 'default': None}, 'normalized_address': {'anyOf': [{'$ref': '#/$defs/NormalizedAddress'}, {'type': 'null'}], 'default': None}, 'retry_after_seconds': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'title': 'Retry After Seconds', 'default': None}}, 'additionalProperties': False}
create_order
Create internet order
Only after presenting the current review and obtaining authorization for its terms_hash, commit with its validation_token and one stable idempotency_key. After a lost or uncertain response, call get_order first; do not blindly resubmit.
Destructivo Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$defs': {'Confirmation': {'type': 'object', 'title': 'Confirmation', 'required': ['terms_hash', 'confirmed'], 'properties': {'confirmed': {'type': 'boolean', 'const': True, 'title': 'Confirmed'}, 'terms_hash': {'type': 'string', 'title': 'Terms Hash', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}}, 'title': 'create_orderArguments', 'required': ['checkout_id', 'validation_token', 'idempotency_key', 'confirmation'], 'properties': {'checkout_id': {'type': 'string', 'title': 'Checkout Id', 'maxLength': 256, 'minLength': 1}, 'confirmation': {'$ref': '#/$defs/Confirmation'}, 'idempotency_key': {'type': 'string', 'title': 'Idempotency Key', 'maxLength': 128, 'minLength': 1}, 'validation_token': {'type': 'string', 'title': 'Validation Token', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$defs': {'Evidence': {'type': 'object', 'title': 'Evidence', 'required': ['kind', 'recorded_at'], 'properties': {'kind': {'type': 'string', 'title': 'Kind', 'maxLength': 100, 'minLength': 1}, 'recorded_at': {'type': 'string', 'title': 'Recorded At', 'format': 'date-time'}}, 'additionalProperties': False}, 'FeeFacts': {'type': 'object', 'title': 'FeeFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'activation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Activation Cents', 'default': None}, 'self_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Self Installation Cents', 'default': None}, 'recurring_equipment_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Recurring Equipment Cents', 'default': None}, 'professional_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Professional Installation Cents', 'default': None}}, 'additionalProperties': False}, 'PlanFacts': {'type': 'object', 'title': 'PlanFacts', 'required': ['name', 'pricing', 'fees', 'contract_terms'], 'properties': {'fees': {'$ref': '#/$defs/FeeFacts'}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'pricing': {'$ref': '#/$defs/MoneyFacts'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Conditions', 'maxItems': 50}, 'data_limit': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'title': 'Data Limit', 'default': None}, 'technology': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Technology', 'default': None}, 'upload_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Upload Mbps', 'default': None}, 'download_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Download Mbps', 'default': None}, 'contract_terms': {'$ref': '#/$defs/ContractTerms'}}, 'additionalProperties': False}, 'MoneyFacts': {'type': 'object', 'title': 'MoneyFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'intro_months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Intro Months', 'default': None}, 'monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Monthly Cents', 'default': None}, 'regular_monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Regular Monthly Cents', 'default': None}}, 'additionalProperties': False}, 'ErrorDetail': {'type': 'object', 'title': 'ErrorDetail', 'required': ['code', 'message', 'retryable', 'next_action'], 'properties': {'code': {'enum': ['invalid_request', 'invalid_address', 'invalid_answer', 'not_found', 'expired', 'offer_changed', 'offer_unavailable', 'validation_required', 'confirmation_required', 'idempotency_conflict', 'duplicate_order', 'rate_limited', 'temporarily_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable'}, 'next_action': {'type': 'string', 'title': 'Next Action', 'maxLength': 500, 'minLength': 1}, 'field_errors': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Field Errors', 'default': None}, 'correlation_id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}], 'title': 'Correlation Id', 'default': None}, 'retry_after_seconds': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'title': 'Retry After Seconds', 'default': None}}, 'additionalProperties': False}, 'ContractTerms': {'type': 'object', 'title': 'ContractTerms', 'properties': {'months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Months', 'default': None}, 'required': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Required', 'default': None}}, 'additionalProperties': False}}, 'title': 'OrderEnvelope', 'required': ['schema_version', 'status'], 'properties': {'error': {'anyOf': [{'$ref': '#/$defs/ErrorDetail'}, {'type': 'null'}], 'default': None}, 'status': {'enum': ['queued', 'submitting', 'accepted_by_fulfillment', 'rejected_by_fulfillment', 'submission_unknown', 'not_submitted', 'error'], 'type': 'string', 'title': 'Status'}, 'evidence': {'anyOf': [{'$ref': '#/$defs/Evidence'}, {'type': 'null'}], 'default': None}, 'order_id': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'title': 'Order Id', 'default': None}, 'next_action': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'title': 'Next Action', 'default': None}, 'submitted_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Submitted At', 'default': None}, 'provider_name': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}], 'title': 'Provider Name', 'default': None}, 'schema_version': {'type': 'integer', 'const': 4, 'title': 'Schema Version'}, 'last_checked_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Last Checked At', 'default': None}, 'selected_offer_summary': {'anyOf': [{'$ref': '#/$defs/PlanFacts'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
get_order
Get internet order
Retrieve recorded fulfillment evidence with checkout_id, especially after a lost or uncertain create_order response. Public statuses do not prove ISP acceptance or installation confirmation.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'title': 'get_orderArguments', 'required': ['checkout_id'], 'properties': {'checkout_id': {'type': 'string', 'title': 'Checkout Id', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$defs': {'Evidence': {'type': 'object', 'title': 'Evidence', 'required': ['kind', 'recorded_at'], 'properties': {'kind': {'type': 'string', 'title': 'Kind', 'maxLength': 100, 'minLength': 1}, 'recorded_at': {'type': 'string', 'title': 'Recorded At', 'format': 'date-time'}}, 'additionalProperties': False}, 'FeeFacts': {'type': 'object', 'title': 'FeeFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'activation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Activation Cents', 'default': None}, 'self_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Self Installation Cents', 'default': None}, 'recurring_equipment_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Recurring Equipment Cents', 'default': None}, 'professional_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Professional Installation Cents', 'default': None}}, 'additionalProperties': False}, 'PlanFacts': {'type': 'object', 'title': 'PlanFacts', 'required': ['name', 'pricing', 'fees', 'contract_terms'], 'properties': {'fees': {'$ref': '#/$defs/FeeFacts'}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'pricing': {'$ref': '#/$defs/MoneyFacts'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Conditions', 'maxItems': 50}, 'data_limit': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'title': 'Data Limit', 'default': None}, 'technology': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Technology', 'default': None}, 'upload_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Upload Mbps', 'default': None}, 'download_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Download Mbps', 'default': None}, 'contract_terms': {'$ref': '#/$defs/ContractTerms'}}, 'additionalProperties': False}, 'MoneyFacts': {'type': 'object', 'title': 'MoneyFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'intro_months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Intro Months', 'default': None}, 'monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Monthly Cents', 'default': None}, 'regular_monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Regular Monthly Cents', 'default': None}}, 'additionalProperties': False}, 'ErrorDetail': {'type': 'object', 'title': 'ErrorDetail', 'required': ['code', 'message', 'retryable', 'next_action'], 'properties': {'code': {'enum': ['invalid_request', 'invalid_address', 'invalid_answer', 'not_found', 'expired', 'offer_changed', 'offer_unavailable', 'validation_required', 'confirmation_required', 'idempotency_conflict', 'duplicate_order', 'rate_limited', 'temporarily_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable'}, 'next_action': {'type': 'string', 'title': 'Next Action', 'maxLength': 500, 'minLength': 1}, 'field_errors': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Field Errors', 'default': None}, 'correlation_id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}], 'title': 'Correlation Id', 'default': None}, 'retry_after_seconds': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'title': 'Retry After Seconds', 'default': None}}, 'additionalProperties': False}, 'ContractTerms': {'type': 'object', 'title': 'ContractTerms', 'properties': {'months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Months', 'default': None}, 'required': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Required', 'default': None}}, 'additionalProperties': False}}, 'title': 'OrderEnvelope', 'required': ['schema_version', 'status'], 'properties': {'error': {'anyOf': [{'$ref': '#/$defs/ErrorDetail'}, {'type': 'null'}], 'default': None}, 'status': {'enum': ['queued', 'submitting', 'accepted_by_fulfillment', 'rejected_by_fulfillment', 'submission_unknown', 'not_submitted', 'error'], 'type': 'string', 'title': 'Status'}, 'evidence': {'anyOf': [{'$ref': '#/$defs/Evidence'}, {'type': 'null'}], 'default': None}, 'order_id': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'title': 'Order Id', 'default': None}, 'next_action': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'title': 'Next Action', 'default': None}, 'submitted_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Submitted At', 'default': None}, 'provider_name': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}], 'title': 'Provider Name', 'default': None}, 'schema_version': {'type': 'integer', 'const': 4, 'title': 'Schema Version'}, 'last_checked_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Last Checked At', 'default': None}, 'selected_offer_summary': {'anyOf': [{'$ref': '#/$defs/PlanFacts'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
validate_order
Validate internet order
Start: {"lookup_id":"<returned lookup_id>","offer_id":"<returned offer_id>"}. Poll: {"checkout_id":"<returned checkout_id>"}. Edit: {"checkout_id":"<returned checkout_id>","expected_revision":<current revision>,"details":{<changed fields>}}. Use exactly one shape. Customer, installation, consents and internet_addons belong inside details, never at the root. While checking, wait retry_after_seconds and poll without details. Edits restart validation. On stale expected_revision, retrieve with checkout_id only before editing at the current revision. required_fields defines the contract; field_errors identifies actual missing/invalid fields relative to details. Refreshes the offer and returns an exact review without submitting an order. When preferred installation dates are required, provide both first and second choices using a time_window value allowed by the input schema. Installation type must be self or professional. Record the customer's explicit true or false choices for auto-pay and paperless billing; never enable them silently. Match the customer's equipment preference using returned equipment_options and catalog facts. Customer-owned equipment, included provider equipment and optional paid equipment are different choices. A free provider gateway does not satisfy an own-equipment request. Price or included status alone does not establish ownership. If an offer lacks the requested option, inspect another qualified offer or explain the limitation and ask the customer to choose; never fabricate an option. Send the complete selection in details.internet_addons using returned option_id and quantity values. Omit it to preserve current/default selections; [] declines optional items. Select at most one radio option and retain dependent parents. Ready means technically valid, not necessarily correct for the customer. Compare the entire review with the customer's budget, speed, equipment, billing and installation choices. Resolve mismatches before requesting authorization. Present every returned charge, discount, condition and unknown; do not invent a price adjustment for declined auto-pay or paperless billing. Never repeat the service PIN or full date of birth, even if supplied earlier. Keep capability IDs, terms_hash and validation_token out of customer-facing prose. Obtain explicit authorization for this exact current review before create_order; shopping intent or validation alone is not authorization.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$defs': {'OrderDetails': {'type': 'object', 'title': 'OrderDetails', 'properties': {'consents': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'boolean'}}, {'type': 'null'}], 'title': 'Consents', 'default': None, 'description': 'Customer consent choices at details.consents, using returned consent names.'}, 'customer': {'anyOf': [{'$ref': '#/$defs/CustomerDetails'}, {'type': 'null'}], 'default': None}, 'installation': {'anyOf': [{'$ref': '#/$defs/InstallationDetails'}, {'type': 'null'}], 'default': None}, 'internet_addons': {'anyOf': [{'type': 'array', 'items': {'$ref': '#/$defs/EquipmentSelection'}, 'maxItems': 100}, {'type': 'null'}], 'title': 'Internet Addons', 'default': None, 'description': 'Complete equipment selection at details.internet_addons using returned option IDs and quantities; retain dependent parents. Omit to keep current selections/defaults; send [] to decline optional equipment. A free provider gateway is not owned equipment.'}}, 'description': 'Edit payload nested inside validate_order.details, never root tool arguments.', 'additionalProperties': False}, 'MailingAddress': {'type': 'object', 'title': 'MailingAddress', 'properties': {'city': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'City', 'default': None}, 'line1': {'anyOf': [{'type': 'string', 'maxLength': 300}, {'type': 'null'}], 'title': 'Line1', 'default': None}, 'line2': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Line2', 'default': None}, 'state': {'anyOf': [{'type': 'string', 'pattern': '^[A-Z]{2}$'}, {'type': 'null'}], 'title': 'State', 'default': None}, 'postal_code': {'anyOf': [{'type': 'string', 'pattern': '^\\d{5}(?:-\\d{4})?$'}, {'type': 'null'}], 'title': 'Postal Code', 'default': None}, 'same_as_service': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Same As Service', 'default': None}}, 'additionalProperties': False}, 'PreferredDates': {'type': 'object', 'title': 'PreferredDates', 'properties': {'first': {'anyOf': [{'$ref': '#/$defs/InstallationChoice'}, {'type': 'null'}], 'default': None}, 'second': {'anyOf': [{'$ref': '#/$defs/InstallationChoice'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}, 'CustomerDetails': {'type': 'object', 'title': 'CustomerDetails', 'properties': {'email': {'anyOf': [{'type': 'string', 'maxLength': 254}, {'type': 'null'}], 'title': 'Email', 'default': None}, 'last_name': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Last Name', 'default': None}, 'first_name': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'First Name', 'default': None}, 'preferences': {'anyOf': [{'$ref': '#/$defs/BillingPreferences'}, {'type': 'null'}], 'default': None}, 'service_pin': {'anyOf': [{'type': 'string', 'pattern': '^\\d{4}$'}, {'type': 'null'}], 'title': 'Service Pin', 'default': None}, 'phone_number': {'anyOf': [{'type': 'string', 'maxLength': 40}, {'type': 'null'}], 'title': 'Phone Number', 'default': None}, 'date_of_birth': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Date Of Birth', 'default': None}, 'mailing_address': {'anyOf': [{'$ref': '#/$defs/MailingAddress'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}, 'BillingPreferences': {'type': 'object', 'title': 'BillingPreferences', 'properties': {'auto_pay': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Auto Pay', 'default': None}, 'paperless_billing': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Paperless Billing', 'default': None}}, 'additionalProperties': False}, 'EquipmentSelection': {'type': 'object', 'title': 'EquipmentSelection', 'required': ['option_id', 'quantity'], 'properties': {'quantity': {'type': 'integer', 'title': 'Quantity', 'minimum': 1}, 'option_id': {'type': 'string', 'title': 'Option Id', 'maxLength': 256, 'minLength': 1}}, 'additionalProperties': False}, 'InstallationChoice': {'type': 'object', 'title': 'InstallationChoice', 'properties': {'date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Date', 'default': None}, 'time_window': {'anyOf': [{'enum': ['8:00 AM - 12:00 PM (Local Time)', '12:00 PM - 5:00 PM (Local Time)'], 'type': 'string'}, {'type': 'null'}], 'title': 'Time Window', 'default': None}}, 'additionalProperties': False}, 'InstallationDetails': {'type': 'object', 'title': 'InstallationDetails', 'properties': {'type': {'anyOf': [{'enum': ['self', 'professional'], 'type': 'string'}, {'type': 'null'}], 'title': 'Type', 'default': None}, 'preferred_dates': {'anyOf': [{'$ref': '#/$defs/PreferredDates'}, {'type': 'null'}], 'default': None}, 'desired_service_start_date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Desired Service Start Date', 'default': None}}, 'additionalProperties': False}}, 'title': 'validate_orderArguments', 'properties': {'details': {'anyOf': [{'$ref': '#/$defs/OrderDetails'}, {'type': 'null'}], 'default': None}, 'offer_id': {'anyOf': [{'type': 'string', 'maxLength': 256, 'minLength': 1}, {'type': 'null'}], 'title': 'Offer Id', 'default': None}, 'lookup_id': {'anyOf': [{'type': 'string', 'maxLength': 256, 'minLength': 1}, {'type': 'null'}], 'title': 'Lookup Id', 'default': None}, 'checkout_id': {'anyOf': [{'type': 'string', 'maxLength': 256, 'minLength': 1}, {'type': 'null'}], 'title': 'Checkout Id', 'default': None}, 'expected_revision': {'anyOf': [{'type': 'integer', 'minimum': 1}, {'type': 'null'}], 'title': 'Expected Revision', 'default': None}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$defs': {'FeeFacts': {'type': 'object', 'title': 'FeeFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'activation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Activation Cents', 'default': None}, 'self_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Self Installation Cents', 'default': None}, 'recurring_equipment_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Recurring Equipment Cents', 'default': None}, 'professional_installation_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Professional Installation Cents', 'default': None}}, 'additionalProperties': False}, 'PlanFacts': {'type': 'object', 'title': 'PlanFacts', 'required': ['name', 'pricing', 'fees', 'contract_terms'], 'properties': {'fees': {'$ref': '#/$defs/FeeFacts'}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'pricing': {'$ref': '#/$defs/MoneyFacts'}, 'conditions': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Conditions', 'maxItems': 50}, 'data_limit': {'anyOf': [{'type': 'string'}, {'type': 'integer'}, {'type': 'number'}, {'type': 'null'}], 'title': 'Data Limit', 'default': None}, 'technology': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Technology', 'default': None}, 'upload_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Upload Mbps', 'default': None}, 'download_mbps': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'title': 'Download Mbps', 'default': None}, 'contract_terms': {'$ref': '#/$defs/ContractTerms'}}, 'additionalProperties': False}, 'CartReview': {'type': 'object', 'title': 'CartReview', 'required': ['selected_plan', 'included_products', 'one_time_fees', 'total_amount'], 'properties': {'total_amount': {'$ref': '#/$defs/OrderAmount'}, 'one_time_fees': {'type': 'array', 'items': {'$ref': '#/$defs/OneTimeFee'}, 'title': 'One Time Fees', 'maxItems': 100}, 'selected_plan': {'$ref': '#/$defs/IncludedProduct'}, 'bundle_discount': {'anyOf': [{'$ref': '#/$defs/OrderAmount'}, {'type': 'null'}], 'default': None}, 'included_products': {'$ref': '#/$defs/IncludedProducts'}}, 'additionalProperties': False}, 'MoneyFacts': {'type': 'object', 'title': 'MoneyFacts', 'required': ['currency'], 'properties': {'currency': {'type': 'string', 'title': 'Currency', 'pattern': '^[A-Z]{3}$'}, 'intro_months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Intro Months', 'default': None}, 'monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Monthly Cents', 'default': None}, 'regular_monthly_cents': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Regular Monthly Cents', 'default': None}}, 'additionalProperties': False}, 'OneTimeFee': {'type': 'object', 'title': 'OneTimeFee', 'required': ['name', 'description', 'pricing', 'fee_type'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'pricing': {'$ref': '#/$defs/OrderAmount'}, 'fee_type': {'type': 'string', 'title': 'Fee Type', 'maxLength': 100, 'minLength': 1}, 'description': {'type': 'string', 'title': 'Description', 'maxLength': 1000, 'minLength': 1}}, 'additionalProperties': False}, 'ErrorDetail': {'type': 'object', 'title': 'ErrorDetail', 'required': ['code', 'message', 'retryable', 'next_action'], 'properties': {'code': {'enum': ['invalid_request', 'invalid_address', 'invalid_answer', 'not_found', 'expired', 'offer_changed', 'offer_unavailable', 'validation_required', 'confirmation_required', 'idempotency_conflict', 'duplicate_order', 'rate_limited', 'temporarily_unavailable'], 'type': 'string', 'title': 'Code'}, 'message': {'type': 'string', 'title': 'Message', 'maxLength': 500, 'minLength': 1}, 'retryable': {'type': 'boolean', 'title': 'Retryable'}, 'next_action': {'type': 'string', 'title': 'Next Action', 'maxLength': 500, 'minLength': 1}, 'field_errors': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Field Errors', 'default': None}, 'correlation_id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}], 'title': 'Correlation Id', 'default': None}, 'retry_after_seconds': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'title': 'Retry After Seconds', 'default': None}}, 'additionalProperties': False}, 'OrderAmount': {'type': 'object', 'title': 'OrderAmount', 'required': ['amount_cents', 'amount_currency'], 'properties': {'amount_cents': {'type': 'integer', 'title': 'Amount Cents', 'minimum': 0}, 'amount_currency': {'type': 'string', 'title': 'Amount Currency', 'pattern': '^[A-Z]{3}$'}}, 'additionalProperties': False}, 'ContractTerms': {'type': 'object', 'title': 'ContractTerms', 'properties': {'months': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}], 'title': 'Months', 'default': None}, 'required': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Required', 'default': None}}, 'additionalProperties': False}, 'ReviewAddress': {'type': 'object', 'title': 'ReviewAddress', 'required': ['display'], 'properties': {'unit': {'anyOf': [{'type': 'string', 'maxLength': 100}, {'type': 'null'}], 'title': 'Unit', 'default': None}, 'display': {'type': 'string', 'title': 'Display', 'maxLength': 500, 'minLength': 1}}, 'additionalProperties': False}, 'PreferredDates': {'type': 'object', 'title': 'PreferredDates', 'properties': {'first': {'anyOf': [{'$ref': '#/$defs/InstallationChoice'}, {'type': 'null'}], 'default': None}, 'second': {'anyOf': [{'$ref': '#/$defs/InstallationChoice'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}, 'EquipmentOption': {'type': 'object', 'title': 'EquipmentOption', 'required': ['option_id', 'name', 'selection_type', 'included', 'unit_pricing', 'max_quantity', 'selected_quantity'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'included': {'type': 'boolean', 'title': 'Included'}, 'option_id': {'type': 'string', 'title': 'Option Id', 'maxLength': 256, 'minLength': 1}, 'max_quantity': {'type': 'integer', 'title': 'Max Quantity', 'minimum': 1}, 'unit_pricing': {'$ref': '#/$defs/OrderAmount'}, 'selection_type': {'enum': ['radio', 'checkbox'], 'type': 'string', 'title': 'Selection Type'}, 'selected_quantity': {'type': 'integer', 'title': 'Selected Quantity', 'minimum': 0}}, 'additionalProperties': False}, 'IncludedProduct': {'type': 'object', 'title': 'IncludedProduct', 'required': ['name', 'quantity', 'unit_pricing', 'total_pricing'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 300, 'minLength': 1}, 'quantity': {'type': 'integer', 'title': 'Quantity', 'minimum': 1}, 'unit_pricing': {'$ref': '#/$defs/OrderAmount'}, 'total_pricing': {'$ref': '#/$defs/OrderAmount'}}, 'additionalProperties': False}, 'IncludedProducts': {'type': 'object', 'title': 'IncludedProducts', 'properties': {'internet': {'type': 'array', 'items': {'$ref': '#/$defs/IncludedProduct'}, 'title': 'Internet', 'maxItems': 100}, 'television': {'type': 'array', 'items': {'$ref': '#/$defs/IncludedProduct'}, 'title': 'Television', 'maxItems': 100}, 'television_add_ons': {'type': 'array', 'items': {'$ref': '#/$defs/IncludedProduct'}, 'title': 'Television Add Ons', 'maxItems': 100}}, 'additionalProperties': False}, 'ReadyOrderReview': {'type': 'object', 'title': 'ReadyOrderReview', 'required': ['provider_name', 'selected_offer', 'included_products', 'one_time_fees', 'total_amount', 'service_address', 'unknown_charges_remain_unknown'], 'properties': {'consents': {'type': 'object', 'title': 'Consents', 'additionalProperties': {'type': 'boolean'}}, 'installation': {'anyOf': [{'$ref': '#/$defs/InstallationDetails'}, {'type': 'null'}], 'default': None}, 'total_amount': {'$ref': '#/$defs/OrderAmount'}, 'one_time_fees': {'type': 'array', 'items': {'$ref': '#/$defs/OneTimeFee'}, 'title': 'One Time Fees', 'maxItems': 100}, 'provider_name': {'type': 'string', 'title': 'Provider Name', 'maxLength': 300, 'minLength': 1}, 'selected_offer': {'$ref': '#/$defs/PlanFacts'}, 'bundle_discount': {'anyOf': [{'$ref': '#/$defs/OrderAmount'}, {'type': 'null'}], 'default': None}, 'service_address': {'$ref': '#/$defs/ReviewAddress'}, 'included_products': {'$ref': '#/$defs/IncludedProducts'}, 'billing_preferences': {'anyOf': [{'$ref': '#/$defs/BillingPreferences'}, {'type': 'null'}], 'default': None}, 'unknown_charges_remain_unknown': {'type': 'boolean', 'const': True, 'title': 'Unknown Charges Remain Unknown'}}, 'additionalProperties': False}, 'BillingPreferences': {'type': 'object', 'title': 'BillingPreferences', 'properties': {'auto_pay': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Auto Pay', 'default': None}, 'paperless_billing': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Paperless Billing', 'default': None}}, 'additionalProperties': False}, 'InstallationChoice': {'type': 'object', 'title': 'InstallationChoice', 'properties': {'date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Date', 'default': None}, 'time_window': {'anyOf': [{'enum': ['8:00 AM - 12:00 PM (Local Time)', '12:00 PM - 5:00 PM (Local Time)'], 'type': 'string'}, {'type': 'null'}], 'title': 'Time Window', 'default': None}}, 'additionalProperties': False}, 'OfferChangedReview': {'type': 'object', 'title': 'OfferChangedReview', 'required': ['previous_offer', 'current_offer', 'changed_fields'], 'properties': {'current_cart': {'anyOf': [{'$ref': '#/$defs/CartReview'}, {'type': 'null'}], 'default': None}, 'current_offer': {'$ref': '#/$defs/PlanFacts'}, 'previous_cart': {'anyOf': [{'$ref': '#/$defs/CartReview'}, {'type': 'null'}], 'default': None}, 'changed_fields': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Changed Fields', 'maxItems': 100, 'minItems': 1}, 'previous_offer': {'$ref': '#/$defs/PlanFacts'}}, 'additionalProperties': False}, 'InstallationDetails': {'type': 'object', 'title': 'InstallationDetails', 'properties': {'type': {'anyOf': [{'enum': ['self', 'professional'], 'type': 'string'}, {'type': 'null'}], 'title': 'Type', 'default': None}, 'preferred_dates': {'anyOf': [{'$ref': '#/$defs/PreferredDates'}, {'type': 'null'}], 'default': None}, 'desired_service_start_date': {'anyOf': [{'type': 'string', 'format': 'date'}, {'type': 'null'}], 'title': 'Desired Service Start Date', 'default': None}}, 'additionalProperties': False}}, 'title': 'ValidationEnvelope', 'required': ['schema_version', 'status'], 'properties': {'error': {'anyOf': [{'$ref': '#/$defs/ErrorDetail'}, {'type': 'null'}], 'default': None}, 'review': {'anyOf': [{'$ref': '#/$defs/ReadyOrderReview'}, {'$ref': '#/$defs/OfferChangedReview'}, {'type': 'null'}], 'title': 'Review', 'default': None}, 'status': {'enum': ['checking', 'needs_information', 'ready', 'offer_changed', 'unavailable', 'expired', 'failed', 'error'], 'type': 'string', 'title': 'Status'}, 'revision': {'anyOf': [{'type': 'integer', 'minimum': 1}, {'type': 'null'}], 'title': 'Revision', 'default': None}, 'expires_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Expires At', 'default': None}, 'terms_hash': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'title': 'Terms Hash', 'default': None}, 'checkout_id': {'anyOf': [{'type': 'string', 'maxLength': 256}, {'type': 'null'}], 'title': 'Checkout Id', 'default': None}, 'next_action': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'title': 'Next Action', 'default': None}, 'field_errors': {'type': 'object', 'title': 'Field Errors', 'additionalProperties': {'type': 'string'}}, 'schema_version': {'type': 'integer', 'const': 4, 'title': 'Schema Version'}, 'required_fields': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Required Fields', 'maxItems': 100}, 'validation_token': {'anyOf': [{'type': 'string', 'maxLength': 512}, {'type': 'null'}], 'title': 'Validation Token', 'default': None}, 'equipment_options': {'type': 'array', 'items': {'$ref': '#/$defs/EquipmentOption'}, 'title': 'Equipment Options', 'maxItems': 100}, 'retry_after_seconds': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'title': 'Retry After Seconds', 'default': None}}, 'additionalProperties': False}
Modificado
validate_order
25 de September de 2026 a las 03:02
Añadido
get_order
23 de September de 2026 a las 02:53
Añadido
create_order
23 de September de 2026 a las 02:53
Añadido
validate_order
23 de September de 2026 a las 02:53
Modificado
check_availability
23 de September de 2026 a las 02:53
Añadido
check_availability
17 de September de 2026 a las 12:35