Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SEP-9: remove cvu_number, add cbu_alias #1339

Merged
merged 2 commits into from
Jan 26, 2023

Conversation

JakeUrban
Copy link
Contributor

After discussing with our partner, we realized that it is standard practice to use a single field that accepts both CVU & CBU numbers. We also want to add support for CVU & CVU aliases.

@JakeUrban JakeUrban enabled auto-merge (squash) January 26, 2023 17:17
Copy link

@reecexlm reecexlm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@JakeUrban JakeUrban merged commit dfd1e62 into master Jan 26, 2023
@JakeUrban JakeUrban deleted the sep9-remove-cvu-specific-field branch January 26, 2023 17:56
@theclabs
Copy link
Contributor

theclabs commented Jan 29, 2023

I think we should focus the management of bank accounts with an approach of the type: do we really want to add a field for each type of name that exists for bank accounts for each country? the list would be huge. I thought the same when the CLABE field was added.

Would this imply adding each tax identifier type and code for each country as a sep9 field?
RUT_NUMBER for Peru
NIT_NUMBER for Colombia
CUIT_NUMBER for Argentina.
actually tax_id and tax_id_name serve the purpose of avoiding that.

I think the bank_account_number field fulfills the objective of being able to capture the account number.
Maybe we add a bank_account_country_code_name field that has the type and country? AR-CBU, MX-CLABE, GLOBAL-IBAN?
or even something simpler
bank_account_number_name where you can put CBU, CCI, CLABE, etc,

@JakeUrban let me know your comments.

@JakeUrban
Copy link
Contributor Author

I completely agree that adding new fields for each type of off-chain account is less than ideal. Every time we add a new field, SDKs, test suites, and other tools need to be updated, which is a pain. To be transparent, we added these fields because it was time-sensitive, but we are definitely open to exploring better approaches.

In #1332 I proposed something similar to what you're proposing, where one field was used for all off-chain account identifiers, and instead of having a dedicated field for the type of account, the type was embedded into the field's value.

One challenge with both approaches is that in some countries, it is normal to provide multiple values, as opposed to encoding all the relevant info into a single value. For example, in the US we need to provide a routing and bank account number. Others require an additional value for the bank branch.

So whatever name we chose, I think it would need to be possible for this "type" field to correspond to a set of fields, not just one. There are really two solutions to this:

  • Use an object, where the type attribute corresponds to different object schemas
    • This is tough to make work because SEP-9 isn't designed to support nested fields, there are plenty of other places (SEP-6, SEP-12, SEP-24) that assume KYC info can be communicated using simple key-value pairs
  • Define a string format for each set of fields that correspond to each type
    • This could be more easily integrated into the existing protocol's design

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants