Memo Bank · Schema
TransactionPage
CompanyFintech InsurtechBankingBusiness BankingPaymentsSEPASEPA Direct Debitvirtual-ibanWire TransfersOpen BankingPSD2Berlin GroupWebhookMCPFrance
Properties
| Name | Type | Description |
|---|---|---|
| results | array | Elements of the page. |
| has_prev | boolean | Flag indicating if there is a previous page. Deprecated, use `prev_page_token` instead. |
| has_next | boolean | Flag indicating if there is a next page. Deprecated, use `next_page_token` instead. |
| next_page_token | stringnull | Token to fetch the next page, to be passed in subsequent requests as the `page_token` query parameter. `null` when there is no next page. |
| prev_page_token | stringnull | Token to fetch the previous page, to be passed in subsequent requests as the `page_token` query parameter. `null` when there is no previous page. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/memo-bank/main/json-schema/memo-bank-transaction-page-schema.json",
"title": "TransactionPage",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/memo-bank-transactions-api-openapi.yml#/components/schemas/TransactionPage",
"required": [
"has_next",
"has_prev",
"results"
],
"type": "object",
"properties": {
"results": {
"type": "array",
"description": "Elements of the page.",
"items": {
"$ref": "#/$defs/Transaction"
}
},
"has_prev": {
"type": "boolean",
"description": "Flag indicating if there is a previous page. Deprecated, use `prev_page_token` instead.",
"deprecated": true
},
"has_next": {
"type": "boolean",
"description": "Flag indicating if there is a next page. Deprecated, use `next_page_token` instead.",
"deprecated": true
},
"next_page_token": {
"type": [
"string",
"null"
],
"description": "Token to fetch the next page, to be passed in subsequent requests as the `page_token` query parameter. `null` when there is no next page."
},
"prev_page_token": {
"type": [
"string",
"null"
],
"description": "Token to fetch the previous page, to be passed in subsequent requests as the `page_token` query parameter. `null` when there is no previous page."
}
},
"$defs": {
"BankAccountRemunerationSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"CardCreditSource": {
"required": [
"settlement_amount",
"settlement_currency",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"settlement_amount": {
"type": "integer",
"description": "Settlement amount of the transaction, in the smallest unit of the settlement currency. The amount is always positive, use `direction` to give it a sign.",
"format": "int64"
},
"settlement_currency": {
"type": "string",
"description": "Settlement currency of the transaction amount, in ISO 4217 format."
}
}
}
]
},
"CardDebitSource": {
"required": [
"settlement_amount",
"settlement_currency",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"settlement_amount": {
"type": "integer",
"description": "Settlement amount of the transaction, in the smallest unit of the settlement currency. The amount is always positive, use `direction` to give it a sign.",
"format": "int64"
},
"settlement_currency": {
"type": "string",
"description": "Settlement currency of the transaction amount, in ISO 4217 format."
}
}
}
]
},
"CardDeferredSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"CardWithdrawalSource": {
"required": [
"settlement_amount",
"settlement_currency",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"settlement_amount": {
"type": "integer",
"description": "Settlement amount of the transaction, in the smallest unit of the settlement currency. The amount is always positive, use `direction` to give it a sign.",
"format": "int64"
},
"settlement_currency": {
"type": "string",
"description": "Settlement currency of the transaction amount, in ISO 4217 format."
}
}
}
]
},
"CollectionIncomingReturnSource": {
"required": [
"returned_collection_reference",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_iban": {
"type": "string",
"description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
},
"message": {
"type": "string",
"description": "Message attached to this collection, visible to all involved parties."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
},
"returned_collection_reference": {
"type": "string",
"description": "Reference of the original collection being returned."
},
"reason": {
"type": "string",
"description": "Reason for the return of the original collection. Can be null on old transactions for legacy reasons.",
"enum": [
"bank_identifier_incorrect",
"blocked_account",
"closed_account",
"correspondent_bank_not_possible",
"creditor_bank_is_not_registered",
"creditor_psp_not_registered",
"customer_deceased",
"customer_disabled_direct_debit",
"debtor_psp_not_registered",
"disputed",
"duplication",
"end_customer_deceased",
"eri_option_not_supported",
"following_cancellation_request",
"fraudulent_originated",
"inactive_mandate",
"inconsistent_with_end_customer",
"incorrect_account_number",
"insufficient_funds",
"invalid_bank_operation_code",
"invalid_code_or_format",
"invalid_creditor_account_number",
"invalid_debtor_account",
"invalid_interbank_communication",
"invalid_transaction_code_or_invalid_file_format",
"mandate_mismatch",
"missing_creditors_name_or_address",
"missing_creditor_address",
"missing_creditor_name_or_address",
"missing_debtors_name_or_address",
"missing_debtor_account_or_identification",
"missing_debtor_name_or_address",
"missing_mandatory_information_mandate",
"no_mandate",
"no_mandate_on_scheme",
"not_specified_reason_agent_generated",
"not_specified_reason_customer_generated",
"psp_identifier_incorrect",
"refund_request_by_bank",
"refund_request_by_end_customer",
"regulatory_reason",
"requested_by_the_debtor",
"requested_by_customer",
"settlement_failed",
"specific_service_offered_by_debtor_psp",
"technical_problem",
"transaction_forbidden",
"transaction_unauthorized",
"unrecognized_initiating_party",
"wrong_amount"
]
}
}
}
]
},
"CollectionIncomingSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_iban": {
"type": "string",
"description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
},
"message": {
"type": "string",
"description": "Message attached to this collection, visible to all involved parties."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
}
}
}
]
},
"CollectionOutgoingReturnFeesSource": {
"required": [
"returned_collection_id",
"returned_collection_reference",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_iban": {
"type": "string",
"description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
},
"message": {
"type": "string",
"description": "Message attached to this collection, visible to all involved parties."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
},
"returned_collection_id": {
"type": "string",
"description": "ID of the original collection being returned.",
"format": "uuid"
},
"returned_collection_reference": {
"type": "string",
"description": "Reference of the original collection being returned."
},
"reason": {
"type": "string",
"description": "Reason for the return of the original collection. Can be null on old transactions for legacy reasons.",
"enum": [
"bank_identifier_incorrect",
"blocked_account",
"closed_account",
"correspondent_bank_not_possible",
"creditor_bank_is_not_registered",
"creditor_psp_not_registered",
"customer_deceased",
"customer_disabled_direct_debit",
"debtor_psp_not_registered",
"disputed",
"duplication",
"end_customer_deceased",
"eri_option_not_supported",
"following_cancellation_request",
"fraudulent_originated",
"inactive_mandate",
"inconsistent_with_end_customer",
"incorrect_account_number",
"insufficient_funds",
"invalid_bank_operation_code",
"invalid_code_or_format",
"invalid_creditor_account_number",
"invalid_debtor_account",
"invalid_interbank_communication",
"invalid_transaction_code_or_invalid_file_format",
"mandate_mismatch",
"missing_creditors_name_or_address",
"missing_creditor_address",
"missing_creditor_name_or_address",
"missing_debtors_name_or_address",
"missing_debtor_account_or_identification",
"missing_debtor_name_or_address",
"missing_mandatory_information_mandate",
"no_mandate",
"no_mandate_on_scheme",
"not_specified_reason_agent_generated",
"not_specified_reason_customer_generated",
"psp_identifier_incorrect",
"refund_request_by_bank",
"refund_request_by_end_customer",
"regulatory_reason",
"requested_by_the_debtor",
"requested_by_customer",
"settlement_failed",
"specific_service_offered_by_debtor_psp",
"technical_problem",
"transaction_forbidden",
"transaction_unauthorized",
"unrecognized_initiating_party",
"wrong_amount"
]
}
}
}
]
},
"CollectionOutgoingReturnSource": {
"required": [
"returned_collection_id",
"returned_collection_reference",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_iban": {
"type": "string",
"description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
},
"message": {
"type": "string",
"description": "Message attached to this collection, visible to all involved parties."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
},
"returned_collection_id": {
"type": "string",
"description": "ID of the original collection being returned.",
"format": "uuid"
},
"returned_collection_reference": {
"type": "string",
"description": "Reference of the original collection being returned."
},
"reason": {
"type": "string",
"description": "Reason for the return of the original collection. Can be null on old transactions for legacy reasons.",
"enum": [
"bank_identifier_incorrect",
"blocked_account",
"closed_account",
"correspondent_bank_not_possible",
"creditor_bank_is_not_registered",
"creditor_psp_not_registered",
"customer_deceased",
"customer_disabled_direct_debit",
"debtor_psp_not_registered",
"disputed",
"duplication",
"end_customer_deceased",
"eri_option_not_supported",
"following_cancellation_request",
"fraudulent_originated",
"inactive_mandate",
"inconsistent_with_end_customer",
"incorrect_account_number",
"insufficient_funds",
"invalid_bank_operation_code",
"invalid_code_or_format",
"invalid_creditor_account_number",
"invalid_debtor_account",
"invalid_interbank_communication",
"invalid_transaction_code_or_invalid_file_format",
"mandate_mismatch",
"missing_creditors_name_or_address",
"missing_creditor_address",
"missing_creditor_name_or_address",
"missing_debtors_name_or_address",
"missing_debtor_account_or_identification",
"missing_debtor_name_or_address",
"missing_mandatory_information_mandate",
"no_mandate",
"no_mandate_on_scheme",
"not_specified_reason_agent_generated",
"not_specified_reason_customer_generated",
"psp_identifier_incorrect",
"refund_request_by_bank",
"refund_request_by_end_customer",
"regulatory_reason",
"requested_by_the_debtor",
"requested_by_customer",
"settlement_failed",
"specific_service_offered_by_debtor_psp",
"technical_problem",
"transaction_forbidden",
"transaction_unauthorized",
"unrecognized_initiating_party",
"wrong_amount"
]
}
}
}
]
},
"CollectionOutgoingSource": {
"required": [
"collection_id",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_iban": {
"type": "string",
"description": "IBAN of the counterparty. Can be null on old transactions for legacy reasons."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank. Can be null on old transactions for legacy reasons."
},
"message": {
"type": "string",
"description": "Message attached to this collection, visible to all involved parties."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the collection. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the collection. For example, if a collection is returned, its return will share the same endToEndId."
},
"collection_id": {
"type": "string",
"description": "ID of the collection that created this transaction.",
"format": "uuid"
}
}
}
]
},
"DebtPurchaseApplicationFeesSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"DebtPurchaseDisbursementSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"DebtPurchaseInterestsSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"DebtPurchaseRepaymentSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"DiverseOperationSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"InvestmentRedemptionOrderDTO": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"InvestmentSubscriptionOrderDTO": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"LoanApplicationFeesSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"LoanDisbursementSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"LoanGuaranteeFeeSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"LoanReimbursementSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"LoanRepaymentSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"MaintenanceTransferSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"MaintenanceWireTransferSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"OverdraftAgiosSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"OverdraftApplicationFeesSource": {
"required": [
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
}
]
},
"RtgsTransferIncomingReturnSource": {
"required": [
"counterparty_account_number",
"reason",
"returned_transfer_reference",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_account_number": {
"type": "string",
"description": "Account number of the counterparty."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the transfer. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transfer. For example, if a transfer is returned, its return will share the same endToEndId."
},
"returned_transfer_reference": {
"type": "string",
"description": "Reference of the original transfer being returned."
},
"reason": {
"type": "string",
"description": "Reason for the return of the original transfer.",
"enum": [
"bank_identifier_incorrect",
"blocked_account",
"closed_account",
"correspondent_bank_not_possible",
"creditor_bank_is_not_registered",
"creditor_psp_not_registered",
"customer_deceased",
"customer_disabled_direct_debit",
"debtor_psp_not_registered",
"disputed",
"duplication",
"end_customer_deceased",
"eri_option_not_supported",
"following_cancellation_request",
"fraudulent_originated",
"inactive_mandate",
"inconsistent_with_end_customer",
"incorrect_account_number",
"insufficient_funds",
"invalid_bank_operation_code",
"invalid_code_or_format",
"invalid_creditor_account_number",
"invalid_debtor_account",
"invalid_interbank_communication",
"invalid_transaction_code_or_invalid_file_format",
"mandate_mismatch",
"missing_creditors_name_or_address",
"missing_creditor_address",
"missing_creditor_name_or_address",
"missing_debtors_name_or_address",
"missing_debtor_account_or_identification",
"missing_debtor_name_or_address",
"missing_mandatory_information_mandate",
"no_mandate",
"no_mandate_on_scheme",
"not_specified_reason_agent_generated",
"not_specified_reason_customer_generated",
"psp_identifier_incorrect",
"refund_request_by_bank",
"refund_request_by_end_customer",
"regulatory_reason",
"requested_by_the_debtor",
"requested_by_customer",
"settlement_failed",
"specific_service_offered_by_debtor_psp",
"technical_problem",
"transaction_forbidden",
"transaction_unauthorized",
"unrecognized_initiating_party",
"wrong_amount"
]
}
}
}
]
},
"RtgsTransferIncomingSource": {
"required": [
"counterparty_account_number",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_account_number": {
"type": "string",
"description": "Account number of the counterparty."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the transfer. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transfer. For example, if a transfer is returned, its return will share the same endToEndId."
},
"message": {
"type": "string",
"description": "Message attached to this transfer, visible to all involved parties."
}
}
}
]
},
"RtgsTransferOutgoingReturnSource": {
"required": [
"counterparty_account_number",
"reason",
"returned_transfer_reference",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_account_number": {
"type": "string",
"description": "Account number of the counterparty."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the transfer. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or to link tasks relating to the transfer. For example, if a transfer is returned, its return will share the same endToEndId."
},
"returned_transfer_reference": {
"type": "string",
"description": "Reference of the original transfer being returned."
},
"reason": {
"type": "string",
"description": "Reason for the return of the original transfer.",
"enum": [
"bank_identifier_incorrect",
"blocked_account",
"closed_account",
"correspondent_bank_not_possible",
"creditor_bank_is_not_registered",
"creditor_psp_not_registered",
"customer_deceased",
"customer_disabled_direct_debit",
"debtor_psp_not_registered",
"disputed",
"duplication",
"end_customer_deceased",
"eri_option_not_supported",
"following_cancellation_request",
"fraudulent_originated",
"inactive_mandate",
"inconsistent_with_end_customer",
"incorrect_account_number",
"insufficient_funds",
"invalid_bank_operation_code",
"invalid_code_or_format",
"invalid_creditor_account_number",
"invalid_debtor_account",
"invalid_interbank_communication",
"invalid_transaction_code_or_invalid_file_format",
"mandate_mismatch",
"missing_creditors_name_or_address",
"missing_creditor_address",
"missing_creditor_name_or_address",
"missing_debtors_name_or_address",
"missing_debtor_account_or_identification",
"missing_debtor_name_or_address",
"missing_mandatory_information_mandate",
"no_mandate",
"no_mandate_on_scheme",
"not_specified_reason_agent_generated",
"not_specified_reason_customer_generated",
"psp_identifier_incorrect",
"refund_request_by_bank",
"refund_request_by_end_customer",
"regulatory_reason",
"requested_by_the_debtor",
"requested_by_customer",
"settlement_failed",
"specific_service_offered_by_debtor_psp",
"technical_problem",
"transaction_forbidden",
"transaction_unauthorized",
"unrecognized_initiating_party",
"wrong_amount"
]
}
}
}
]
},
"RtgsTransferOutgoingSource": {
"required": [
"counterparty_account_number",
"type"
],
"type": "object",
"allOf": [
{
"$ref": "#/$defs/TransactionSourceDiscriminator"
},
{
"type": "object",
"properties": {
"counterparty_account_number": {
"type": "string",
"description": "Account number of the counterparty."
},
"counterparty_bank_bic": {
"type": "string",
"description": "BIC of the counterparty's bank."
},
"end_to_end_id": {
"type": "string",
"description": "Unique identification to unambiguously identify the transfer. This identification is passed on, unchanged, throughout the entire end-to-end chain. It can be used for reconciliation or
# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/memo-bank/refs/heads/main/json-schema/memo-bank-transaction-page-schema.json
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/memo-bank-transaction-page"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.