Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| state | object | |
| tasks | array | The tasks to be performed by the user. The `face_liveness` task can only be performed when the `document_scan` task is added. For the `face_match` task both the `document_scan` task and `face_liveness |
| settings | object | |
| locale | object | The language of the ID Scan process. Currently supports English, Dutch, French. |
| url | string | The URL to start the transaction. |
| mobileOnly | boolean | When this is set to true, the user must complete the transaction on their mobile device. |
| returnUrl | string | The URL to redirect the user to after the transaction is completed. The `trxid`, `state` and `resultid` will be added as a query parameter. If the URL is not set a default page is shown. |
| scanReturnUrl | string | The URL to redirect the user to in case the transaction is transferred to a mobile device (by scanning the QR code) and the transaction is completed. The `trxid` and `state` will be added as a query p |
| expires | string | The date the transaction expires. |
| created | string | The date the transaction was created. |
| expiresIn | integer | The time in seconds after which a transaction should expire. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/cm-com/main/json-schema/cm-com-create-transaction-schema.json",
"title": "CreateTransaction",
"x-generated": "2026-10-13",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/cm-com-verification-id-scan-v1-openapi.yml#/components/schemas/CreateTransaction",
"allOf": [
{
"$ref": "#/$defs/Transaction"
}
],
"properties": {
"expiresIn": {
"type": "integer",
"minimum": 3600,
"maximum": 86400,
"description": "The time in seconds after which a transaction should expire.",
"default": 3600
}
},
"$defs": {
"CaptureSource": {
"type": "string",
"enum": [
"camera",
"file"
],
"default": "camera"
},
"GraphicField": {
"type": "string",
"enum": [
"bar_code",
"color_dynamic",
"contact_chip",
"document_image",
"document_rear",
"eye",
"finger_left_four_fingers",
"finger_left_index",
"finger_left_little",
"finger_left_middle",
"finger_left_ring",
"finger_left_thumb",
"finger_right_four_fingers",
"finger_right_index",
"finger_right_little",
"finger_right_middle",
"finger_right_ring",
"finger_right_thumb",
"finger_two_thumbs",
"fingerprint",
"ghost_portrait",
"other",
"portrait",
"portrait_of_child",
"proof_of_citizenship",
"signature",
"stamp"
]
},
"Locale": {
"type": "string",
"enum": [
"en-US",
"nl-NL",
"fr-FR",
"it-IT"
],
"default": "en-US",
"description": "The language of the ID Scan process. Currently supports English, Dutch, French, and Italian."
},
"Settings": {
"type": "object",
"properties": {
"documentScan": {
"properties": {
"allowedExpiration": {
"type": "integer",
"description": "Change the allowed expiry date of the document. A positive number allows a document to be expired for the specified number of days, a negative number requires a document to be valid for at least the specified number of days."
},
"captureSources": {
"type": [
"array",
"null"
],
"description": "The camera capture source allows the user to live capture an ID document. The file capture source allows the user to upload an already captured ID document.",
"items": {
"$ref": "#/$defs/CaptureSource"
},
"default": [
"camera",
"file"
]
},
"redactFields": {
"type": "array",
"description": "The fields to be masked/blurred on the downloaded ID document.",
"items": {
"oneOf": [
{
"$ref": "#/$defs/TextField"
},
{
"$ref": "#/$defs/GraphicField"
}
]
}
},
"minimumAge": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Set a minimum age of the user, that will be derived from the document."
},
"maximumAge": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Set a maximum age of the user, that will be derived from the document."
},
"requireBothSides": {
"type": [
"boolean",
"null"
],
"description": "If set to true, the back side of the document will also be requested. Regardless if the personal number is detected on the front side. Unless the document has no other side."
},
"desiredFields": {
"type": "array",
"description": "Request availability of specific fields. The other side of the document will be scanned if the desired fields are not available on the front side. The document scan will not fail if the desired fields can't be found on any of the scanned sides.",
"items": {
"$ref": "#/$defs/TextField"
}
},
"validateFields": {
"type": "array",
"description": "The specified fields must have a valid validity status. A field with a validity status of `not_checked` is also considered valid. If any of the fields have an `invalid` status, the user must attempt to scan again.",
"items": {
"$ref": "#/$defs/TextField"
}
},
"extractFields": {
"type": "array",
"description": "Specify which fields should be extracted from the document. Only the specified fields will be processed and returned in the response.",
"items": {
"oneOf": [
{
"$ref": "#/$defs/TextField"
},
{
"$ref": "#/$defs/GraphicField"
}
]
}
}
}
}
}
},
"TaskType": {
"type": "string",
"enum": [
"document_scan",
"face_liveness",
"face_match"
]
},
"TextField": {
"type": "string",
"enum": [
"academic_title",
"accompanied_by",
"address",
"address_area",
"address_block_number",
"address_building",
"address_building_type",
"address_city",
"address_city_sector",
"address_city_type",
"address_country",
"address_county_type",
"address_entrance",
"address_flat",
"address_floor_number",
"address_house",
"address_jurisdiction_code",
"address_location",
"address_municipality",
"address_postal_code",
"address_state",
"address_street",
"address_street_number",
"address_street_type",
"address_zip_code",
"administrative_number",
"age",
"age_at_issue",
"agy",
"airline_code",
"airline_designator_of_boarding_pass_issuer",
"airline_name",
"airline_name_frequent_flyer",
"airline_numeric_code",
"airport_from",
"airport_to",
"aka_date_of_birth",
"aka_given_names",
"aka_name_prefix",
"aka_name_suffix",
"aka_social_security_number",
"aka_surname",
"aka_surname_and_given_names",
"allergies",
"alt_code",
"alt_date_of_expiry",
"application_number",
"artistic_name",
"audit_information",
"authority",
"authority_code",
"authority_rus",
"authorization_number",
"bank_card_number",
"bank_card_valid_thru",
"banknote_number",
"bdb_type",
"benefits_number",
"binary_code",
"biometric_format_owner",
"biometric_format_type",
"biometric_product_id",
"biometric_subtype",
"biometric_type",
"blood_group",
"booklet_number",
"caliber",
"card_access_number",
"category",
"ccw_until",
"cdl_class",
"century_date_of_birth",
"chassis_number",
"check_in_sequence_number",
"children",
"citizenship_of_first_person",
"citizenship_of_second_person",
"citizenship_status",
"civil_status",
"commercial_indicator",
"commercial_vehicle_codes",
"company_name",
"compartment_code",
"complexion",
"compliance_type",
"conditions",
"configuration",
"consul",
"control_number",
"copy",
"court_code",
"csc_code",
"cty",
"current_date",
"custody_info",
"cvv",
"data_date_of_expiry",
"data_discriminator",
"date_first_renewal",
"date_of_arrival",
"date_of_birth",
"date_of_birth_check_digit",
"date_of_birth_checksum",
"date_of_birth_of_husband",
"date_of_birth_of_wife",
"date_of_creation",
"date_of_expiry",
"date_of_expiry_check_digit",
"date_of_expiry_checksum",
"date_of_first_positive_test_result",
"date_of_flight",
"date_of_insurance_expiry",
"date_of_issue",
"date_of_issue_boarding_pass",
"date_of_issue_check_digit",
"date_of_issue_checksum",
"date_of_personalization",
"date_of_registration",
"date_of_retirement",
"date_of_specimen_collection",
"date_second_renewal",
"day",
"department",
"dept_number",
"destination",
"digital_travel_authorization_number",
"discretionary_data",
"dl_cdl_restriction_code",
"dl_class",
"dl_class_code_a1_from",
"dl_class_code_a1_notes",
"dl_class_code_a1_to",
"dl_class_code_a2_from",
"dl_class_code_a2_notes",
"dl_class_code_a2_to",
"dl_class_code_a3_from",
"dl_class_code_a3_notes",
"dl_class_code_a3_to",
"dl_class_code_a_from",
"dl_class_code_a_notes",
"dl_class_code_a_to",
"dl_class_code_am_from",
"dl_class_code_am_notes",
"dl_class_code_am_to",
"dl_class_code_b1_from",
"dl_class_code_b1_notes",
"dl_class_code_b1_to",
"dl_class_code_b2_from",
"dl_class_code_b2_notes",
"dl_class_code_b2_to",
"dl_class_code_b2e_from",
"dl_class_code_b2e_notes",
"dl_class_code_b2e_to",
"dl_class_code_b_from",
"dl_class_code_b_notes",
"dl_class_code_b_to",
"dl_class_code_be_from",
"dl_class_code_be_notes",
"dl_class_code_be_to",
"dl_class_code_btp_from",
"dl_class_code_btp_notes",
"dl_class_code_btp_to",
"dl_class_code_c1_from",
"dl_class_code_c1_notes",
"dl_class_code_c1_to",
"dl_class_code_c1e_from",
"dl_class_code_c1e_notes",
"dl_class_code_c1e_to",
"dl_class_code_c2_from",
"dl_class_code_c2_notes",
"dl_class_code_c2_to",
"dl_class_code_c3_from",
"dl_class_code_c3_notes",
"dl_class_code_c3_to",
"dl_class_code_c_from",
"dl_class_code_c_notes",
"dl_class_code_c_to",
"dl_class_code_ca_from",
"dl_class_code_ca_notes",
"dl_class_code_ca_to",
"dl_class_code_cd_from",
"dl_class_code_cd_notes",
"dl_class_code_cd_to",
"dl_class_code_ce_from",
"dl_class_code_ce_notes",
"dl_class_code_ce_to",
"dl_class_code_d1_from",
"dl_class_code_d1_notes",
"dl_class_code_d1_to",
"dl_class_code_d1e_from",
"dl_class_code_d1e_notes",
"dl_class_code_d1e_to",
"dl_class_code_d2_from",
"dl_class_code_d2_notes",
"dl_class_code_d2_to",
"dl_class_code_d3_from",
"dl_class_code_d3_notes",
"dl_class_code_d3_to",
"dl_class_code_d_from",
"dl_class_code_d_notes",
"dl_class_code_d_to",
"dl_class_code_de_from",
"dl_class_code_de_notes",
"dl_class_code_de_to",
"dl_class_code_e_from",
"dl_class_code_e_notes",
"dl_class_code_e_to",
"dl_class_code_eb_from",
"dl_class_code_eb_notes",
"dl_class_code_eb_to",
"dl_class_code_ec1_from",
"dl_class_code_ec1_notes",
"dl_class_code_ec1_to",
"dl_class_code_ec_from",
"dl_class_code_ec_notes",
"dl_class_code_ec_to",
"dl_class_code_f_from",
"dl_class_code_f_notes",
"dl_class_code_f_to",
"dl_class_code_fa1_from",
"dl_class_code_fa1_notes",
"dl_class_code_fa1_to",
"dl_class_code_fa_from",
"dl_class_code_fa_notes",
"dl_class_code_fa_to",
"dl_class_code_fb_from",
"dl_class_code_fb_notes",
"dl_class_code_fb_to",
"dl_class_code_g1_from",
"dl_class_code_g1_notes",
"dl_class_code_g1_to",
"dl_class_code_g_from",
"dl_class_code_g_notes",
"dl_class_code_g_to",
"dl_class_code_h_from",
"dl_class_code_h_notes",
"dl_class_code_h_to",
"dl_class_code_hc_from",
"dl_class_code_hc_notes",
"dl_class_code_hc_to",
"dl_class_code_hr_from",
"dl_class_code_hr_notes",
"dl_class_code_hr_to",
"dl_class_code_i_from",
"dl_class_code_i_notes",
"dl_class_code_i_to",
"dl_class_code_j_from",
"dl_class_code_j_notes",
"dl_class_code_j_to",
"dl_class_code_k_from",
"dl_class_code_k_notes",
"dl_class_code_k_to",
"dl_class_code_l_from",
"dl_class_code_l_notes",
"dl_class_code_l_to",
"dl_class_code_lc_from",
"dl_class_code_lc_notes",
"dl_class_code_lc_to",
"dl_class_code_lk_from",
"dl_class_code_lk_notes",
"dl_class_code_lk_to",
"dl_class_code_lr_from",
"dl_class_code_lr_notes",
"dl_class_code_lr_to",
"dl_class_code_m_from",
"dl_class_code_m_notes",
"dl_class_code_m_to",
"dl_class_code_mc_from",
"dl_class_code_mc_notes",
"dl_class_code_mc_to",
"dl_class_code_mr_from",
"dl_class_code_mr_notes",
"dl_class_code_mr_to",
"dl_class_code_n_from",
"dl_class_code_n_notes",
"dl_class_code_n_to",
"dl_class_code_nt_from",
"dl_class_code_nt_notes",
"dl_class_code_nt_to",
"dl_class_code_pw_from",
"dl_class_code_pw_notes",
"dl_class_code_pw_to",
"dl_class_code_r_from",
"dl_class_code_r_notes",
"dl_class_code_r_to",
"dl_class_code_re_from",
"dl_class_code_re_notes",
"dl_class_code_re_to",
"dl_class_code_rm_from",
"dl_class_code_rm_notes",
"dl_class_code_rm_to",
"dl_class_code_s_from",
"dl_class_code_s_notes",
"dl_class_code_s_to",
"dl_class_code_t_from",
"dl_class_code_t_notes",
"dl_class_code_t_to",
"dl_class_code_tb_from",
"dl_class_code_tb_notes",
"dl_class_code_tb_to",
"dl_class_code_tm_from",
"dl_class_code_tm_notes",
"dl_class_code_tm_to",
"dl_class_code_tn_from",
"dl_class_code_tn_notes",
"dl_class_code_tn_to",
"dl_class_code_tr_from",
"dl_class_code_tr_notes",
"dl_class_code_tr_to",
"dl_class_code_tv_from",
"dl_class_code_tv_notes",
"dl_class_code_tv_to",
"dl_class_code_v_from",
"dl_class_code_v_notes",
"dl_class_code_v_to",
"dl_class_code_w_from",
"dl_class_code_w_notes",
"dl_class_code_w_to",
"dl_duplicate_date",
"dl_endorsed",
"dl_issue_type",
"dl_record_created",
"dl_restriction_code",
"dl_under_18_date",
"dl_under_19_date",
"dl_under_21_date",
"dni_number",
"document_class_code",
"document_class_name",
"document_discriminator",
"document_number",
"document_number_check_digit",
"document_number_checksum",
"document_series",
"document_status",
"dod_number",
"donor",
"dossier_number",
"ds_certificate_issuer",
"ds_certificate_subject",
"ds_certificate_valid_from",
"ds_certificate_valid_to",
"dtc_date_of_expiry",
"dtc_id",
"dtc_version",
"duf_number",
"duration_of_stay",
"e_id_place_of_birth_city",
"e_id_place_of_birth_country",
"e_id_place_of_birth_state",
"e_id_place_of_birth_street",
"e_id_place_of_birth_zip_code",
"e_id_residence_permit_1",
"e_id_residence_permit_2",
"ec_environmental_type",
"ef_card_access",
"electronic_ticket_indicator",
"email",
"endorsement_expiration_date",
"engine_model",
"engine_number",
"engine_power",
"engine_volume",
"eqv_code",
"exam_date",
"except_in_tanks",
"expiry_timestamp",
"eyes_color",
"faculty",
"family_name",
"family_name_truncation",
"fast_track",
"father_country_of_birth",
"father_date_of_birth",
"father_given_name",
"father_personal_number",
"father_place_of_birth",
"father_surname",
"fathers_name",
"fathers_name_rus",
"federal_elections",
"fee",
"field_from_mrz",
"final_check_digit",
"final_checksum",
"first_issue_date",
"first_issue_date_checkdigit",
"first_issue_date_checksum",
"first_name",
"first_name_truncation",
"first_surname",
"flight_number",
"folio_number",
"form_of_education",
"fourth_name",
"free_baggage_allowance",
"frequent_flyer_airline_designator",
"frequent_flyer_number",
"from_airport_code",
"fuel_type",
"given_names",
"given_names_rus",
"gnib_number",
"grandfather_name",
"grandfather_name_maternal",
"hair_color",
"health_number",
"height",
"identifier",
"identity_card_number",
"identity_card_number_check_digit",
"identity_card_number_checksum",
"in_tanks",
"inventory_number",
"invitation_number",
"invitation_number_check_digit",
"invitation_number_checksum",
"invited_by",
"iso_issuer_id_number",
"issue_timestamp",
"issuer_identification_number",
"issuing_state_code",
"issuing_state_code_alpha2",
"issuing_state_code_numeric",
"issuing_state_name",
"jurisdiction_endorsement_code",
"jurisdiction_restriction_code",
"jurisdiction_specific_data",
"jurisdiction_vehicle_class",
"last_name",
"license_number",
"limited_duration_document_indicator",
"line_1_check_digit",
"line_1_checksum",
"line_1_optional_data",
"line_2_check_digit",
"line_2_checksum",
"line_2_optional_data",
"line_3_check_digit",
"line_3_checksum",
"line_3_optional_data",
"mailing_address_city",
"mailing_address_jurisdiction_code",
"mailing_address_postal_code",
"mailing_address_street",
"make",
"marital_status",
"max_mass_of_trailer_braked",
"max_mass_of_trailer_unbraked",
"max_speed",
"mc_novice_date",
"medical_indicator_codes",
"method_of_testing",
"middle_name",
"middle_name_truncation",
"military_book_number",
"military_service_from",
"military_service_to",
"model",
"month",
"month_of_birth",
"mortgage_by",
"mother_country_of_birth",
"mother_date_of_birth",
"mother_given_name",
"mother_personal_number",
"mother_place_of_birth",
"mother_surname",
"mothers_name",
"mrz_strings",
"mrz_strings_icao_rfid",
"mrz_strings_with_correct_check_sums",
"mrz_type",
"mvc_agency",
"name_prefix",
"name_suffix",
"nationality",
"nationality_code",
"nationality_code_alpha2",
"nationality_code_numeric",
"non_domiciled_indicator",
"non_resident_indicator",
"number_of_axles",
"number_of_card_issuance",
"number_of_card_issuance_check_digit",
"number_of_card_issuance_checksum",
"number_of_cylinders",
"number_of_duplicates",
"number_of_entries",
"number_of_seats",
"number_of_standing_places",
"observations",
"ocr_number",
"old_date_of_issue",
"old_document_number",
"old_place_of_issue",
"optional_data",
"optional_data_check_digit",
"optional_data_checksum",
"organization",
"other",
"other_name",
"other_person_name",
"other_valid_id",
"owner",
"parents_given_names",
"passport_number",
"passport_number_check_digit",
"passport_number_checksum",
"patron_header_version",
"pay_grade",
"payload_capacity",
"payment_period_from",
"payment_period_to",
"pdf417_codec",
"permissible_axle_load",
"permit_date_of_expiry",
"permit_date_of_issue",
"permit_dl_class",
"permit_endorsed",
"permit_identifier",
"permit_restriction_code",
"person_to_notify_address",
"person_to_notify_date_of_record",
"person_to_notify_name",
"person_to_notify_phone",
"personal_number",
"personal_number_check_digit",
"personal_number_checksum",
"personal_summary",
"personalization_sn",
"phone",
"place_of_birth",
"place_of_birth_area",
"place_of_birth_city",
"place_of_birth_rus",
"place_of_birth_state_code",
"place_of_examination",
"place_of_issue",
"place_of_registration",
"pnr_code",
"police_district",
"power_weight_ratio",
"precinct",
"previous_type",
"profession",
"professional_id_number",
"pseudo_code",
"purpose_of_entry",
"race_ethnicity",
"rank",
"reference_number",
"reference_number_check_digit",
"reference_number_checksum",
"reg_cert_body_number",
"reg_cert_body_type",
"reg_cert_car_color",
"reg_cert_car_mark",
"reg_cert_car_model",
"reg_cert_car_type",
"reg_cert_max_weight",
"reg_cert_reg_number",
"reg_cert_reg_number_check_digit",
"reg_cert_reg_number_checksum",
"reg_cert_vehicle_its_code",
"reg_cert_vin",
"reg_cert_vin_check_digit",
"reg_cert_vin_checksum",
"reg_cert_weight",
"relationship",
"religion",
"remainder_term",
"resident_from",
"resident_until",
"result_of_testing",
"retirement_number",
"revision_date",
"room_number",
"sbh_integrity_options",
"sbh_security_options",
"seat_number",
"second_name",
"second_surname",
"section",
"selectee_indicator",
"sequence_number",
"serial_number",
"sex",
"short_flight_number",
"signature",
"skin_color",
"social_security_number",
"sp_code",
"special_notes",
"sponsor",
"sponsor_service",
"sponsor_ssn",
"sponsor_status",
"stamp_number",
"status_date_of_expiry",
"surname",
"surname_and_given_names",
"surname_and_given_names_check_digit",
"surname_and_given_names_checksum",
"surname_and_given_names_rus",
"surname_at_birth",
"surname_of_husband_after_registration",
"surname_of_spouse",
"surname_of_wife_after_registration",
"tax",
"tax_number",
"telex_code",
"territorial_validity",
"third_name",
"ticket_number",
"title",
"to_airport_code",
"tracking_number",
"trailer_hitch",
"transaction_number",
"transmission_type",
"type_approval_number",
"type_of_testing",
"unique_certificate_identifier",
"unique_customer_identifier",
"url",
"uscis",
"vaccination_certificate_identifier",
"validity_period",
"vehicle_category",
"veteran",
"visa_class",
"visa_id",
"visa_id_check_digit",
"visa_id_checksum",
"visa_id_rus",
"visa_number",
"visa_number_check_digit",
"visa_number_checksum",
"visa_subclass",
"visa_type",
"visa_valid_from",
"visa_valid_until",
"visa_valid_until_check_digit",
"visa_valid_until_checksum",
"voter",
"voter_key",
"voucher_number",
"vrc_data_object_entry",
"weight",
"weight_pounds",
"year",
"year_of_birth",
"year_of_expiry",
"years_since_issue"
]
},
"Transaction": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"readOnly": true
},
"state": {
"$ref": "#/$defs/TransactionState",
"readOnly": true
},
"tasks": {
"type": "array",
"items": {
"$ref": "#/$defs/TaskType"
},
"description": "The tasks to be performed by the user. The `face_liveness` task can only be performed when the `document_scan` task is added. For the `face_match` task both the `document_scan` task and `face_liveness` task must be added."
},
"settings": {
"$ref": "#/$defs/Settings"
},
"locale": {
"$ref": "#/$defs/Locale",
"description": "The language of the ID Scan process. Currently supports English, Dutch, French.",
"default": "en-US"
},
"url": {
"type": "string",
"description": "The URL to start the transaction.",
"readOnly": true
},
"mobileOnly": {
"type": "boolean",
"description": "When this is set to true, the user must complete the transaction on their mobile device.",
"default": false
},
"returnUrl": {
"type": "string",
"description": "The URL to redirect the user to after the transaction is completed. The `trxid`, `state` and `resultid` will be added as a query parameter. If the URL is not set a default page is shown.",
"default": null
},
"scanReturnUrl": {
"type": "string",
"description": "The URL to redirect the user to in case the transaction is transferred to a mobile device (by scanning the QR code) and the transaction is completed. The `trxid` and `state` will be added as a query parameter. If the URL is not set a default page is shown.",
"default": null
},
"expires": {
"type": "string",
"format": "date-time",
"description": "The date the transaction expires.",
"readOnly": true
},
"created": {
"type": "string",
"format": "date-time",
"description": "The date the transaction was created.",
"readOnly": true
}
},
"required": [
"tasks"
]
},
"TransactionState": {
"type": "string",
"description": "Current state of the transaction",
"enum": [
"pending",
"completed",
"failed"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cm-com-create-transaction"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.