-
Notifications
You must be signed in to change notification settings - Fork 85
Description
Problem
We want a StripeCountrySpec that contains most data from this Stripe API: https://stripe.com/docs/api#country_spec_object
We can use Stripe's id as our id. For now, there will not be an API endpoint in our application to create/retrieve/update/delete these.
Instead, these records will be created and then will be updated regularly with a cron-like job to find the latest information for displaying the form fields that a user might possibly need for creating their Stripe account and verifying their identity, either as an individual or as a company representative.
The StripeCountrySpec will belong to a StripeConnectAccount, and we'll set the stripe_country_spec_id on the StripeConnectAccount in order to render form details out to the user.
We likely need to use embedded fields here in order to handle the deeply nested hash for the verification fields https://hexdocs.pm/ecto/Ecto.Schema.html#embeds_one/3
We probably want to simplify this to a combination of IndividualMinimumVerificationFields, IndividualAdditionalVerificationFields, CompanyMinimumVerificationFields, and CompanyAdditionalVerificationFields schemas, where the key/value pair is the field name (e.g. legal_entity.address.city) and a boolean.
For now, we can probably ignore implementing anything around supported_bank_account_currencies, supported_payment_currencies, and supported_payment_methods. We should track the default_currency, though.