Salta ai contenuti
PortoPorto

What a customer link is for and the data of its own subject only

GET
/api/public/v1/{slug}/links/{token}
Code sample: Shell / cURL
curl --request GET \
--url https://example.com/api/public/v1/example/links/example
slug
required
string
<= 63 characters
token
required
string
>= 16 characters <= 128 characters

OK

Media typeapplication/json
object
purpose
required
string
Allowed values: quote renewal signature unsubscribe
marina
required
object
name
required
string
default_locale
required
string
Allowed values: it en
locales
required
Array<string>
Allowed values: it en
expires_at
required
string format: date-time
quote
object
code
required
string
status
required
string
Allowed values: draft sent accepted declined expired
valid_until
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
customer_name
string
vessel_name
required
string
options
required
Array<object>
object
id
required
string
seq
required
integer
label
required
string
resource_codes
Array<string>
starts_on
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
ends_on
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
total_cents
required

Amount in integer cents of the marina currency

integer format: int64
deposit_cents
required

Amount in integer cents of the marina currency

integer format: int64
early_payment_total_cents

Amount in integer cents of the marina currency

integer format: int64
required_fields
required
Array<string>
Allowed values: address fiscal_code birth_date vessel_registration insurance_expiry insurance_document identity_document
missing_fields
required
Array<string>
Allowed values: address fiscal_code birth_date vessel_registration insurance_expiry insurance_document identity_document
renewal
object
status
required
string
Allowed values: previewed proposed sent accepted signed completed declined expired excluded
deadline_on
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
customer_name
string
vessel_name
required
string
resource_codes
Array<string>
old_total_cents
required

Amount in integer cents of the marina currency

integer format: int64
new_total_cents
required

Amount in integer cents of the marina currency

integer format: int64
early_payment_total_cents

Amount in integer cents of the marina currency

integer format: int64
new_starts_on
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
new_ends_on
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
signature_link

Reserved: not set in M4 (m4-plan §15 D33). The signer link is emailed when the contract document is rendered and the request is dispatched.

string
signature
object
request_status
required
string
Allowed values: pending_document sent partially_signed signed declined expired cancelled
signer_status
required
string
Allowed values: waiting invited signed declined
role
required
string
Allowed values: customer co_holder outgoing_holder incoming_holder legal_representative marina
document_title
required
string
identity
required

The stored identity data the signer confirms (name and, for persons, fiscal code)

object
name
string
fiscal_code
string
otp_channel
required
string
Allowed values: email
attempts_left
required
integer
signature_kind
string
Allowed values: firma_elettronica_semplice
deposit
object
amount_cents
required

Amount in integer cents of the marina currency

integer format: int64
due_on
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
bank_details

Bank details for transfers; masked (IBAN last 4) unless payments.collect

object
iban
string
<= 34 characters
holder
string
<= 140 characters
bank
string
<= 140 characters
bic
string
<= 11 characters
reference

Payment reference to quote in the transfer (contract code)

string
unsubscribe
object
subscribed
required
boolean
yard_quote

The yard quote of a link (subject_type yard_quote); customer-facing data only

object
number
required
string
kind
required
string
Allowed values: job variation
status
required
string
Allowed values: draft sent accepted declined expired
valid_until
required

Calendar date YYYY-MM-DD in the marina timezone

string format: date
vessel_name
required
string
work_order_number

Variation quotes only

string
lines
required
Array<object>
object
description
required
string
unit
string
Allowed values: night month season year m m2 kwh m3 hour piece lump
qty_milli
required

Quantity in thousandths (1.5 = 1500)

integer format: int64
unit_cents
required

Amount in integer cents of the marina currency

integer format: int64
discount_cents

Amount in integer cents of the marina currency

integer format: int64
net_cents
required

Amount in integer cents of the marina currency

integer format: int64
vat_rate_bp
required

Percentage in integer basis points (1 % = 100)

integer format: int64
net_cents
required

Amount in integer cents of the marina currency

integer format: int64
vat_cents
required

Amount in integer cents of the marina currency

integer format: int64
gross_cents
required

Amount in integer cents of the marina currency

integer format: int64
deposit_amount_cents
required

Amount in integer cents of the marina currency

integer format: int64
billing_mode
required
string
Allowed values: actual fixed progress
conditions
required
string
planned_start_on

Calendar date YYYY-MM-DD in the marina timezone

string format: date
planned_delivery_on

Calendar date YYYY-MM-DD in the marina timezone

string format: date
can_accept
required
boolean

Example

{
"purpose": "quote",
"marina": {
"default_locale": "it",
"locales": [
"it"
]
},
"quote": {
"status": "draft",
"required_fields": [
"address"
],
"missing_fields": [
"address"
]
},
"renewal": {
"status": "previewed"
},
"signature": {
"request_status": "pending_document",
"signer_status": "waiting",
"role": "customer",
"otp_channel": "email",
"signature_kind": "firma_elettronica_semplice"
},
"yard_quote": {
"kind": "job",
"status": "draft",
"lines": [
{
"unit": "night"
}
],
"billing_mode": "actual"
}
}

