From 69476616c8b416d25a59377bab34692527a98f75 Mon Sep 17 00:00:00 2001 From: Gleb Date: Wed, 17 Jan 2024 15:18:49 -0800 Subject: [PATCH] Partner-69: Allow to pass card details --- ecosystem/sep-0009.md | 51 +++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/ecosystem/sep-0009.md b/ecosystem/sep-0009.md index 9a917e024..ba6db07d1 100644 --- a/ecosystem/sep-0009.md +++ b/ecosystem/sep-0009.md @@ -102,18 +102,19 @@ any country, and some fields are specific to a given country, such as `cbu_numbe addition to other pieces of information. In order to optimize for the user's experience, it is recommended that applications use fields that are the most familiar, which are often specific to a given country or financial system. -| Name | Type | Description | -| --------------------- | ------ | ------------------------------------------------------------------------------ | -| `bank_account_type` | string | `checking` or `savings` | -| `bank_account_number` | string | Number identifying bank account | -| `bank_number` | string | Number identifying bank in national banking system (routing number in US) | -| `bank_phone_number` | string | Phone number with country code for bank | -| `bank_branch_number` | string | Number identifying bank branch | -| `clabe_number` | string | Bank account number for Mexico | -| `cbu_number` | string | Clave Bancaria Uniforme (CBU) or Clave Virtual Uniforme (CVU). | -| `cbu_alias` | string | The alias for a Clave Bancaria Uniforme (CBU) or Clave Virtual Uniforme (CVU). | -| `crypto_address` | string | Address for a cryptocurrency account | -| `crypto_memo` | string | A destination tag/memo used to identify a transaction | +| Name | Type | Description | +| --------------------- | ------ | ---------------------------------------------------------------------------------- | +| `bank_account_type` | string | `checking` or `savings` | +| `bank_account_number` | string | Number identifying bank account | +| `bank_number` | string | Number identifying bank in national banking system (routing number in US) | +| `bank_phone_number` | string | Phone number with country code for bank | +| `bank_branch_number` | string | Number identifying bank branch | +| `clabe_number` | string | Bank account number for Mexico | +| `cbu_number` | string | Clave Bancaria Uniforme (CBU) or Clave Virtual Uniforme (CVU). | +| `cbu_alias` | string | The alias for a Clave Bancaria Uniforme (CBU) or Clave Virtual Uniforme (CVU). | +| `crypto_address` | string | Address for a cryptocurrency account | +| `crypto_memo` | string | A destination tag/memo used to identify a transaction | +| `card_details` | object | Details of the user's card. See the [card object schema](#card-object) for details | ## Organization Fields @@ -148,8 +149,34 @@ single multi-line string in the `address` field. This allows any address in the number of fields. If address parsing is necessary, parsing will be easier since the country, city, and postal code are already separate fields. +## Card object + +To pass card (such as credit card) details to the application, the client should pass card details via an object defined +below. Note, that it's possible to either pass card details to the application, or the token, representing the card. +This token may be fetched from a third-party source prior, for example, it can be a +[Stripe token](https://stripe.com/docs/api/tokens/create_card), or any other service offering similar functionality may +be used. When token is used, application should notify clients about the type of the token that it is expecting to +receive. Usually, application would require either `token`, or set of: `number`, `expiration_date`, `cvc` and +`holder_name` to be provided, but some applications may require extra fields. + +| Name | Type | Description | +| ------------------- | ------ | ------------------------------------------------------------------------------------------- | +| `number` | number | Card number | +| `expiration_date` | date | Expiration month and year (e.g. `11-29`, November 2029) | +| `cvc` | number | CVC number (3 digits on the back of the card) | +| `holder_name` | string | Name of the card holder | +| `type` | string | Type of the bank card used (e.g. debit, credit) | +| `brand` | string | Brand of the card (e.g. Visa, Mastercard) | +| `postal_code` | string | Post or other code used by the card for the billing purposes | +| `country_code` | string | Country code used by the card for the billing purposes | +| `state_or_province` | string | Name of state/province/region/prefecture | +| `city` | string | Name of city/town | +| `address` | string | Entire address (country, state, postal code, street address, etc...) as a multi-line string | +| `token` | string | Token representation of the card in some external payment system (e.g. Stripe) | + ## Changelog +- `v1.15.0`: Add `card_details` field ([#](https://github.com/stellar/stellar-protocol/pull/)). - `v1.14.0`: Add `referral_id` field ([#1418](https://github.com/stellar/stellar-protocol/pull/1418)). - `v1.13.0`: Add `crypto` related fields to financial account fields section. ([#1382](https://github.com/stellar/stellar-protocol/pull/1382))