github.com/stripe/stripe-go/v76@v76.25.0/countryspec.go (about)

     1  //
     2  //
     3  // File generated from our OpenAPI spec
     4  //
     5  //
     6  
     7  package stripe
     8  
     9  // Lists all Country Spec objects available in the API.
    10  type CountrySpecListParams struct {
    11  	ListParams `form:"*"`
    12  	// Specifies which fields in the response should be expanded.
    13  	Expand []*string `form:"expand"`
    14  }
    15  
    16  // AddExpand appends a new field to expand.
    17  func (p *CountrySpecListParams) AddExpand(f string) {
    18  	p.Expand = append(p.Expand, &f)
    19  }
    20  
    21  // Country is the list of supported countries
    22  type Country string
    23  
    24  // Returns a Country Spec for a given Country code.
    25  type CountrySpecParams struct {
    26  	Params `form:"*"`
    27  	// Specifies which fields in the response should be expanded.
    28  	Expand []*string `form:"expand"`
    29  }
    30  
    31  // AddExpand appends a new field to expand.
    32  func (p *CountrySpecParams) AddExpand(f string) {
    33  	p.Expand = append(p.Expand, &f)
    34  }
    35  
    36  // VerificationFieldsList lists the fields needed for an account verification.
    37  // For more details see https://stripe.com/docs/api#country_spec_object-verification_fields.
    38  type VerificationFieldsList struct {
    39  	AdditionalFields []string `json:"additional"`
    40  	Minimum          []string `json:"minimum"`
    41  }
    42  
    43  // Stripe needs to collect certain pieces of information about each account
    44  // created. These requirements can differ depending on the account's country. The
    45  // Country Specs API makes these rules available to your integration.
    46  //
    47  // You can also view the information from this API call as [an online
    48  // guide](https://stripe.com/docs/connect/required-verification-information).
    49  type CountrySpec struct {
    50  	APIResource
    51  	// The default currency for this country. This applies to both payment methods and bank accounts.
    52  	DefaultCurrency Currency `json:"default_currency"`
    53  	// Unique identifier for the object. Represented as the ISO country code for this country.
    54  	ID string `json:"id"`
    55  	// String representing the object's type. Objects of the same type share the same value.
    56  	Object string `json:"object"`
    57  	// Currencies that can be accepted in the specific country (for transfers).
    58  	SupportedBankAccountCurrencies map[Currency][]Country `json:"supported_bank_account_currencies"`
    59  	// Currencies that can be accepted in the specified country (for payments).
    60  	SupportedPaymentCurrencies []Currency `json:"supported_payment_currencies"`
    61  	// Payment methods available in the specified country. You may need to enable some payment methods (e.g., [ACH](https://stripe.com/docs/ach)) on your account before they appear in this list. The `stripe` payment method refers to [charging through your platform](https://stripe.com/docs/connect/destination-charges).
    62  	SupportedPaymentMethods []string `json:"supported_payment_methods"`
    63  	// Countries that can accept transfers from the specified country.
    64  	SupportedTransferCountries []string                                        `json:"supported_transfer_countries"`
    65  	VerificationFields         map[AccountBusinessType]*VerificationFieldsList `json:"verification_fields"`
    66  }
    67  
    68  // CountrySpecList is a list of CountrySpecs as retrieved from a list endpoint.
    69  type CountrySpecList struct {
    70  	APIResource
    71  	ListMeta
    72  	Data []*CountrySpec `json:"data"`
    73  }