Not found (or not visible to the principal)

Media typeapplication/problem+json
object
type
required
string
Allowed values: bad_request validation_failed weak_password invalid_reset_token invalid_totp pairing_code_invalid invalid_scope invalid_webhook_url unknown_event_type unauthorized invalid_credentials totp_required forbidden csrf_failed totp_enrolment_required totp_required_by_policy not_found method_not_allowed conflict slug_taken already_member last_owner totp_already_enabled totp_not_enrolled endpoint_disabled idempotency_in_progress version_conflict unsupported_media_type idempotency_key_reused precondition_required rate_limited internal_error not_ready map_invalid map_not_empty map_not_georeferenced invalid_file file_too_large csv_invalid customer_anonymized customer_merged download_link_expired no_price promo_not_applicable price_list_invalid price_list_immutable price_list_overlap in_use resource_taken fit_blocked placement_invalid invalid_transition quote_expired hold_expired closure_active undo_unavailable release_invalid customer_required not_implemented renewal_exists proposal_closed signature_open invalid_signature otp_invalid otp_locked otp_rate_limited link_invalid template_invalid template_limits paper_scan_required insurance_required customer_email_missing shares_invalid table_incomplete table_active transfer_requirements mandate_overlap vessel_in_other_fleet vessel_not_in_fleet import_not_undoable provider_unknown code_taken charge_immutable charge_cancelled use_edit match_exceeds refund_exceeds already_reversed credit_insufficient not_deposit nothing_to_settle charge_exists no_termination_amount not_exported export_empty export_too_large charges_not_open release_not_resold cash_session_required cash_session_open cash_session_closed cash_insufficient register_in_use provider_disabled provider_refund_unsupported provider_error billing_item_missing first_run_token_invalid first_run_done lan_port_unavailable lan_no_address backup_in_progress restore_failed restore_backup_newer allocation_changed offline_not_allowed remote_unreachable remote_pin_mismatch peripheral_unavailable claim_expired app_pin_invalid invalid_period invalid_report_filter report_too_large unknown_indicator booking_unavailable booking_rules booking_busy consent_required text_outdated refund_changed price_changed cancellation_not_allowed nothing_due idempotency_mismatch storage_target_invalid storage_no_space area_exits_invalid pinned_invalid too_many_items scenario_window_invalid scenario_not_draft scenario_conflicts movement_not_pending element_invalid maintenance_conflicts task_already_done reading_charged consumption_frozen formula_invalid work_order_closed work_order_has_charges qualification_mismatch capacity_exceeded dependency_violation duration_too_long offline_time_out_of_range timer_already_running return_exceeds_issued nothing_to_bill equipment_slot_taken operator_busy equipment_out_of_service equipment_capacity_exceeded operator_not_enabled outside_lift_window ingest_unauthorized ingest_timestamp_out_of_range invalid_payload segment_overlap resource_has_sensor invalid_sensor_resource alert_stale alert_action_not_allowed profile_incomplete photo_invalid
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
errors
Array<object>
object
field
required
string
code
required
string
message
string
retry_after_seconds
integer
issues

Map validation issues (map_invalid)

Array<object>
object
code
required

ValidateMap rule (m1-plan §2.3), e.g. berth_overlap

string
severity
required
string
Allowed values: error warning
element_type
required
string
refs
required
Array<string>
field
string
params

Numbers only (cm, counts)

object
key
additional properties
integer format: int64
price_list_issues

Price list validation issues (price_list_invalid)

Array<object>
object
code
required

Pricing.Validate issue code (m2-plan §4.8), e.g. period_overlap

string
severity
required
string
Allowed values: error warning
ref
required
object
kind
required
string
Allowed values: list settings period band rule item
id

Id of the row, or the client key of an unsaved one

string
field
string
params

Codes and integers as strings; never personal data

object
key
additional properties
string
details

Machine-readable details: no_price {item_id, contract_type, night, unit, category, band, reason}; price_list_overlap {conflicts: [{id, code, valid_from, valid_to}]}; in_use {references}; resource_taken ConflictDetail; fit_blocked FitResult; placement_invalid {reason, allocation_id?}; invalid_transition {from, action}; closure_active {closure_id, from_date, to_date}; release_invalid {reason}; allocation_changed {current_resource_id, current_resource_code} (null when the allocation is gone); remote_pin_mismatch {expected_fingerprint, presented_fingerprint}; scenario_conflicts {conflicts: [StorageScenarioConflict]}; maintenance_conflicts {conflicts: [MaintenanceConflict]}; storage_no_space {area_id, from, to}. Ids, codes, dates and integers only.

object
key
additional properties
any

Example

{
"type": "bad_request",
"issues": [
{
"severity": "error"
}
],
"price_list_issues": [
{
"severity": "error",
"ref": {
"kind": "list"
}
}
]
}

Rate limited (see Retry-After)

Media typeapplication/problem+json
object
type
required
string
Allowed values: bad_request validation_failed weak_password invalid_reset_token invalid_totp pairing_code_invalid invalid_scope invalid_webhook_url unknown_event_type unauthorized invalid_credentials totp_required forbidden csrf_failed totp_enrolment_required totp_required_by_policy not_found method_not_allowed conflict slug_taken already_member last_owner totp_already_enabled totp_not_enrolled endpoint_disabled idempotency_in_progress version_conflict unsupported_media_type idempotency_key_reused precondition_required rate_limited internal_error not_ready map_invalid map_not_empty map_not_georeferenced invalid_file file_too_large csv_invalid customer_anonymized customer_merged download_link_expired no_price promo_not_applicable price_list_invalid price_list_immutable price_list_overlap in_use resource_taken fit_blocked placement_invalid invalid_transition quote_expired hold_expired closure_active undo_unavailable release_invalid customer_required not_implemented renewal_exists proposal_closed signature_open invalid_signature otp_invalid otp_locked otp_rate_limited link_invalid template_invalid template_limits paper_scan_required insurance_required customer_email_missing shares_invalid table_incomplete table_active transfer_requirements mandate_overlap vessel_in_other_fleet vessel_not_in_fleet import_not_undoable provider_unknown code_taken charge_immutable charge_cancelled use_edit match_exceeds refund_exceeds already_reversed credit_insufficient not_deposit nothing_to_settle charge_exists no_termination_amount not_exported export_empty export_too_large charges_not_open release_not_resold cash_session_required cash_session_open cash_session_closed cash_insufficient register_in_use provider_disabled provider_refund_unsupported provider_error billing_item_missing first_run_token_invalid first_run_done lan_port_unavailable lan_no_address backup_in_progress restore_failed restore_backup_newer allocation_changed offline_not_allowed remote_unreachable remote_pin_mismatch peripheral_unavailable claim_expired app_pin_invalid invalid_period invalid_report_filter report_too_large unknown_indicator booking_unavailable booking_rules booking_busy consent_required text_outdated refund_changed price_changed cancellation_not_allowed nothing_due idempotency_mismatch storage_target_invalid storage_no_space area_exits_invalid pinned_invalid too_many_items scenario_window_invalid scenario_not_draft scenario_conflicts movement_not_pending element_invalid maintenance_conflicts task_already_done reading_charged consumption_frozen formula_invalid work_order_closed work_order_has_charges qualification_mismatch capacity_exceeded dependency_violation duration_too_long offline_time_out_of_range timer_already_running return_exceeds_issued nothing_to_bill equipment_slot_taken operator_busy equipment_out_of_service equipment_capacity_exceeded operator_not_enabled outside_lift_window ingest_unauthorized ingest_timestamp_out_of_range invalid_payload segment_overlap resource_has_sensor invalid_sensor_resource alert_stale alert_action_not_allowed profile_incomplete photo_invalid
title
required
string
status
required
integer
detail
string
instance
string
request_id
string
errors
Array<object>
object
field
required
string
code
required
string
message
string
retry_after_seconds
integer
issues

Map validation issues (map_invalid)

Array<object>
object
code
required

ValidateMap rule (m1-plan §2.3), e.g. berth_overlap

string
severity
required
string
Allowed values: error warning
element_type
required
string
refs
required
Array<string>
field
string
params

Numbers only (cm, counts)

object
key
additional properties
integer format: int64
price_list_issues

Price list validation issues (price_list_invalid)

Array<object>
object
code
required

Pricing.Validate issue code (m2-plan §4.8), e.g. period_overlap

string
severity
required
string
Allowed values: error warning
ref
required
object
kind
required
string
Allowed values: list settings period band rule item
id

Id of the row, or the client key of an unsaved one

string
field
string
params

Codes and integers as strings; never personal data

object
key
additional properties
string
details

Machine-readable details: no_price {item_id, contract_type, night, unit, category, band, reason}; price_list_overlap {conflicts: [{id, code, valid_from, valid_to}]}; in_use {references}; resource_taken ConflictDetail; fit_blocked FitResult; placement_invalid {reason, allocation_id?}; invalid_transition {from, action}; closure_active {closure_id, from_date, to_date}; release_invalid {reason}; allocation_changed {current_resource_id, current_resource_code} (null when the allocation is gone); remote_pin_mismatch {expected_fingerprint, presented_fingerprint}; scenario_conflicts {conflicts: [StorageScenarioConflict]}; maintenance_conflicts {conflicts: [MaintenanceConflict]}; storage_no_space {area_id, from, to}. Ids, codes, dates and integers only.

object
key
additional properties
any

Example

{
"type": "bad_request",
"issues": [
{
"severity": "error"
}
],
"price_list_issues": [
{
"severity": "error",
"ref": {
"kind": "list"
}
}
]
}
Retry-After
integer
diCoste360.itCoste360.it

Porto è sviluppato da Coste360 SRL. Codice sorgente disponibile con licenza BSL 1.1; il marchio Porto è escluso dalla licenza.