stripe

package module
v72.83.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 13, 2022 License: MIT Imports: 26 Imported by: 187

README

Go Stripe

GoDoc Build Status Coverage Status

The official Stripe Go client library.

Installation

Make sure your project is using Go Modules (it will have a go.mod file in its root if it already is):

go mod init

Then, reference stripe-go in a Go program with import:

import (
    "github.com/stripe/stripe-go/v72"
    "github.com/stripe/stripe-go/v72/customer"
)

Run any of the normal go commands (build/install/test). The Go toolchain will resolve and fetch the stripe-go module automatically.

Alternatively, you can also explicitly go get the package into a project:

go get -u github.com/stripe/stripe-go/v72

Documentation

For a comprehensive list of examples, check out the API documentation.

See video demonstrations covering how to use the library.

For details on all the functionality in this library, see the GoDoc documentation.

Below are a few simple examples:

Customers
params := &stripe.CustomerParams{
	Description: stripe.String("Stripe Developer"),
	Email:       stripe.String("gostripe@stripe.com"),
}

customer, err := customer.New(params)
PaymentIntents
params := &stripe.PaymentIntentListParams{
    Customer: stripe.String(customer.ID),
}

// set this so you can easily retry your request in case of a timeout
params.Params.IdempotencyKey = stripe.NewIdempotencyKey()

i := paymentintent.List(params)
for i.Next() {
	pi := i.PaymentIntent()
}

if err := i.Err(); err != nil {
	// handle
}
Events
i := event.List(nil)
for i.Next() {
	e := i.Event()

	// access event data via e.GetObjectValue("resource_name_based_on_type", "resource_property_name")
	// alternatively you can access values via e.Data.Object["resource_name_based_on_type"].(map[string]interface{})["resource_property_name"]

	// access previous attributes via e.GetPreviousValue("resource_name_based_on_type", "resource_property_name")
	// alternatively you can access values via e.Data.PrevPreviousAttributes["resource_name_based_on_type"].(map[string]interface{})["resource_property_name"]
}

Alternatively, you can use the event.Data.Raw property to unmarshal to the appropriate struct.

Authentication with Connect

There are two ways of authenticating requests when performing actions on behalf of a connected account, one that uses the Stripe-Account header containing an account's ID, and one that uses the account's keys. Usually the former is the recommended approach. See the documentation for more information.

To use the Stripe-Account approach, use SetStripeAccount() on a ListParams or Params class. For example:

// For a list request
listParams := &stripe.CustomerListParams{}
listParams.SetStripeAccount("acct_123")
// For any other kind of request
params := &stripe.CustomerParams{}
params.SetStripeAccount("acct_123")

To use a key, pass it to API's Init function:


import (
	"github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/client"
)

stripe := &client.API{}
stripe.Init("access_token", nil)
Google AppEngine

If you're running the client in a Google AppEngine environment, you'll need to create a per-request Stripe client since the http.DefaultClient is not available. Here's a sample handler:

import (
	"fmt"
	"net/http"

	"google.golang.org/appengine"
	"google.golang.org/appengine/urlfetch"

	"github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/client"
)

func handler(w http.ResponseWriter, r *http.Request) {
        c := appengine.NewContext(r)
        httpClient := urlfetch.Client(c)

        sc := stripeClient.New("sk_test_123", stripe.NewBackends(httpClient))

        params := &stripe.CustomerParams{
            Description: stripe.String("Stripe Developer"),
            Email:       stripe.String("gostripe@stripe.com"),
        }
        customer, err := sc.Customers.New(params)
        if err != nil {
            fmt.Fprintf(w, "Could not create customer: %v", err)
        }
        fmt.Fprintf(w, "Customer created: %v", customer.ID)
}

Usage

While some resources may contain more/less APIs, the following pattern is applied throughout the library for a given $resource$:

Without a Client

If you're only dealing with a single key, you can simply import the packages required for the resources you're interacting with without the need to create a client.

import (
	"github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/$resource$"
)

// Setup
stripe.Key = "sk_key"

stripe.SetBackend("api", backend) // optional, useful for mocking

// Create
$resource$, err := $resource$.New(stripe.$Resource$Params)

// Get
$resource$, err := $resource$.Get(id, stripe.$Resource$Params)

// Update
$resource$, err := $resource$.Update(stripe.$Resource$Params)

// Delete
resourceDeleted, err := $resource$.Del(id, stripe.$Resource$Params)

// List
i := $resource$.List(stripe.$Resource$ListParams)
for i.Next() {
	$resource$ := i.$Resource$()
}

if err := i.Err(); err != nil {
	// handle
}
With a Client

If you're dealing with multiple keys, it is recommended you use client.API. This allows you to create as many clients as needed, each with their own individual key.

import (
	"github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/client"
)

// Setup
sc := &client.API{}
sc.Init("sk_key", nil) // the second parameter overrides the backends used if needed for mocking

// Create
$resource$, err := sc.$Resource$s.New(stripe.$Resource$Params)

// Get
$resource$, err := sc.$Resource$s.Get(id, stripe.$Resource$Params)

// Update
$resource$, err := sc.$Resource$s.Update(stripe.$Resource$Params)

// Delete
resourceDeleted, err := sc.$Resource$s.Del(id, stripe.$Resource$Params)

// List
i := sc.$Resource$s.List(stripe.$Resource$ListParams)
for i.Next() {
	resource := i.$Resource$()
}

if err := i.Err(); err != nil {
	// handle
}
Accessing the Last Response

Use LastResponse on any APIResource to look at the API response that generated the current object:

coupon, err := coupon.New(...)
requestID := coupon.LastResponse.RequestID

Similarly, for List operations, the last response is available on the list object attached to the iterator:

it := coupon.List(...)
for it.Next() {
    // Last response *NOT* on the individual iterator object
    it.Coupon().LastResponse // wrong

    // But rather on the list object, also accessible through the iterator
    requestID := it.CouponList().LastResponse.RequestID
}

See the definition of APIResponse for available fields.

Note that where API resources are nested in other API resources, only LastResponse on the top-level resource is set.

Automatic Retries

The library automatically retries requests on intermittent failures like on a connection error, timeout, or on certain API responses like a status 409 Conflict. Idempotency keys are always added to requests to make any such subsequent retries safe.

By default, it will perform up to two retries. That number can be configured with MaxNetworkRetries:

import (
	"github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/client"
)

config := &stripe.BackendConfig{
    MaxNetworkRetries: stripe.Int64(0), // Zero retries
}

sc := &client.API{}
sc.Init("sk_key", &stripe.Backends{
    API:     stripe.GetBackendWithConfig(stripe.APIBackend, config),
    Uploads: stripe.GetBackendWithConfig(stripe.UploadsBackend, config),
})

coupon, err := sc.Coupons.New(...)
Configuring Logging

By default, the library logs error messages only (which are sent to stderr). Configure default logging using the global DefaultLeveledLogger variable:

stripe.DefaultLeveledLogger = &stripe.LeveledLogger{
    Level: stripe.LevelInfo,
}

Or on a per-backend basis:

config := &stripe.BackendConfig{
    LeveledLogger: &stripe.LeveledLogger{
        Level: stripe.LevelInfo,
    },
}

It's possible to use non-Stripe leveled loggers as well. Stripe expects loggers to comply to the following interface:

type LeveledLoggerInterface interface {
	Debugf(format string, v ...interface{})
	Errorf(format string, v ...interface{})
	Infof(format string, v ...interface{})
	Warnf(format string, v ...interface{})
}

Some loggers like Logrus and Zap's SugaredLogger support this interface out-of-the-box so it's possible to set DefaultLeveledLogger to a *logrus.Logger or *zap.SugaredLogger directly. For others it may be necessary to write a thin shim layer to support them.

Expanding Objects

All expandable objects in stripe-go take the form of a full resource struct, but unless expansion is requested, only the ID field of that struct is populated. Expansion is requested by calling AddExpand on parameter structs. For example:

//
// *Without* expansion
//
c, _ := charge.Retrieve("ch_123", nil)

c.Customer.ID    // Only ID is populated
c.Customer.Name  // All other fields are always empty

//
// With expansion
//
p := &CustomerParams{}
p.AddExpand("customer")
c, _ := charge.Retrieve("ch_123", p)

c.Customer.ID    // ID is still available
c.Customer.Name  // Name is now also available (if it had a value)
Writing a Plugin

If you're writing a plugin that uses the library, we'd appreciate it if you identified using stripe.SetAppInfo:

stripe.SetAppInfo(&stripe.AppInfo{
    Name:    "MyAwesomePlugin",
    URL:     "https://myawesomeplugin.info",
    Version: "1.2.34",
})

This information is passed along when the library makes calls to the Stripe API. Note that while Name is always required, URL and Version are optional.

Request latency telemetry

By default, the library sends request latency telemetry to Stripe. These numbers help Stripe improve the overall latency of its API for all users.

You can disable this behavior if you prefer:

config := &stripe.BackendConfig{
	EnableTelemetry: stripe.Bool(false),
}

Development

Pull requests from the community are welcome. If you submit one, please keep the following guidelines in mind:

  1. Code must be go fmt compliant.
  2. All types, structs and funcs should be documented.
  3. Ensure that make test succeeds.

Test

The test suite needs testify's require package to run:

github.com/stretchr/testify/require

Before running the tests, make sure to grab all of the package's dependencies:

go get -t -v

It also depends on stripe-mock, so make sure to fetch and run it from a background terminal (stripe-mock's README also contains instructions for installing via Homebrew and other methods):

go get -u github.com/stripe/stripe-mock
stripe-mock

Run all tests:

make test

Run tests for one package:

go test ./invoice

Run a single test:

go test ./invoice -run TestInvoiceGet

For any requests, bug or comments, please open an issue or submit a pull request.

Documentation

Overview

Package stripe provides the binding for Stripe REST APIs.

Index

Examples

Constants

View Source
const (
	EndingBefore  = "ending_before"
	StartingAfter = "starting_after"
)

Contains constants for the names of parameters used for pagination in list APIs.

View Source
const (
	// APIVersion is the currently supported API version
	APIVersion string = "2020-08-27"

	// APIBackend is a constant representing the API service backend.
	APIBackend SupportedBackend = "api"

	// APIURL is the URL of the API service backend.
	APIURL string = "https://api.stripe.com"

	// ConnectURL is the URL for OAuth.
	ConnectURL string = "https://connect.stripe.com"

	// ConnectBackend is a constant representing the connect service backend for
	// OAuth.
	ConnectBackend SupportedBackend = "connect"

	// DefaultMaxNetworkRetries is the default maximum number of retries made
	// by a Stripe client.
	DefaultMaxNetworkRetries int64 = 2

	// UnknownPlatform is the string returned as the system name if we couldn't get
	// one from `uname`.
	UnknownPlatform string = "unknown platform"

	// UploadsBackend is a constant representing the uploads service backend.
	UploadsBackend SupportedBackend = "uploads"

	// UploadsURL is the URL of the uploads service backend.
	UploadsURL string = "https://files.stripe.com"
)
View Source
const (
	UsageRecordActionIncrement string = "increment"
	UsageRecordActionSet       string = "set"
)

Possible values for the action parameter on usage record creation.

Variables

View Source
var EnableTelemetry = true

EnableTelemetry is a global override for enabling client telemetry, which sends request performance metrics to Stripe via the `X-Stripe-Client-Telemetry` header. If set to true, all clients will send telemetry metrics. Defaults to true.

Telemetry can also be disabled on a per-client basis by instead creating a `BackendConfig` with `EnableTelemetry: false`.

Key is the Stripe API key used globally in the binding.

Functions

func Bool

func Bool(v bool) *bool

Bool returns a pointer to the bool value passed in.

func BoolSlice

func BoolSlice(v []bool) []*bool

BoolSlice returns a slice of bool pointers given a slice of bools.

func BoolValue

func BoolValue(v *bool) bool

BoolValue returns the value of the bool pointer passed in or false if the pointer is nil.

func Float64

func Float64(v float64) *float64

Float64 returns a pointer to the float64 value passed in.

func Float64Slice

func Float64Slice(v []float64) []*float64

Float64Slice returns a slice of float64 pointers given a slice of float64s.

func Float64Value

func Float64Value(v *float64) float64

Float64Value returns the value of the float64 pointer passed in or 0 if the pointer is nil.

func FormatURLPath

func FormatURLPath(format string, params ...string) string

FormatURLPath takes a format string (of the kind used in the fmt package) representing a URL path with a number of parameters that belong in the path and returns a formatted string.

This is mostly a pass through to Sprintf. It exists to make it it impossible to accidentally provide a parameter type that would be formatted improperly; for example, a string pointer instead of a string.

It also URL-escapes every given parameter. This usually isn't necessary for a standard Stripe ID, but is needed in places where user-provided IDs are allowed, like in coupons or plans. We apply it broadly for extra safety.

func Int64

func Int64(v int64) *int64

Int64 returns a pointer to the int64 value passed in.

func Int64Slice

func Int64Slice(v []int64) []*int64

Int64Slice returns a slice of int64 pointers given a slice of int64s.

func Int64Value

func Int64Value(v *int64) int64

Int64Value returns the value of the int64 pointer passed in or 0 if the pointer is nil.

func NewIdempotencyKey

func NewIdempotencyKey() string

NewIdempotencyKey generates a new idempotency key that can be used on a request.

func ParseID

func ParseID(data []byte) (string, bool)

ParseID attempts to parse a string scalar from a given JSON value which is still encoded as []byte. If the value was a string, it returns the string along with true as the second return value. If not, false is returned as the second return value.

The purpose of this function is to detect whether a given value in a response from the Stripe API is a string ID or an expanded object.

func SetAppInfo

func SetAppInfo(info *AppInfo)

SetAppInfo sets app information. See AppInfo.

func SetBackend

func SetBackend(backend SupportedBackend, b Backend)

SetBackend sets the backend used in the binding.

func SetHTTPClient

func SetHTTPClient(client *http.Client)

SetHTTPClient overrides the default HTTP client. This is useful if you're running in a Google AppEngine environment where the http.DefaultClient is not available.

func String

func String(v string) *string

String returns a pointer to the string value passed in.

func StringSlice

func StringSlice(v []string) []*string

StringSlice returns a slice of string pointers given a slice of strings.

func StringValue

func StringValue(v *string) string

StringValue returns the value of the string pointer passed in or "" if the pointer is nil.

Types

type APIConnectionError

type APIConnectionError struct {
	// contains filtered or unexported fields
}

APIConnectionError is a failure to connect to the Stripe API.

func (*APIConnectionError) Error

func (e *APIConnectionError) Error() string

Error serializes the error object to JSON and returns it as a string.

type APIError

type APIError struct {
	// contains filtered or unexported fields
}

APIError is a catch all for any errors not covered by other types (and should be extremely uncommon).

func (*APIError) Error

func (e *APIError) Error() string

Error serializes the error object to JSON and returns it as a string.

type APIResource

type APIResource struct {
	LastResponse *APIResponse `json:"-"`
}

APIResource is a type assigned to structs that may come from Stripe API endpoints and contains facilities common to all of them.

func (*APIResource) SetLastResponse

func (r *APIResource) SetLastResponse(response *APIResponse)

SetLastResponse sets the HTTP response that returned the API resource.

type APIResponse

type APIResponse struct {
	// Header contain a map of all HTTP header keys to values. Its behavior and
	// caveats are identical to that of http.Header.
	Header http.Header

	// IdempotencyKey contains the idempotency key used with this request.
	// Idempotency keys are a Stripe-specific concept that helps guarantee that
	// requests that fail and need to be retried are not duplicated.
	IdempotencyKey string

	// RawJSON contains the response body as raw bytes.
	RawJSON []byte

	// RequestID contains a string that uniquely identifies the Stripe request.
	// Used for debugging or support purposes.
	RequestID string

	// Status is a status code and message. e.g. "200 OK"
	Status string

	// StatusCode is a status code as integer. e.g. 200
	StatusCode int
}

APIResponse encapsulates some common features of a response from the Stripe API.

type APIStream added in v72.56.0

type APIStream struct {
	LastResponse *StreamingAPIResponse
}

APIStream is a type assigned to streaming responses that may come from Stripe API

func (*APIStream) SetLastResponse added in v72.56.0

func (r *APIStream) SetLastResponse(response *StreamingAPIResponse)

SetLastResponse sets the HTTP response that returned the API resource.

type Account

type Account struct {
	APIResource
	BusinessProfile    *AccountBusinessProfile    `json:"business_profile"`
	BusinessType       AccountBusinessType        `json:"business_type"`
	Capabilities       *AccountCapabilities       `json:"capabilities"`
	ChargesEnabled     bool                       `json:"charges_enabled"`
	Company            *AccountCompany            `json:"company"`
	Controller         *AccountController         `json:"controller"`
	Country            string                     `json:"country"`
	Created            int64                      `json:"created"`
	DefaultCurrency    Currency                   `json:"default_currency"`
	Deleted            bool                       `json:"deleted"`
	DetailsSubmitted   bool                       `json:"details_submitted"`
	Email              string                     `json:"email"`
	ExternalAccounts   *ExternalAccountList       `json:"external_accounts"`
	FutureRequirements *AccountFutureRequirements `json:"future_requirements"`
	ID                 string                     `json:"id"`
	Individual         *Person                    `json:"individual"`
	Metadata           map[string]string          `json:"metadata"`
	Object             string                     `json:"object"`
	PayoutsEnabled     bool                       `json:"payouts_enabled"`
	Requirements       *AccountRequirements       `json:"requirements"`
	Settings           *AccountSettings           `json:"settings"`
	TOSAcceptance      *AccountTOSAcceptance      `json:"tos_acceptance"`
	Type               AccountType                `json:"type"`
}

Account is the resource representing your Stripe account. For more details see https://stripe.com/docs/api/#account.

func (*Account) UnmarshalJSON

func (a *Account) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an Account. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type AccountAddress

type AccountAddress struct {
	City       string `json:"city"`
	Country    string `json:"country"`
	Line1      string `json:"line1"`
	Line2      string `json:"line2"`
	PostalCode string `json:"postal_code"`
	State      string `json:"state"`
	// Town/cho-me. Note that this is only used for Kana/Kanji representations
	// of an address.
	Town string `json:"town"`
}

AccountAddress is the structure for an account address.

type AccountAddressParams

type AccountAddressParams struct {
	City       *string `form:"city"`
	Country    *string `form:"country"`
	Line1      *string `form:"line1"`
	Line2      *string `form:"line2"`
	PostalCode *string `form:"postal_code"`
	State      *string `form:"state"`
	// Town/cho-me. Note that this is only used for Kana/Kanji representations
	// of an address.
	Town *string `form:"town"`
}

AccountAddressParams represents an address during account creation/updates.

type AccountBusinessProfile

type AccountBusinessProfile struct {
	MCC                string   `json:"mcc"`
	Name               string   `json:"name"`
	ProductDescription string   `json:"product_description"`
	SupportAddress     *Address `json:"support_address"`
	SupportEmail       string   `json:"support_email"`
	SupportPhone       string   `json:"support_phone"`
	SupportURL         string   `json:"support_url"`
	URL                string   `json:"url"`
}

AccountBusinessProfile represents optional information related to the business.

type AccountBusinessProfileParams

type AccountBusinessProfileParams struct {
	MCC                *string        `form:"mcc"`
	Name               *string        `form:"name"`
	ProductDescription *string        `form:"product_description"`
	SupportAddress     *AddressParams `form:"support_address"`
	SupportEmail       *string        `form:"support_email"`
	SupportPhone       *string        `form:"support_phone"`
	SupportURL         *string        `form:"support_url"`
	URL                *string        `form:"url"`
}

AccountBusinessProfileParams are the parameters allowed for an account's business information

type AccountBusinessType

type AccountBusinessType string

AccountBusinessType describes the business type associated with an account.

const (
	AccountBusinessTypeCompany          AccountBusinessType = "company"
	AccountBusinessTypeGovernmentEntity AccountBusinessType = "government_entity"
	AccountBusinessTypeIndividual       AccountBusinessType = "individual"
	AccountBusinessTypeNonProfit        AccountBusinessType = "non_profit"
)

List of values that AccountBusinessType can take.

type AccountCapabilities

type AccountCapabilities struct {
	ACSSDebitPayments        AccountCapabilityStatus `json:"acss_debit_payments"`
	AfterpayClearpayPayments AccountCapabilityStatus `json:"afterpay_clearpay_payments"`
	AUBECSDebitPayments      AccountCapabilityStatus `json:"au_becs_debit_payments"`
	BACSDebitPayments        AccountCapabilityStatus `json:"bacs_debit_payments"`
	BancontactPayments       AccountCapabilityStatus `json:"bancontact_payments"`
	BoletoPayments           AccountCapabilityStatus `json:"boleto_payments"`
	CardIssuing              AccountCapabilityStatus `json:"card_issuing"`
	CardPayments             AccountCapabilityStatus `json:"card_payments"`
	CartesBancairesPayments  AccountCapabilityStatus `json:"cartes_bancaires_payments"`
	EPSPayments              AccountCapabilityStatus `json:"eps_payments"`
	FPXPayments              AccountCapabilityStatus `json:"fpx_payments"`
	GiropayPayments          AccountCapabilityStatus `json:"giropay_payments"`
	GrabpayPayments          AccountCapabilityStatus `json:"grabpay_payments"`
	IdealPayments            AccountCapabilityStatus `json:"ideal_payments"`
	JCBPayments              AccountCapabilityStatus `json:"jcb_payments"`
	KlarnaPayments           AccountCapabilityStatus `json:"klarna_payments"`
	LegacyPayments           AccountCapabilityStatus `json:"legacy_payments"`
	OXXOPayments             AccountCapabilityStatus `json:"oxxo_payments"`
	P24Payments              AccountCapabilityStatus `json:"p24_payments"`
	SEPADebitPayments        AccountCapabilityStatus `json:"sepa_debit_payments"`
	SofortPayments           AccountCapabilityStatus `json:"sofort_payments"`
	TaxReportingUS1099K      AccountCapabilityStatus `json:"tax_reporting_us_1099_k"`
	TaxReportingUS1099MISC   AccountCapabilityStatus `json:"tax_reporting_us_1099_misc"`
	Transfers                AccountCapabilityStatus `json:"transfers"`
}

AccountCapabilities is the resource representing the capabilities enabled on that account.

type AccountCapabilitiesACSSDebitPaymentsParams added in v72.42.0

type AccountCapabilitiesACSSDebitPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesACSSDebitPaymentsParams represent allowed parameters to configure the ACSS Debit capability on an account.

type AccountCapabilitiesAUBECSDebitPaymentsParams

type AccountCapabilitiesAUBECSDebitPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesAUBECSDebitPaymentsParams represent allowed parameters to configure the AU BECS Debit capability on an account.

type AccountCapabilitiesAfterpayClearpayPaymentsParams added in v72.78.0

type AccountCapabilitiesAfterpayClearpayPaymentsParams struct {
	Requested *bool `form:"requested"`
}

The afterpay_clearpay_payments capability.

type AccountCapabilitiesBACSDebitPaymentsParams

type AccountCapabilitiesBACSDebitPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesBACSDebitPaymentsParams represent allowed parameters to configure the BACS Debit capability on an account.

type AccountCapabilitiesBancontactPaymentsParams added in v72.10.0

type AccountCapabilitiesBancontactPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesBancontactPaymentsParams represent allowed parameters to configure the bancontact payments capability on an account.

type AccountCapabilitiesBoletoPaymentsParams added in v72.53.0

type AccountCapabilitiesBoletoPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesBoletoPaymentsParams represent allowed parameters to configure the boleto payments capability on an account.

type AccountCapabilitiesCardIssuingParams

type AccountCapabilitiesCardIssuingParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesCardIssuingParams represent allowed parameters to configure the Issuing capability on an account.

type AccountCapabilitiesCardPaymentsParams

type AccountCapabilitiesCardPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesCardPaymentsParams represent allowed parameters to configure the card payments capability on an account.

type AccountCapabilitiesCartesBancairesPaymentsParams

type AccountCapabilitiesCartesBancairesPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesCartesBancairesPaymentsParams represent allowed parameters to configure the Cartes Bancaires payments capability on an account.

type AccountCapabilitiesEPSPaymentsParams added in v72.10.0

type AccountCapabilitiesEPSPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesEPSPaymentsParams represent allowed parameters to configure the EPS payments capability on an account.

type AccountCapabilitiesFPXPaymentsParams

type AccountCapabilitiesFPXPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesFPXPaymentsParams represent allowed parameters to configure the FPX payments capability on an account.

type AccountCapabilitiesGiropayPaymentsParams added in v72.10.0

type AccountCapabilitiesGiropayPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesGiropayPaymentsParams represent allowed parameters to configure the giropay payments capability on an account.

type AccountCapabilitiesGrabpayPaymentsParams added in v72.25.0

type AccountCapabilitiesGrabpayPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesGrabpayPaymentsParams represent allowed parameters to configure the grabpay payments capability on an account.

type AccountCapabilitiesIdealPaymentsParams added in v72.10.0

type AccountCapabilitiesIdealPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesIdealPaymentsParams represent allowed parameters to configure the ideal payments capability on an account.

type AccountCapabilitiesJCBPaymentsParams

type AccountCapabilitiesJCBPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesJCBPaymentsParams represent allowed parameters to configure the JCB payments capability on an account.

type AccountCapabilitiesKlarnaPaymentsParams added in v72.67.0

type AccountCapabilitiesKlarnaPaymentsParams struct {
	Requested *bool `form:"requested"`
}

The klarna_payments capability.

type AccountCapabilitiesLegacyPaymentsParams

type AccountCapabilitiesLegacyPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesLegacyPaymentsParams represent allowed parameters to configure the legacy payments capability on an account.

type AccountCapabilitiesOXXOPaymentsParams added in v72.8.0

type AccountCapabilitiesOXXOPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesOXXOPaymentsParams represent allowed parameters to configure the OXXO capability on an account.

type AccountCapabilitiesP24PaymentsParams added in v72.10.0

type AccountCapabilitiesP24PaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesP24PaymentsParams represent allowed parameters to configure the P24 payments capability on an account.

type AccountCapabilitiesParams

type AccountCapabilitiesParams struct {
	ACSSDebitPayments        *AccountCapabilitiesACSSDebitPaymentsParams        `form:"acss_debit_payments"`
	AfterpayClearpayPayments *AccountCapabilitiesAfterpayClearpayPaymentsParams `form:"afterpay_clearpay_payments"`
	AUBECSDebitPayments      *AccountCapabilitiesAUBECSDebitPaymentsParams      `form:"au_becs_debit_payments"`
	BACSDebitPayments        *AccountCapabilitiesBACSDebitPaymentsParams        `form:"bacs_debit_payments"`
	BancontactPayments       *AccountCapabilitiesBancontactPaymentsParams       `form:"bancontact_payments"`
	BoletoPayments           *AccountCapabilitiesBoletoPaymentsParams           `form:"boleto_payments"`
	CardIssuing              *AccountCapabilitiesCardIssuingParams              `form:"card_issuing"`
	CardPayments             *AccountCapabilitiesCardPaymentsParams             `form:"card_payments"`
	CartesBancairesPayments  *AccountCapabilitiesCartesBancairesPaymentsParams  `form:"cartes_bancaires_payments"`
	EPSPayments              *AccountCapabilitiesEPSPaymentsParams              `form:"eps_payments"`
	FPXPayments              *AccountCapabilitiesFPXPaymentsParams              `form:"fpx_payments"`
	GiropayPayments          *AccountCapabilitiesGiropayPaymentsParams          `form:"giropay_payments"`
	GrabpayPayments          *AccountCapabilitiesGrabpayPaymentsParams          `form:"grabpay_payments"`
	IdealPayments            *AccountCapabilitiesIdealPaymentsParams            `form:"ideal_payments"`
	JCBPayments              *AccountCapabilitiesJCBPaymentsParams              `form:"jcb_payments"`
	KlarnaPayments           *AccountCapabilitiesKlarnaPaymentsParams           `form:"klarna_payments"`
	LegacyPayments           *AccountCapabilitiesLegacyPaymentsParams           `form:"legacy_payments"`
	OXXOPayments             *AccountCapabilitiesOXXOPaymentsParams             `form:"oxxo_payments"`
	P24Payments              *AccountCapabilitiesP24PaymentsParams              `form:"p24_payments"`
	SEPADebitPayments        *AccountCapabilitiesSEPADebitPaymentsParams        `form:"sepa_debit_payments"`
	SofortPayments           *AccountCapabilitiesSofortPaymentsParams           `form:"sofort_payments"`
	TaxReportingUS1099K      *AccountCapabilitiesTaxReportingUS1099KParams      `form:"tax_reporting_us_1099_k"`
	TaxReportingUS1099MISC   *AccountCapabilitiesTaxReportingUS1099MISCParams   `form:"tax_reporting_us_1099_misc"`
	Transfers                *AccountCapabilitiesTransfersParams                `form:"transfers"`
}

AccountCapabilitiesParams represent allowed parameters to configure capabilities on an account.

type AccountCapabilitiesSEPADebitPaymentsParams added in v72.10.0

type AccountCapabilitiesSEPADebitPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesSEPADebitPaymentsParams represent allowed parameters to configure the SEPA Debit payments capability on an account.

type AccountCapabilitiesSofortPaymentsParams added in v72.10.0

type AccountCapabilitiesSofortPaymentsParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesSofortPaymentsParams represent allowed parameters to configure the sofort payments capability on an account.

type AccountCapabilitiesTaxReportingUS1099KParams

type AccountCapabilitiesTaxReportingUS1099KParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesTaxReportingUS1099KParams represent allowed parameters to configure the 1099-K capability on an account.

type AccountCapabilitiesTaxReportingUS1099MISCParams

type AccountCapabilitiesTaxReportingUS1099MISCParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesTaxReportingUS1099MISCParams represent allowed parameters to configure the 1099-Misc capability on an account.

type AccountCapabilitiesTransfersParams

type AccountCapabilitiesTransfersParams struct {
	Requested *bool `form:"requested"`
}

AccountCapabilitiesTransfersParams represent allowed parameters to configure the transfers capability on an account.

type AccountCapability

type AccountCapability string

AccountCapability maps to a given capability for an account.

const (
	AccountCapabilityAUBECSDebitPayments     AccountCapability = "au_becs_debit_payments"
	AccountCapabilityBACSDebitPayments       AccountCapability = "bacs_debit_payments"
	AccountCapabilityBancontactPayments      AccountCapability = "bancontact_payments"
	AccountCapabilityCardIssuing             AccountCapability = "card_issuing"
	AccountCapabilityCardPayments            AccountCapability = "card_payments"
	AccountCapabilityCartesBancairesPayments AccountCapability = "cartes_bancaires_payments"
	AccountCapabilityEPSPayments             AccountCapability = "eps_payments"
	AccountCapabilityFPXPayments             AccountCapability = "fpx_payments"
	AccountCapabilityGiropayPayments         AccountCapability = "giropay_payments"
	AccountCapabilityGrabpayPayments         AccountCapability = "grabpay_payments"
	AccountCapabilityIdealPayments           AccountCapability = "ideal_payments"
	AccountCapabilityJCBPayments             AccountCapability = "jcb_payments"
	AccountCapabilityKlarnaPayments          AccountCapability = "klarna_payments"
	AccountCapabilityLegacyPayments          AccountCapability = "legacy_payments"
	AccountCapabilityOXXOPayments            AccountCapability = "oxxo_payments"
	AccountCapabilityP24Payments             AccountCapability = "p24_payments"
	AccountCapabilitySEPADebitPayments       AccountCapability = "sepa_debit_payments"
	AccountCapabilitySofortPayments          AccountCapability = "sofort_payments"
	AccountCapabilityTaxReportingUS1099K     AccountCapability = "tax_reporting_us_1099_k"
	AccountCapabilityTaxReportingUS1099MISC  AccountCapability = "tax_reporting_us_1099_misc"
	AccountCapabilityTransfers               AccountCapability = "transfers"
)

List of values that AccountCapability can take.

type AccountCapabilityStatus

type AccountCapabilityStatus string

AccountCapabilityStatus is the status a given capability can have

const (
	AccountCapabilityStatusActive   AccountCapabilityStatus = "active"
	AccountCapabilityStatusInactive AccountCapabilityStatus = "inactive"
	AccountCapabilityStatusPending  AccountCapabilityStatus = "pending"
)

List of values that AccountCapabilityStatus can take.

type AccountCompany

type AccountCompany struct {
	Address              *AccountAddress                     `json:"address"`
	AddressKana          *AccountAddress                     `json:"address_kana"`
	AddressKanji         *AccountAddress                     `json:"address_kanji"`
	DirectorsProvided    bool                                `json:"directors_provided"`
	ExecutivesProvided   bool                                `json:"executives_provided"`
	Name                 string                              `json:"name"`
	NameKana             string                              `json:"name_kana"`
	NameKanji            string                              `json:"name_kanji"`
	OwnershipDeclaration *AccountCompanyOwnershipDeclaration `json:"ownership_declaration"`
	OwnersProvided       bool                                `json:"owners_provided"`
	Phone                string                              `json:"phone"`
	RegistrationNumber   string                              `json:"registration_number"`
	Structure            AccountCompanyStructure             `json:"structure"`
	TaxIDProvided        bool                                `json:"tax_id_provided"`
	TaxIDRegistrar       string                              `json:"tax_id_registrar"`
	VATIDProvided        bool                                `json:"vat_id_provided"`
	Verification         *AccountCompanyVerification         `json:"verification"`
}

AccountCompany represents details about the company or business associated with the account.

type AccountCompanyOwnershipDeclaration added in v72.73.0

type AccountCompanyOwnershipDeclaration struct {
	Date      int64  `json:"date"`
	IP        string `json:"ip"`
	UserAgent string `json:"user_agent"`
}

This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct.

type AccountCompanyOwnershipDeclarationParams added in v72.73.0

type AccountCompanyOwnershipDeclarationParams struct {
	Date      *int64  `form:"date"`
	IP        *string `form:"ip"`
	UserAgent *string `form:"user_agent"`
}

This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct.

type AccountCompanyParams

type AccountCompanyParams struct {
	Address              *AccountAddressParams                     `form:"address"`
	AddressKana          *AccountAddressParams                     `form:"address_kana"`
	AddressKanji         *AccountAddressParams                     `form:"address_kanji"`
	DirectorsProvided    *bool                                     `form:"directors_provided"`
	ExecutivesProvided   *bool                                     `form:"executives_provided"`
	Name                 *string                                   `form:"name"`
	NameKana             *string                                   `form:"name_kana"`
	NameKanji            *string                                   `form:"name_kanji"`
	OwnershipDeclaration *AccountCompanyOwnershipDeclarationParams `form:"ownership_declaration"`
	// This parameter can only be used on Token creation.
	OwnershipDeclarationShownAndSigned *bool                             `form:"ownership_declaration_shown_and_signed"`
	OwnersProvided                     *bool                             `form:"owners_provided"`
	Phone                              *string                           `form:"phone"`
	RegistrationNumber                 *string                           `form:"registration_number"`
	Structure                          *string                           `form:"structure"`
	TaxID                              *string                           `form:"tax_id"`
	TaxIDRegistrar                     *string                           `form:"tax_id_registrar"`
	VATID                              *string                           `form:"vat_id"`
	Verification                       *AccountCompanyVerificationParams `form:"verification"`
}

AccountCompanyParams are the parameters describing the company associated with the account.

type AccountCompanyStructure

type AccountCompanyStructure string

AccountCompanyStructure describes the structure associated with a company.

const (
	AccountCompanyStructureFreeZoneEstablishment              AccountCompanyStructure = "free_zone_establishment"
	AccountCompanyStructureFreeZoneLLC                        AccountCompanyStructure = "free_zone_llc"
	AccountCompanyStructureGovernmentInstrumentality          AccountCompanyStructure = "government_instrumentality"
	AccountCompanyStructureGovernmentalUnit                   AccountCompanyStructure = "governmental_unit"
	AccountCompanyStructureIncorporatedNonProfit              AccountCompanyStructure = "incorporated_non_profit"
	AccountCompanyStructureLimitedLiabilityPartnership        AccountCompanyStructure = "limited_liability_partnership"
	AccountCompanyStructureLLC                                AccountCompanyStructure = "llc"
	AccountCompanyStructureMultiMemberLLC                     AccountCompanyStructure = "multi_member_llc"
	AccountCompanyStructurePrivateCompany                     AccountCompanyStructure = "private_company"
	AccountCompanyStructurePrivateCorporation                 AccountCompanyStructure = "private_corporation"
	AccountCompanyStructurePrivatePartnership                 AccountCompanyStructure = "private_partnership"
	AccountCompanyStructurePublicCompany                      AccountCompanyStructure = "public_company"
	AccountCompanyStructurePublicCorporation                  AccountCompanyStructure = "public_corporation"
	AccountCompanyStructurePublicPartnership                  AccountCompanyStructure = "public_partnership"
	AccountCompanyStructureSingleMemberLLC                    AccountCompanyStructure = "single_member_llc"
	AccountCompanyStructureSoleEstablishment                  AccountCompanyStructure = "sole_establishment"
	AccountCompanyStructureSoleProprietorship                 AccountCompanyStructure = "sole_proprietorship"
	AccountCompanyStructureTaxExemptGovernmentInstrumentality AccountCompanyStructure = "tax_exempt_government_instrumentality"
	AccountCompanyStructureUnincorporatedAssociation          AccountCompanyStructure = "unincorporated_association"
	AccountCompanyStructureUnincorporatedNonProfit            AccountCompanyStructure = "unincorporated_non_profit"
)

List of values that AccountCompanyStructure can take.

type AccountCompanyVerification

type AccountCompanyVerification struct {
	Document *AccountCompanyVerificationDocument `json:"document"`
}

AccountCompanyVerification represents details about a company's verification state.

type AccountCompanyVerificationDocument

type AccountCompanyVerificationDocument struct {
	Back        *File                                         `json:"back"`
	Details     string                                        `json:"details"`
	DetailsCode AccountCompanyVerificationDocumentDetailsCode `json:"details_code"`
	Front       *File                                         `json:"front"`
}

AccountCompanyVerificationDocument represents details about a company's verification state.

type AccountCompanyVerificationDocumentDetailsCode

type AccountCompanyVerificationDocumentDetailsCode string

AccountCompanyVerificationDocumentDetailsCode is a machine-readable code specifying the verification state of a document associated with a company.

const (
	AccountCompanyVerificationDocumentDetailsCodeDocumentCorrupt        AccountCompanyVerificationDocumentDetailsCode = "document_corrupt"
	AccountCompanyVerificationDocumentDetailsCodeDocumentFailedCopy     AccountCompanyVerificationDocumentDetailsCode = "document_failed_copy"
	AccountCompanyVerificationDocumentDetailsCodeDocumentFailedOther    AccountCompanyVerificationDocumentDetailsCode = "document_failed_other"
	AccountCompanyVerificationDocumentDetailsCodeDocumentFailedTestMode AccountCompanyVerificationDocumentDetailsCode = "document_failed_test_mode"
	AccountCompanyVerificationDocumentDetailsCodeDocumentFraudulent     AccountCompanyVerificationDocumentDetailsCode = "document_fraudulent"
	AccountCompanyVerificationDocumentDetailsCodeDocumentInvalid        AccountCompanyVerificationDocumentDetailsCode = "document_invalid"
	AccountCompanyVerificationDocumentDetailsCodeDocumentManipulated    AccountCompanyVerificationDocumentDetailsCode = "document_manipulated"
	AccountCompanyVerificationDocumentDetailsCodeDocumentNotReadable    AccountCompanyVerificationDocumentDetailsCode = "document_not_readable"
	AccountCompanyVerificationDocumentDetailsCodeDocumentNotUploaded    AccountCompanyVerificationDocumentDetailsCode = "document_not_uploaded"
	AccountCompanyVerificationDocumentDetailsCodeDocumentTooLarge       AccountCompanyVerificationDocumentDetailsCode = "document_too_large"
)

List of values that AccountCompanyVerificationDocumentDetailsCode can take.

type AccountCompanyVerificationDocumentParams

type AccountCompanyVerificationDocumentParams struct {
	Back  *string `form:"back"`
	Front *string `form:"front"`
}

AccountCompanyVerificationDocumentParams are the parameters allowed to pass for a document verifying a company.

type AccountCompanyVerificationParams

type AccountCompanyVerificationParams struct {
	Document *AccountCompanyVerificationDocumentParams `form:"document"`
}

AccountCompanyVerificationParams are the parameters allowed to verify a company.

type AccountController added in v72.49.0

type AccountController struct {
	IsController bool                  `json:"is_controller"`
	Type         AccountControllerType `json:"type"`
}

AccountController contains information about the control of the account.

type AccountControllerType added in v72.49.0

type AccountControllerType string

AccountControllerType describes the controller type of the account.

const (
	AccountControllerTypeAccount     AccountControllerType = "account"
	AccountControllerTypeApplication AccountControllerType = "application"
)

List of values that AccountControllerType can take.

type AccountDeclineOn

type AccountDeclineOn struct {
	AVSFailure bool `json:"avs_failure"`
	CVCFailure bool `json:"cvc_failure"`
}

AccountDeclineOn represents card charges decline behavior for that account.

type AccountDeclineSettingsParams

type AccountDeclineSettingsParams struct {
	AVSFailure *bool `form:"avs_failure"`
	CVCFailure *bool `form:"cvc_failure"`
}

AccountDeclineSettingsParams represents the parameters allowed for configuring card declines on connected accounts.

type AccountDocumentsBankAccountOwnershipVerificationParams added in v72.28.0

type AccountDocumentsBankAccountOwnershipVerificationParams struct {
	Files []*string `form:"files"`
}

AccountDocumentsBankAccountOwnershipVerificationParams represents the parameters allowed for passing bank account ownership verification documents on an account.

type AccountDocumentsCompanyLicenseParams added in v72.29.0

type AccountDocumentsCompanyLicenseParams struct {
	Files []*string `form:"files"`
}

AccountDocumentsCompanyLicenseParams represents the parameters allowed for passing company license verification documents on an account.

type AccountDocumentsCompanyMemorandumOfAssociationParams added in v72.29.0

type AccountDocumentsCompanyMemorandumOfAssociationParams struct {
	Files []*string `form:"files"`
}

AccountDocumentsCompanyMemorandumOfAssociationParams represents the parameters allowed for passing company memorandum of association documents on an account.

type AccountDocumentsCompanyMinisterialDecreeParams added in v72.29.0

type AccountDocumentsCompanyMinisterialDecreeParams struct {
	Files []*string `form:"files"`
}

AccountDocumentsCompanyMinisterialDecreeParams represents the parameters allowed for passing company ministerial decree documents on an account.

type AccountDocumentsCompanyRegistrationVerificationParams added in v72.29.0

type AccountDocumentsCompanyRegistrationVerificationParams struct {
	Files []*string `form:"files"`
}

AccountDocumentsCompanyRegistrationVerificationParams represents the parameters allowed for passing company registration verification documents.

type AccountDocumentsCompanyTaxIDVerificationParams added in v72.29.0

type AccountDocumentsCompanyTaxIDVerificationParams struct {
	Files []*string `form:"files"`
}

AccountDocumentsCompanyTaxIDVerificationParams represents the parameters allowed for passing company tax id verification documents on an account.

type AccountDocumentsParams added in v72.28.0

type AccountDocumentsParams struct {
	BankAccountOwnershipVerification *AccountDocumentsBankAccountOwnershipVerificationParams `form:"bank_account_ownership_verification"`
	CompanyLicense                   *AccountDocumentsCompanyLicenseParams                   `form:"company_license"`
	CompanyMemorandumOfAssocation    *AccountDocumentsCompanyMemorandumOfAssociationParams   `form:"company_memorandum_of_association"`
	CompanyMinisterialDecree         *AccountDocumentsCompanyMinisterialDecreeParams         `form:"company_ministerial_decree"`
	CompanyRegistrationVerification  *AccountDocumentsCompanyRegistrationVerificationParams  `form:"company_registration_verification"`
	CompanyTaxIDVerification         *AccountDocumentsCompanyTaxIDVerificationParams         `form:"company_tax_id_verification"`
	ProofOfRegistration              *AccountDocumentsProofOfRegistrationParams              `form:"proof_of_registration"`
}

AccountDocumentsParams represents the parameters allowed for passing additional documents on an account.

type AccountDocumentsProofOfRegistrationParams added in v72.73.0

type AccountDocumentsProofOfRegistrationParams struct {
	Files []*string `form:"files"`
}

One or more documents showing the company's proof of registration with the national business registry.

type AccountExternalAccountParams

type AccountExternalAccountParams struct {
	Params            `form:"*"`
	AccountNumber     *string `form:"account_number"`
	AccountHolderName *string `form:"account_holder_name"`
	AccountHolderType *string `form:"account_holder_type"`
	Country           *string `form:"country"`
	Currency          *string `form:"currency"`
	RoutingNumber     *string `form:"routing_number"`
	Token             *string `form:"token"`
}

AccountExternalAccountParams are the parameters allowed to reference an external account when creating an account. It should either have Token set or everything else.

func (*AccountExternalAccountParams) AppendTo

func (p *AccountExternalAccountParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for AccountExternalAccountParams so that we can send the special required `object` field up along with the other specified parameters or the token value.

type AccountFutureRequirements added in v72.64.0

type AccountFutureRequirements struct {
	Alternatives        []*AccountFutureRequirementsAlternative `json:"alternatives"`
	CurrentDeadline     int64                                   `json:"current_deadline"`
	CurrentlyDue        []string                                `json:"currently_due"`
	DisabledReason      string                                  `json:"disabled_reason"`
	Errors              []*AccountFutureRequirementsError       `json:"errors"`
	EventuallyDue       []string                                `json:"eventually_due"`
	PastDue             []string                                `json:"past_due"`
	PendingVerification []string                                `json:"pending_verification"`
}

type AccountFutureRequirementsAlternative added in v72.64.0

type AccountFutureRequirementsAlternative struct {
	AlternativeFieldsDue []string `json:"alternative_fields_due"`
	OriginalFieldsDue    []string `json:"original_fields_due"`
}

Fields that are due and can be satisfied by providing the corresponding alternative fields instead.

type AccountFutureRequirementsError added in v72.64.0

type AccountFutureRequirementsError struct {
	Code        string `json:"code"`
	Reason      string `json:"reason"`
	Requirement string `json:"requirement"`
}

Fields that are `currently_due` and need to be collected again because validation or verification failed.

type AccountLink struct {
	APIResource
	Created   int64  `json:"created"`
	ExpiresAt int64  `json:"expires_at"`
	Object    string `json:"object"`
	URL       string `json:"url"`
}

AccountLink is the resource representing an account link. For more details see https://stripe.com/docs/api/#account_links.

type AccountLinkCollect

type AccountLinkCollect string

AccountLinkCollect describes what information the platform wants to collect with the account link.

const (
	AccountLinkCollectCurrentlyDue  AccountLinkCollect = "currently_due"
	AccountLinkCollectEventuallyDue AccountLinkCollect = "eventually_due"
)

List of values that AccountLinkCollect can take.

type AccountLinkParams

type AccountLinkParams struct {
	Params     `form:"*"`
	Account    *string `form:"account"`
	Collect    *string `form:"collect"`
	RefreshURL *string `form:"refresh_url"`
	ReturnURL  *string `form:"return_url"`
	Type       *string `form:"type"`
}

AccountLinkParams are the parameters allowed during an account link creation.

type AccountLinkType

type AccountLinkType string

AccountLinkType is the type of an account link.

const (
	AccountLinkTypeAccountOnboarding AccountLinkType = "account_onboarding"
	AccountLinkTypeAccountUpdate     AccountLinkType = "account_update"
)

List of values that AccountLinkType can take.

type AccountList

type AccountList struct {
	APIResource
	ListMeta
	Data []*Account `json:"data"`
}

AccountList is a list of accounts as returned from a list endpoint.

type AccountListParams

type AccountListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
}

AccountListParams are the parameters allowed during account listing.

type AccountParams

type AccountParams struct {
	Params          `form:"*"`
	AccountToken    *string                       `form:"account_token"`
	BusinessProfile *AccountBusinessProfileParams `form:"business_profile"`
	BusinessType    *string                       `form:"business_type"`
	Capabilities    *AccountCapabilitiesParams    `form:"capabilities"`
	Company         *AccountCompanyParams         `form:"company"`
	Country         *string                       `form:"country"`
	DefaultCurrency *string                       `form:"default_currency"`
	Documents       *AccountDocumentsParams       `form:"documents"`
	Email           *string                       `form:"email"`
	ExternalAccount *AccountExternalAccountParams `form:"external_account"`
	Individual      *PersonParams                 `form:"individual"`
	Settings        *AccountSettingsParams        `form:"settings"`
	TOSAcceptance   *AccountTOSAcceptanceParams   `form:"tos_acceptance"`
	Type            *string                       `form:"type"`
	// This parameter is deprecated. Prefer using Capabilities instead.
	RequestedCapabilities []*string `form:"requested_capabilities"`
}

AccountParams are the parameters allowed during account creation/updates.

type AccountPayoutSchedule

type AccountPayoutSchedule struct {
	DelayDays     int64          `json:"delay_days"`
	Interval      PayoutInterval `json:"interval"`
	MonthlyAnchor int64          `json:"monthly_anchor"`
	WeeklyAnchor  string         `json:"weekly_anchor"`
}

AccountPayoutSchedule is the structure for an account's payout schedule.

type AccountRejectParams

type AccountRejectParams struct {
	Params `form:"*"`
	Reason *string `form:"reason"`
}

AccountRejectParams is the structure for the Reject function.

type AccountRejectReason

type AccountRejectReason string

AccountRejectReason describes the valid reason to reject an account

const (
	AccountRejectReasonFraud          AccountRejectReason = "fraud"
	AccountRejectReasonOther          AccountRejectReason = "other"
	AccountRejectReasonTermsOfService AccountRejectReason = "terms_of_service"
)

List of values that AccountRejectReason can take.

type AccountRequirements

type AccountRequirements struct {
	Alternatives        []*AccountRequirementsAlternative `json:"alternatives"`
	CurrentDeadline     int64                             `json:"current_deadline"`
	CurrentlyDue        []string                          `json:"currently_due"`
	DisabledReason      AccountRequirementsDisabledReason `json:"disabled_reason"`
	Errors              []*AccountRequirementsError       `json:"errors"`
	EventuallyDue       []string                          `json:"eventually_due"`
	PastDue             []string                          `json:"past_due"`
	PendingVerification []string                          `json:"pending_verification"`
}

AccountRequirements represents information that needs to be collected for an account.

type AccountRequirementsAlternative added in v72.64.0

type AccountRequirementsAlternative struct {
	AlternativeFieldsDue []string `json:"alternative_fields_due"`
	OriginalFieldsDue    []string `json:"original_fields_due"`
}

Fields that are due and can be satisfied by providing the corresponding alternative fields instead.

type AccountRequirementsDisabledReason

type AccountRequirementsDisabledReason string

AccountRequirementsDisabledReason describes why an account is disabled.

const (
	AccountRequirementsDisabledReasonFieldsNeeded           AccountRequirementsDisabledReason = "fields_needed"
	AccountRequirementsDisabledReasonListed                 AccountRequirementsDisabledReason = "listed"
	AccountRequirementsDisabledReasonOther                  AccountRequirementsDisabledReason = "other"
	AccountRequirementsDisabledReasonRejectedFraud          AccountRequirementsDisabledReason = "rejected.fraud"
	AccountRequirementsDisabledReasonRejectedListed         AccountRequirementsDisabledReason = "rejected.listed"
	AccountRequirementsDisabledReasonRejectedOther          AccountRequirementsDisabledReason = "rejected.other"
	AccountRequirementsDisabledReasonRejectedTermsOfService AccountRequirementsDisabledReason = "rejected.terms_of_service"
	AccountRequirementsDisabledReasonUnderReview            AccountRequirementsDisabledReason = "under_review"
)

List of values that AccountRequirementsDisabledReason can take.

type AccountRequirementsError

type AccountRequirementsError struct {
	Code        string `json:"code"`
	Reason      string `json:"reason"`
	Requirement string `json:"requirement"`
}

AccountRequirementsError represents details about an error with a requirement.

type AccountSettings

type AccountSettings struct {
	BACSDebitPayments *AccountSettingsBACSDebitPayments `json:"bacs_debit_payments"`
	Branding          *AccountSettingsBranding          `json:"branding"`
	CardIssuing       *AccountSettingsCardIssuing       `json:"card_issuing"`
	CardPayments      *AccountSettingsCardPayments      `json:"card_payments"`
	Dashboard         *AccountSettingsDashboard         `json:"dashboard"`
	Payments          *AccountSettingsPayments          `json:"payments"`
	Payouts           *AccountSettingsPayouts           `json:"payouts"`
	SEPADebitPayments *AccountSettingsSEPADebitPayments `json:"sepa_debit_payments"`
}

AccountSettings represents options for customizing how the account functions within Stripe.

type AccountSettingsBACSDebitPayments

type AccountSettingsBACSDebitPayments struct {
	DisplayName string `json:"display_name"`
}

AccountSettingsBACSDebitPayments represents settings specific to the account’s charging via BACS Debit.

type AccountSettingsBACSDebitPaymentsParams

type AccountSettingsBACSDebitPaymentsParams struct {
	DisplayName *string `form:"display_name"`
}

AccountSettingsBACSDebitPaymentsParams represent allowed parameters to configure settings specific to BACS Debit charging on the account.

type AccountSettingsBranding

type AccountSettingsBranding struct {
	Icon           *File  `json:"icon"`
	PrimaryColor   string `json:"primary_color"`
	SecondaryColor string `json:"secondary_color"`
}

AccountSettingsBranding represents settings specific to the account's branding.

type AccountSettingsBrandingParams

type AccountSettingsBrandingParams struct {
	Icon           *string `form:"icon"`
	PrimaryColor   *string `form:"primary_color"`
	SecondaryColor *string `form:"secondary_color"`
}

AccountSettingsBrandingParams represent allowed parameters to configure settings specific to the account’s branding.

type AccountSettingsCardIssuing added in v72.40.0

type AccountSettingsCardIssuing struct {
	TOSAcceptance *AccountTOSAcceptance `json:"tos_acceptance"`
}

AccountSettingsCardIssuing represents settings specific to card issuing on the account.

type AccountSettingsCardIssuingParams added in v72.40.0

type AccountSettingsCardIssuingParams struct {
	TOSAcceptance *AccountTOSAcceptanceParams `form:"tos_acceptance"`
}

AccountSettingsCardIssuingParams represent allowed parameters relating to the acceptance of the terms of service agreement.

type AccountSettingsCardPayments

type AccountSettingsCardPayments struct {
	DeclineOn                 *AccountDeclineOn `json:"decline_on"`
	StatementDescriptorPrefix string            `json:"statement_descriptor_prefix"`
}

AccountSettingsCardPayments represents settings specific to card charging on the account.

type AccountSettingsCardPaymentsParams

type AccountSettingsCardPaymentsParams struct {
	DeclineOn                 *AccountDeclineSettingsParams `form:"decline_on"`
	StatementDescriptorPrefix *string                       `form:"statement_descriptor_prefix"`
}

AccountSettingsCardPaymentsParams represent allowed parameters to configure settings specific to card charging on the account.

type AccountSettingsDashboard

type AccountSettingsDashboard struct {
	DisplayName string `json:"display_name"`
	Timezone    string `json:"timezone"`
}

AccountSettingsDashboard represents settings specific to the account's Dashboard.

type AccountSettingsDashboardParams

type AccountSettingsDashboardParams struct {
	DisplayName *string `form:"display_name"`
	Timezone    *string `form:"timezone"`
}

AccountSettingsDashboardParams represent allowed parameters to configure settings for the account's Dashboard.

type AccountSettingsParams

type AccountSettingsParams struct {
	BACSDebitPayments *AccountSettingsBACSDebitPaymentsParams `form:"bacs_debit_payments"`
	Branding          *AccountSettingsBrandingParams          `form:"branding"`
	CardIssuing       *AccountSettingsCardIssuingParams       `form:"card_issuing"`
	CardPayments      *AccountSettingsCardPaymentsParams      `form:"card_payments"`
	Dashboard         *AccountSettingsDashboardParams         `form:"dashboard"`
	Payments          *AccountSettingsPaymentsParams          `form:"payments"`
	Payouts           *AccountSettingsPayoutsParams           `form:"payouts"`
}

AccountSettingsParams are the parameters allowed for the account's settings.

type AccountSettingsPayments

type AccountSettingsPayments struct {
	StatementDescriptor      string `json:"statement_descriptor"`
	StatementDescriptorKana  string `json:"statement_descriptor_kana"`
	StatementDescriptorKanji string `json:"statement_descriptor_kanji"`
}

AccountSettingsPayments represents settings that apply across payment methods for charging on the account.

type AccountSettingsPaymentsParams

type AccountSettingsPaymentsParams struct {
	StatementDescriptor      *string `form:"statement_descriptor"`
	StatementDescriptorKana  *string `form:"statement_descriptor_kana"`
	StatementDescriptorKanji *string `form:"statement_descriptor_kanji"`
}

AccountSettingsPaymentsParams represent allowed parameters to configure settings across payment methods for charging on the account.

type AccountSettingsPayouts

type AccountSettingsPayouts struct {
	DebitNegativeBalances bool                   `json:"debit_negative_balances"`
	Schedule              *AccountPayoutSchedule `json:"schedule"`
	StatementDescriptor   string                 `json:"statement_descriptor"`
}

AccountSettingsPayouts represents settings specific to the account’s payouts.

type AccountSettingsPayoutsParams

type AccountSettingsPayoutsParams struct {
	DebitNegativeBalances *bool                 `form:"debit_negative_balances"`
	Schedule              *PayoutScheduleParams `form:"schedule"`
	StatementDescriptor   *string               `form:"statement_descriptor"`
}

AccountSettingsPayoutsParams represent allowed parameters to configure settings specific to the account’s payouts.

type AccountSettingsSEPADebitPayments

type AccountSettingsSEPADebitPayments struct {
	CreditorID string `json:"creditor_id"`
}

AccountSettingsSEPADebitPayments represents settings specific to the account’s charging via SEPA Debit.

type AccountTOSAcceptance

type AccountTOSAcceptance struct {
	Date             int64                                `json:"date"`
	IP               string                               `json:"ip"`
	ServiceAgreement AccountTOSAcceptanceServiceAgreement `json:"service_agreement"`
	UserAgent        string                               `json:"user_agent"`
}

AccountTOSAcceptance represents status of acceptance of our terms of services for the account.

type AccountTOSAcceptanceParams

type AccountTOSAcceptanceParams struct {
	Date             *int64  `form:"date"`
	IP               *string `form:"ip"`
	ServiceAgreement *string `form:"service_agreement"`
	UserAgent        *string `form:"user_agent"`
}

AccountTOSAcceptanceParams represents tos_acceptance during account creation/updates.

type AccountTOSAcceptanceServiceAgreement

type AccountTOSAcceptanceServiceAgreement string

AccountTOSAcceptanceServiceAgreement describes the TOS Service agreement of an account

const (
	AccountTOSAcceptanceServiceAgreementFull      AccountTOSAcceptanceServiceAgreement = "full"
	AccountTOSAcceptanceServiceAgreementRecipient AccountTOSAcceptanceServiceAgreement = "recipient"
)

List of values that AccountTOSAcceptanceServiceAgreement can take.

type AccountType

type AccountType string

AccountType is the type of an account.

const (
	AccountTypeCustom   AccountType = "custom"
	AccountTypeExpress  AccountType = "express"
	AccountTypeStandard AccountType = "standard"
)

List of values that AccountType can take.

type Address

type Address struct {
	City       string `json:"city"`
	Country    string `json:"country"`
	Line1      string `json:"line1"`
	Line2      string `json:"line2"`
	PostalCode string `json:"postal_code"`
	State      string `json:"state"`
}

Address describes common properties for an Address hash.

type AddressParams

type AddressParams struct {
	City       *string `form:"city"`
	Country    *string `form:"country"`
	Line1      *string `form:"line1"`
	Line2      *string `form:"line2"`
	PostalCode *string `form:"postal_code"`
	State      *string `form:"state"`
}

AddressParams describes the common parameters for an Address.

type Amount

type Amount struct {
	Value       int64                       `json:"amount"`
	Currency    Currency                    `json:"currency"`
	SourceTypes map[BalanceSourceType]int64 `json:"source_types"`
}

Amount is a structure wrapping an amount value and its currency.

type AppInfo

type AppInfo struct {
	Name      string `json:"name"`
	PartnerID string `json:"partner_id"`
	URL       string `json:"url"`
	Version   string `json:"version"`
}

AppInfo contains information about the "app" which this integration belongs to. This should be reserved for plugins that wish to identify themselves with Stripe.

type ApplePayDomain

type ApplePayDomain struct {
	APIResource
	Created    int64  `json:"created"`
	Deleted    bool   `json:"deleted"`
	DomainName string `json:"domain_name"`
	ID         string `json:"id"`
	Livemode   bool   `json:"livemode"`
	Object     string `json:"object"`
}

ApplePayDomain is the resource representing a Stripe ApplePayDomain object

type ApplePayDomainList

type ApplePayDomainList struct {
	APIResource
	ListMeta
	Data []*ApplePayDomain `json:"data"`
}

ApplePayDomainList is a list of ApplePayDomains as returned from a list endpoint.

type ApplePayDomainListParams

type ApplePayDomainListParams struct {
	ListParams `form:"*"`
	DomainName *string `form:"domain_name"`
}

ApplePayDomainListParams are the parameters allowed during ApplePayDomain listing.

type ApplePayDomainParams

type ApplePayDomainParams struct {
	Params     `form:"*"`
	DomainName *string `form:"domain_name"`
}

ApplePayDomainParams is the set of parameters that can be used when creating an ApplePayDomain object.

type Application

type Application struct {
	ID     string `json:"id"`
	Name   string `json:"name"`
	Object string `json:"object"`
}

Application describes the properties for an Application.

func (*Application) UnmarshalJSON

func (a *Application) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an Application. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ApplicationFee

type ApplicationFee struct {
	APIResource
	Account                *Account            `json:"account"`
	Amount                 int64               `json:"amount"`
	AmountRefunded         int64               `json:"amount_refunded"`
	Application            string              `json:"application"`
	BalanceTransaction     *BalanceTransaction `json:"balance_transaction"`
	Charge                 *Charge             `json:"charge"`
	Created                int64               `json:"created"`
	Currency               Currency            `json:"currency"`
	ID                     string              `json:"id"`
	Livemode               bool                `json:"livemode"`
	Object                 string              `json:"object"`
	OriginatingTransaction *Charge             `json:"originating_transaction"`
	Refunded               bool                `json:"refunded"`
	Refunds                *FeeRefundList      `json:"refunds"`
}

ApplicationFee is the resource representing a Stripe application fee. For more details see https://stripe.com/docs/api#application_fees.

func (*ApplicationFee) UnmarshalJSON

func (a *ApplicationFee) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an ApplicationFee. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ApplicationFeeList

type ApplicationFeeList struct {
	APIResource
	ListMeta
	Data []*ApplicationFee `json:"data"`
}

ApplicationFeeList is a list of application fees as retrieved from a list endpoint.

type ApplicationFeeListParams

type ApplicationFeeListParams struct {
	ListParams   `form:"*"`
	Charge       *string           `form:"charge"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
}

ApplicationFeeListParams is the set of parameters that can be used when listing application fees. For more details see https://stripe.com/docs/api#list_application_fees.

type ApplicationFeeParams

type ApplicationFeeParams struct {
	Params `form:"*"`
}

ApplicationFeeParams is the set of parameters that can be used when refunding an application fee. For more details see https://stripe.com/docs/api#refund_application_fee.

type AuthenticationError

type AuthenticationError struct {
	// contains filtered or unexported fields
}

AuthenticationError is a failure to properly authenticate during a request.

func (*AuthenticationError) Error

func (e *AuthenticationError) Error() string

Error serializes the error object to JSON and returns it as a string.

type AuthorizeURLParams

type AuthorizeURLParams struct {
	Params                `form:"*"`
	AlwaysPrompt          *bool                  `form:"always_prompt"`
	ClientID              *string                `form:"client_id"`
	RedirectURI           *string                `form:"redirect_uri"`
	ResponseType          *string                `form:"response_type"`
	Scope                 *string                `form:"scope"`
	State                 *string                `form:"state"`
	StripeLanding         *string                `form:"stripe_landing"`
	StripeUser            *OAuthStripeUserParams `form:"stripe_user"`
	SuggestedCapabilities []*string              `form:"suggested_capabilities"`

	// Express is not sent as a parameter, but is used to modify the authorize URL
	// path to use the express OAuth path.
	Express *bool `form:"-"`
}

AuthorizeURLParams for creating OAuth AuthorizeURLs.

type Backend

type Backend interface {
	Call(method, path, key string, params ParamsContainer, v LastResponseSetter) error
	CallStreaming(method, path, key string, params ParamsContainer, v StreamingLastResponseSetter) error
	CallRaw(method, path, key string, body *form.Values, params *Params, v LastResponseSetter) error
	CallMultipart(method, path, key, boundary string, body *bytes.Buffer, params *Params, v LastResponseSetter) error
	SetMaxNetworkRetries(maxNetworkRetries int64)
}

Backend is an interface for making calls against a Stripe service. This interface exists to enable mocking for during testing if needed.

func GetBackend

func GetBackend(backendType SupportedBackend) Backend

GetBackend returns one of the library's supported backends based off of the given argument.

It returns an existing default backend if one's already been created.

func GetBackendWithConfig

func GetBackendWithConfig(backendType SupportedBackend, config *BackendConfig) Backend

GetBackendWithConfig is the same as GetBackend except that it can be given a configuration struct that will configure certain aspects of the backend that's return.

type BackendConfig

type BackendConfig struct {
	// EnableTelemetry allows request metrics (request id and duration) to be sent
	// to Stripe in subsequent requests via the `X-Stripe-Client-Telemetry` header.
	//
	// This value is a pointer to allow us to differentiate an unset versus
	// empty value. Use stripe.Bool for an easy way to set this value.
	//
	// Defaults to false.
	EnableTelemetry *bool

	// HTTPClient is an HTTP client instance to use when making API requests.
	//
	// If left unset, it'll be set to a default HTTP client for the package.
	HTTPClient *http.Client

	// LeveledLogger is the logger that the backend will use to log errors,
	// warnings, and informational messages.
	//
	// LeveledLoggerInterface is implemented by LeveledLogger, and one can be
	// initialized at the desired level of logging.  LeveledLoggerInterface
	// also provides out-of-the-box compatibility with a Logrus Logger, but may
	// require a thin shim for use with other logging libraries that use less
	// standard conventions like Zap.
	//
	// Defaults to DefaultLeveledLogger.
	//
	// To set a logger that logs nothing, set this to a stripe.LeveledLogger
	// with a Level of LevelNull (simply setting this field to nil will not
	// work).
	LeveledLogger LeveledLoggerInterface

	// MaxNetworkRetries sets maximum number of times that the library will
	// retry requests that appear to have failed due to an intermittent
	// problem.
	//
	// This value is a pointer to allow us to differentiate an unset versus
	// empty value. Use stripe.Int64 for an easy way to set this value.
	//
	// Defaults to DefaultMaxNetworkRetries (2).
	MaxNetworkRetries *int64

	// URL is the base URL to use for API paths.
	//
	// This value is a pointer to allow us to differentiate an unset versus
	// empty value. Use stripe.String for an easy way to set this value.
	//
	// If left empty, it'll be set to the default for the SupportedBackend.
	URL *string
}

BackendConfig is used to configure a new Stripe backend.

type BackendImplementation

type BackendImplementation struct {
	Type              SupportedBackend
	URL               string
	HTTPClient        *http.Client
	LeveledLogger     LeveledLoggerInterface
	MaxNetworkRetries int64
	// contains filtered or unexported fields
}

BackendImplementation is the internal implementation for making HTTP calls to Stripe.

The public use of this struct is deprecated. It will be unexported in a future version.

func (*BackendImplementation) Call

func (s *BackendImplementation) Call(method, path, key string, params ParamsContainer, v LastResponseSetter) error

Call is the Backend.Call implementation for invoking Stripe APIs.

func (*BackendImplementation) CallMultipart

func (s *BackendImplementation) CallMultipart(method, path, key, boundary string, body *bytes.Buffer, params *Params, v LastResponseSetter) error

CallMultipart is the Backend.CallMultipart implementation for invoking Stripe APIs.

func (*BackendImplementation) CallRaw

func (s *BackendImplementation) CallRaw(method, path, key string, form *form.Values, params *Params, v LastResponseSetter) error

CallRaw is the implementation for invoking Stripe APIs internally without a backend.

func (*BackendImplementation) CallStreaming added in v72.56.0

func (s *BackendImplementation) CallStreaming(method, path, key string, params ParamsContainer, v StreamingLastResponseSetter) error

CallStreaming is the Backend.Call implementation for invoking Stripe APIs without buffering the response into memory.

func (*BackendImplementation) Do

Do is used by Call to execute an API request and parse the response. It uses the backend's HTTP client to execute the request and unmarshals the response into v. It also handles unmarshaling errors returned by the API.

func (*BackendImplementation) DoStreaming added in v72.56.0

DoStreaming is used by CallStreaming to execute an API request. It uses the backend's HTTP client to execure the request. In successful cases, it sets a StreamingLastResponse onto v, but in unsuccessful cases handles unmarshaling errors returned by the API.

func (*BackendImplementation) NewRequest

func (s *BackendImplementation) NewRequest(method, path, key, contentType string, params *Params) (*http.Request, error)

NewRequest is used by Call to generate an http.Request. It handles encoding parameters and attaching the appropriate headers.

func (*BackendImplementation) ResponseToError

func (s *BackendImplementation) ResponseToError(res *http.Response, resBody []byte) error

ResponseToError converts a stripe response to an Error.

func (*BackendImplementation) SetMaxNetworkRetries

func (s *BackendImplementation) SetMaxNetworkRetries(maxNetworkRetries int64)

SetMaxNetworkRetries sets max number of retries on failed requests

This function is deprecated. Please use GetBackendWithConfig instead.

func (*BackendImplementation) SetNetworkRetriesSleep

func (s *BackendImplementation) SetNetworkRetriesSleep(sleep bool)

SetNetworkRetriesSleep allows the normal sleep between network retries to be enabled or disabled.

This function is available for internal testing only and should never be used in production.

func (*BackendImplementation) UnmarshalJSONVerbose

func (s *BackendImplementation) UnmarshalJSONVerbose(statusCode int, body []byte, v interface{}) error

UnmarshalJSONVerbose unmarshals JSON, but in case of a failure logs and produces a more descriptive error.

type Backends

type Backends struct {
	API, Connect, Uploads Backend
	// contains filtered or unexported fields
}

Backends are the currently supported endpoints.

func NewBackends

func NewBackends(httpClient *http.Client) *Backends

NewBackends creates a new set of backends with the given HTTP client. You should only need to use this for testing purposes or on App Engine.

type Balance

type Balance struct {
	APIResource
	Available        []*Amount       `json:"available"`
	ConnectReserved  []*Amount       `json:"connect_reserved"`
	InstantAvailable []*Amount       `json:"instant_available"`
	Issuing          *BalanceDetails `json:"issuing"`
	Livemode         bool            `json:"livemode"`
	Object           string          `json:"object"`
	Pending          []*Amount       `json:"pending"`
}

Balance is the resource representing your Stripe balance. For more details see https://stripe.com/docs/api/#balance.

type BalanceDetails

type BalanceDetails struct {
	Available []*Amount `json:"available"`
}

BalanceDetails is the resource representing details about a specific product's balance.

type BalanceParams

type BalanceParams struct {
	Params `form:"*"`
}

BalanceParams is the set of parameters that can be used when retrieving a balance. For more details see https://stripe.com/docs/api#balance.

type BalanceSourceType

type BalanceSourceType string

BalanceSourceType is the list of allowed values for the balance amount's source_type field keys.

const (
	BalanceSourceTypeBankAccount BalanceSourceType = "bank_account"
	BalanceSourceTypeCard        BalanceSourceType = "card"
	BalanceSourceTypeFPX         BalanceSourceType = "fpx"
)

List of values that BalanceSourceType can take.

type BalanceTransaction

type BalanceTransaction struct {
	APIResource
	Amount            int64                               `json:"amount"`
	AvailableOn       int64                               `json:"available_on"`
	Created           int64                               `json:"created"`
	Currency          Currency                            `json:"currency"`
	Description       string                              `json:"description"`
	ExchangeRate      float64                             `json:"exchange_rate"`
	Fee               int64                               `json:"fee"`
	FeeDetails        []*BalanceTransactionFee            `json:"fee_details"`
	ID                string                              `json:"id"`
	Net               int64                               `json:"net"`
	Object            string                              `json:"object"`
	ReportingCategory BalanceTransactionReportingCategory `json:"reporting_category"`
	Source            *BalanceTransactionSource           `json:"source"`
	Status            BalanceTransactionStatus            `json:"status"`
	Type              BalanceTransactionType              `json:"type"`
}

BalanceTransaction is the resource representing the balance transaction. For more details see https://stripe.com/docs/api/#balance.

func (*BalanceTransaction) UnmarshalJSON

func (b *BalanceTransaction) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a BalanceTransaction. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type BalanceTransactionFee

type BalanceTransactionFee struct {
	Amount      int64    `json:"amount"`
	Application string   `json:"application"`
	Currency    Currency `json:"currency"`
	Description string   `json:"description"`
	Type        string   `json:"type"`
}

BalanceTransactionFee is a structure that breaks down the fees in a transaction.

type BalanceTransactionList

type BalanceTransactionList struct {
	APIResource
	ListMeta
	Data []*BalanceTransaction `json:"data"`
}

BalanceTransactionList is a list of transactions as returned from a list endpoint.

type BalanceTransactionListParams

type BalanceTransactionListParams struct {
	ListParams       `form:"*"`
	AvailableOn      *int64            `form:"available_on"`
	AvailableOnRange *RangeQueryParams `form:"available_on"`
	Created          *int64            `form:"created"`
	CreatedRange     *RangeQueryParams `form:"created"`
	Currency         *string           `form:"currency"`
	Payout           *string           `form:"payout"`
	Source           *string           `form:"source"`
	Type             *string           `form:"type"`
}

BalanceTransactionListParams is the set of parameters that can be used when listing balance transactions. For more details see https://stripe.com/docs/api/#balance_history.

type BalanceTransactionParams

type BalanceTransactionParams struct {
	Params `form:"*"`
}

BalanceTransactionParams is the set of parameters that can be used when retrieving a transaction. For more details see https://stripe.com/docs/api#retrieve_balance_transaction.

type BalanceTransactionReportingCategory

type BalanceTransactionReportingCategory string

BalanceTransactionReportingCategory represents reporting categories for balance transactions.

const (
	BalanceTransactionReportingCategoryAdvance                     BalanceTransactionReportingCategory = "advance"
	BalanceTransactionReportingCategoryAdvanceFunding              BalanceTransactionReportingCategory = "advance_funding"
	BalanceTransactionReportingCategoryCharge                      BalanceTransactionReportingCategory = "charge"
	BalanceTransactionReportingCategoryChargeFailure               BalanceTransactionReportingCategory = "charge_failure"
	BalanceTransactionReportingCategoryConnectCollectionTransfer   BalanceTransactionReportingCategory = "connect_collection_transfer"
	BalanceTransactionReportingCategoryConnectReservedFunds        BalanceTransactionReportingCategory = "connect_reserved_funds"
	BalanceTransactionReportingCategoryDispute                     BalanceTransactionReportingCategory = "dispute"
	BalanceTransactionReportingCategoryDisputeReversal             BalanceTransactionReportingCategory = "dispute_reversal"
	BalanceTransactionReportingCategoryFee                         BalanceTransactionReportingCategory = "fee"
	BalanceTransactionReportingCategoryIssuingAuthorizationHold    BalanceTransactionReportingCategory = "issuing_authorization_hold"
	BalanceTransactionReportingCategoryIssuingAuthorizationRelease BalanceTransactionReportingCategory = "issuing_authorization_release"
	BalanceTransactionReportingCategoryIssuingTransaction          BalanceTransactionReportingCategory = "issuing_transaction"
	BalanceTransactionReportingCategoryOtherAdjustment             BalanceTransactionReportingCategory = "other_adjustment"
	BalanceTransactionReportingCategoryPartialCaptureReversal      BalanceTransactionReportingCategory = "partial_capture_reversal"
	BalanceTransactionReportingCategoryPayout                      BalanceTransactionReportingCategory = "payout"
	BalanceTransactionReportingCategoryPayoutReversal              BalanceTransactionReportingCategory = "payout_reversal"
	BalanceTransactionReportingCategoryPlatformEarning             BalanceTransactionReportingCategory = "platform_earning"
	BalanceTransactionReportingCategoryPlatformEarningRefund       BalanceTransactionReportingCategory = "platform_earning_refund"
	BalanceTransactionReportingCategoryRefund                      BalanceTransactionReportingCategory = "refund"
	BalanceTransactionReportingCategoryRefundFailure               BalanceTransactionReportingCategory = "refund_failure"
	BalanceTransactionReportingCategoryRiskReservedFunds           BalanceTransactionReportingCategory = "risk_reserved_funds"
	BalanceTransactionReportingCategoryTax                         BalanceTransactionReportingCategory = "tax"
	BalanceTransactionReportingCategoryTopup                       BalanceTransactionReportingCategory = "topup"
	BalanceTransactionReportingCategoryTopupReversal               BalanceTransactionReportingCategory = "topup_reversal"
	BalanceTransactionReportingCategoryTransfer                    BalanceTransactionReportingCategory = "transfer"
	BalanceTransactionReportingCategoryTransferReversal            BalanceTransactionReportingCategory = "transfer_reversal"
)

List of values that BalanceTransactionReportingCategory can take.

type BalanceTransactionSource

type BalanceTransactionSource struct {
	ID   string                       `json:"id"`
	Type BalanceTransactionSourceType `json:"object"`

	ApplicationFee       *ApplicationFee       `json:"-"`
	Charge               *Charge               `json:"-"`
	Dispute              *Dispute              `json:"-"`
	FeeRefund            *FeeRefund            `json:"-"`
	IssuingAuthorization *IssuingAuthorization `json:"-"`
	IssuingDispute       *IssuingDispute       `json:"-"`
	IssuingTransaction   *IssuingAuthorization `json:"-"`
	Payout               *Payout               `json:"-"`
	Refund               *Refund               `json:"-"`
	Reversal             *Reversal             `json:"-"`
	Topup                *Topup                `json:"-"`
	Transfer             *Transfer             `json:"-"`
}

BalanceTransactionSource describes the source of a balance Transaction. The Type should indicate which object is fleshed out. For more details see https://stripe.com/docs/api#retrieve_balance_transaction

func (*BalanceTransactionSource) UnmarshalJSON

func (b *BalanceTransactionSource) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a BalanceTransactionSource. This custom unmarshaling is needed because the specific type of BalanceTransactionSource it refers to is specified in the JSON

type BalanceTransactionSourceType

type BalanceTransactionSourceType string

BalanceTransactionSourceType consts represent valid balance transaction sources.

const (
	BalanceTransactionSourceTypeApplicationFee       BalanceTransactionSourceType = "application_fee"
	BalanceTransactionSourceTypeCharge               BalanceTransactionSourceType = "charge"
	BalanceTransactionSourceTypeDispute              BalanceTransactionSourceType = "dispute"
	BalanceTransactionSourceTypeFeeRefund            BalanceTransactionSourceType = "fee_refund"
	BalanceTransactionSourceTypeIssuingAuthorization BalanceTransactionSourceType = "issuing.authorization"
	BalanceTransactionSourceTypeIssuingDispute       BalanceTransactionSourceType = "issuing.dispute"
	BalanceTransactionSourceTypeIssuingTransaction   BalanceTransactionSourceType = "issuing.transaction"
	BalanceTransactionSourceTypePayout               BalanceTransactionSourceType = "payout"
	BalanceTransactionSourceTypeRefund               BalanceTransactionSourceType = "refund"
	BalanceTransactionSourceTypeReversal             BalanceTransactionSourceType = "reversal"
	BalanceTransactionSourceTypeTopup                BalanceTransactionSourceType = "topup"
	BalanceTransactionSourceTypeTransfer             BalanceTransactionSourceType = "transfer"
)

List of values that BalanceTransactionSourceType can take.

type BalanceTransactionStatus

type BalanceTransactionStatus string

BalanceTransactionStatus is the list of allowed values for the balance transaction's status.

const (
	BalanceTransactionStatusAvailable BalanceTransactionStatus = "available"
	BalanceTransactionStatusPending   BalanceTransactionStatus = "pending"
)

List of values that BalanceTransactionStatus can take.

type BalanceTransactionType

type BalanceTransactionType string

BalanceTransactionType is the list of allowed values for the balance transaction's type.

const (
	BalanceTransactionTypeAdjustment                      BalanceTransactionType = "adjustment"
	BalanceTransactionTypeAdvance                         BalanceTransactionType = "advance"
	BalanceTransactionTypeAdvanceFunding                  BalanceTransactionType = "advance_funding"
	BalanceTransactionTypeAnticipationRepayment           BalanceTransactionType = "anticipation_repayment"
	BalanceTransactionTypeApplicationFee                  BalanceTransactionType = "application_fee"
	BalanceTransactionTypeApplicationFeeRefund            BalanceTransactionType = "application_fee_refund"
	BalanceTransactionTypeCharge                          BalanceTransactionType = "charge"
	BalanceTransactionTypeConnectCollectionTransfer       BalanceTransactionType = "connect_collection_transfer"
	BalanceTransactionTypeContribution                    BalanceTransactionType = "contribution"
	BalanceTransactionTypeIssuingAuthorizationHold        BalanceTransactionType = "issuing_authorization_hold"
	BalanceTransactionTypeIssuingAuthorizationRelease     BalanceTransactionType = "issuing_authorization_release"
	BalanceTransactionTypeIssuingAuthorizationDispute     BalanceTransactionType = "issuing_dispute"
	BalanceTransactionTypeIssuingAuthorizationTransaction BalanceTransactionType = "issuing_transaction"
	BalanceTransactionTypePayment                         BalanceTransactionType = "payment"
	BalanceTransactionTypePaymentFailureRefund            BalanceTransactionType = "payment_failure_refund"
	BalanceTransactionTypePaymentRefund                   BalanceTransactionType = "payment_refund"
	BalanceTransactionTypePayout                          BalanceTransactionType = "payout"
	BalanceTransactionTypePayoutCancel                    BalanceTransactionType = "payout_cancel"
	BalanceTransactionTypePayoutFailure                   BalanceTransactionType = "payout_failure"
	BalanceTransactionTypeRefund                          BalanceTransactionType = "refund"
	BalanceTransactionTypeRefundFailure                   BalanceTransactionType = "refund_failure"
	BalanceTransactionTypeReserveTransaction              BalanceTransactionType = "reserve_transaction"
	BalanceTransactionTypeReservedFunds                   BalanceTransactionType = "reserved_funds"
	BalanceTransactionTypeStripeFee                       BalanceTransactionType = "stripe_fee"
	BalanceTransactionTypeStripeFxFee                     BalanceTransactionType = "stripe_fx_fee"
	BalanceTransactionTypeTaxFee                          BalanceTransactionType = "tax_fee"
	BalanceTransactionTypeTopup                           BalanceTransactionType = "topup"
	BalanceTransactionTypeTopupReversal                   BalanceTransactionType = "topup_reversal"
	BalanceTransactionTypeTransfer                        BalanceTransactionType = "transfer"
	BalanceTransactionTypeTransferCancel                  BalanceTransactionType = "transfer_cancel"
	BalanceTransactionTypeTransferFailure                 BalanceTransactionType = "transfer_failure"
	BalanceTransactionTypeTransferRefund                  BalanceTransactionType = "transfer_refund"
)

List of values that BalanceTransactionType can take.

type BankAccount

type BankAccount struct {
	APIResource
	Account                *Account                           `json:"account"`
	AccountHolderName      string                             `json:"account_holder_name"`
	AccountHolderType      BankAccountAccountHolderType       `json:"account_holder_type"`
	AccountType            string                             `json:"account_type"`
	AvailablePayoutMethods []BankAccountAvailablePayoutMethod `json:"available_payout_methods"`
	BankName               string                             `json:"bank_name"`
	Country                string                             `json:"country"`
	Currency               Currency                           `json:"currency"`
	Customer               *Customer                          `json:"customer"`
	DefaultForCurrency     bool                               `json:"default_for_currency"`
	Deleted                bool                               `json:"deleted"`
	Fingerprint            string                             `json:"fingerprint"`
	ID                     string                             `json:"id"`
	Last4                  string                             `json:"last4"`
	Metadata               map[string]string                  `json:"metadata"`
	Object                 string                             `json:"object"`
	RoutingNumber          string                             `json:"routing_number"`
	Status                 BankAccountStatus                  `json:"status"`
}

BankAccount represents a Stripe bank account.

func (*BankAccount) UnmarshalJSON

func (b *BankAccount) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a BankAccount. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type BankAccountAccountHolderType

type BankAccountAccountHolderType string

BankAccountAccountHolderType is the list of allowed values for the bank account holder type.

const (
	BankAccountAccountHolderTypeCompany    BankAccountAccountHolderType = "company"
	BankAccountAccountHolderTypeIndividual BankAccountAccountHolderType = "individual"
)

List of values that BankAccountAccountHolderType can take.

type BankAccountAvailablePayoutMethod added in v72.1.0

type BankAccountAvailablePayoutMethod string

BankAccountAvailablePayoutMethod is a set of available payout methods for the card.

const (
	BankAccountAvailablePayoutMethodInstant  BankAccountAvailablePayoutMethod = "instant"
	BankAccountAvailablePayoutMethodStandard BankAccountAvailablePayoutMethod = "standard"
)

List of values that CardAvailablePayoutMethod can take.

type BankAccountList

type BankAccountList struct {
	APIResource
	ListMeta
	Data []*BankAccount `json:"data"`
}

BankAccountList is a list object for bank accounts.

type BankAccountListParams

type BankAccountListParams struct {
	ListParams `form:"*"`
	// The identifier of the parent account under which the bank accounts are
	// nested. Either Account or Customer should be populated.
	Account *string `form:"-"` // Included in URL
	// The identifier of the parent customer under which the bank accounts are
	// nested. Either Account or Customer should be populated.
	Customer *string `form:"-"` // Included in URL
}

BankAccountListParams is the set of parameters that can be used when listing bank accounts.

func (*BankAccountListParams) AppendTo

func (p *BankAccountListParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for BankAccountListParams so that we can send the special required `object` field up along with the other specified parameters.

type BankAccountParams

type BankAccountParams struct {
	Params   `form:"*"`
	Customer *string `form:"-"` // Included in URL
	// Token is a token referencing an external account like one returned from
	// Stripe.js.
	Token *string `form:"-"` // Included in URL
	// Account is the identifier of the parent account under which bank
	// accounts are nested.
	Account            *string `form:"-"` // Included in URL
	AccountHolderName  *string `form:"account_holder_name"`
	AccountHolderType  *string `form:"account_holder_type"`
	AccountNumber      *string `form:"account_number"`
	AccountType        *string `form:"account_type"`
	AddressCity        *string `form:"address_city"`
	AddressCountry     *string `form:"address_country"`
	AddressLine1       *string `form:"address_line1"`
	AddressLine2       *string `form:"address_line2"`
	AddressState       *string `form:"address_state"`
	AddressZip         *string `form:"address_zip"`
	Country            *string `form:"country"`
	Currency           *string `form:"currency"`
	DefaultForCurrency *bool   `form:"default_for_currency"`
	ExpMonth           *string `form:"exp_month"`
	ExpYear            *string `form:"exp_year"`
	Name               *string `form:"name"`
	RoutingNumber      *string `form:"routing_number"`
	// ID is used when tokenizing a bank account for shared customers
	ID *string `form:"*"`
}

BankAccountParams is the set of parameters that can be used when updating a bank account.

Note that while form annotations are used for updates, bank accounts have some unusual logic on creates that necessitates manual handling of all parameters. See AppendToAsSourceOrExternalAccount.

func (*BankAccountParams) AppendToAsSourceOrExternalAccount

func (a *BankAccountParams) AppendToAsSourceOrExternalAccount(body *form.Values)

AppendToAsSourceOrExternalAccount appends the given BankAccountParams as either a source or external account.

It may look like an AppendTo from the form package, but it's not, and is only used in the special case where we use `bankaccount.New`. It's needed because we have some weird encoding logic here that can't be handled by the form package (and it's special enough that it wouldn't be desirable to have it do so).

This is not a pattern that we want to push forward, and this largely exists because the bank accounts endpoint is a little unusual. There is one other resource like it, which is cards.

type BankAccountStatus

type BankAccountStatus string

BankAccountStatus is the list of allowed values for the bank account's status.

const (
	BankAccountStatusErrored            BankAccountStatus = "errored"
	BankAccountStatusNew                BankAccountStatus = "new"
	BankAccountStatusValidated          BankAccountStatus = "validated"
	BankAccountStatusVerificationFailed BankAccountStatus = "verification_failed"
	BankAccountStatusVerified           BankAccountStatus = "verified"
)

List of values that BankAccountStatus can take.

type BillingDetails

type BillingDetails struct {
	Address *Address `json:"address"`
	Email   string   `json:"email"`
	Name    string   `json:"name"`
	Phone   string   `json:"phone"`
}

BillingDetails represents the billing details associated with a PaymentMethod.

type BillingDetailsParams

type BillingDetailsParams struct {
	Address *AddressParams `form:"address"`
	Email   *string        `form:"email"`
	Name    *string        `form:"name"`
	Phone   *string        `form:"phone"`
}

BillingDetailsParams is the set of parameters that can be used as billing details when creating or updating a PaymentMethod

type BillingPortalConfiguration added in v72.35.0

type BillingPortalConfiguration struct {
	APIResource
	Active           bool                                       `json:"active"`
	Application      string                                     `json:"application"`
	BusinessProfile  *BillingPortalConfigurationBusinessProfile `json:"business_profile"`
	Created          int64                                      `json:"created"`
	DefaultReturnURL string                                     `json:"default_return_url"`
	Features         *BillingPortalConfigurationFeatures        `json:"features"`
	ID               string                                     `json:"id"`
	IsDefault        bool                                       `json:"is_default"`
	Livemode         bool                                       `json:"livemode"`
	Metadata         map[string]string                          `json:"metadata"`
	Object           string                                     `json:"object"`
	Updated          int64                                      `json:"updated"`
}

BillingPortalConfiguration is a configuration that describes the functionality and behavior of a PortalSession. For more details see https://stripe.com/docs/api/customer_portal.

func (*BillingPortalConfiguration) UnmarshalJSON added in v72.35.0

func (b *BillingPortalConfiguration) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a BillingPortalConfiguration. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type BillingPortalConfigurationBusinessProfile added in v72.35.0

type BillingPortalConfigurationBusinessProfile struct {
	Headline          string `json:"headline"`
	PrivacyPolicyURL  string `json:"privacy_policy_url"`
	TermsOfServiceURL string `json:"terms_of_service_url"`
}

BillingPortalConfigurationBusinessProfile represents the business profile details on a portal configuration.

type BillingPortalConfigurationBusinessProfileParams added in v72.35.0

type BillingPortalConfigurationBusinessProfileParams struct {
	Headline          *string `form:"headline"`
	PrivacyPolicyURL  *string `form:"privacy_policy_url"`
	TermsOfServiceURL *string `form:"terms_of_service_url"`
}

BillingPortalConfigurationBusinessProfileParams lets you pass the business profile details associated with a portal configuration.

type BillingPortalConfigurationFeatures added in v72.35.0

type BillingPortalConfigurationFeatures struct {
	CustomerUpdate      *BillingPortalConfigurationFeaturesCustomerUpdate      `json:"customer_update"`
	InvoiceHistory      *BillingPortalConfigurationFeaturesInvoiceHistory      `json:"invoice_history"`
	PaymentMethodUpdate *BillingPortalConfigurationFeaturesPaymentMethodUpdate `json:"payment_method_update"`
	SubscriptionCancel  *BillingPortalConfigurationFeaturesSubscriptionCancel  `json:"subscription_cancel"`
	SubscriptionPause   *BillingPortalConfigurationFeaturesSubscriptionPause   `json:"subscription_pause"`
	SubscriptionUpdate  *BillingPortalConfigurationFeaturesSubscriptionUpdate  `json:"subscription_update"`
}

BillingPortalConfigurationFeatures represents details about the features enabled in the portal configuration.

type BillingPortalConfigurationFeaturesCustomerUpdate added in v72.35.0

type BillingPortalConfigurationFeaturesCustomerUpdate struct {
	AllowedUpdates []BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate `json:"allowed_updates"`
	Enabled        bool                                                            `json:"enabled"`
}

BillingPortalConfigurationFeaturesCustomerUpdate represents the customer update details on a portal configuration.

type BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate added in v72.35.0

type BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate string

BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate describes a type of customer updates that may be supported on a portal configuration

const (
	BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdateAddress  BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate = "address"
	BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdateEmail    BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate = "email"
	BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdatePhone    BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate = "phone"
	BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdateShipping BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate = "shipping"
	BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdateTaxID    BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate = "tax_id"
)

List of values that BillingPortalConfigurationFeaturesCustomerUpdateAllowedUpdate can take.

type BillingPortalConfigurationFeaturesCustomerUpdateParams added in v72.35.0

type BillingPortalConfigurationFeaturesCustomerUpdateParams struct {
	AllowedUpdates []*string `form:"allowed_updates"`
	Enabled        *bool     `form:"enabled"`
}

BillingPortalConfigurationFeaturesCustomerUpdateParams lets you pass the customer update details on a portal configuration.

type BillingPortalConfigurationFeaturesInvoiceHistory added in v72.35.0

type BillingPortalConfigurationFeaturesInvoiceHistory struct {
	Enabled bool `json:"enabled"`
}

BillingPortalConfigurationFeaturesInvoiceHistory represents the invoice history details on a portal configuration.

type BillingPortalConfigurationFeaturesInvoiceHistoryParams added in v72.35.0

type BillingPortalConfigurationFeaturesInvoiceHistoryParams struct {
	Enabled *bool `form:"enabled"`
}

BillingPortalConfigurationFeaturesInvoiceHistoryParams lets you pass the invoice history details on a portal configuration.

type BillingPortalConfigurationFeaturesParams added in v72.35.0

type BillingPortalConfigurationFeaturesParams struct {
	CustomerUpdate      *BillingPortalConfigurationFeaturesCustomerUpdateParams      `form:"customer_update"`
	InvoiceHistory      *BillingPortalConfigurationFeaturesInvoiceHistoryParams      `form:"invoice_history"`
	PaymentMethodUpdate *BillingPortalConfigurationFeaturesPaymentMethodUpdateParams `form:"payment_method_update"`
	SubscriptionCancel  *BillingPortalConfigurationFeaturesSubscriptionCancelParams  `form:"subscription_cancel"`
	SubscriptionPause   *BillingPortalConfigurationFeaturesSubscriptionPauseParams   `form:"subscription_pause"`
	SubscriptionUpdate  *BillingPortalConfigurationFeaturesSubscriptionUpdateParams  `form:"subscription_update"`
}

BillingPortalConfigurationFeaturesParams lets you pass details about the features available in the portal.

type BillingPortalConfigurationFeaturesPaymentMethodUpdate added in v72.35.0

type BillingPortalConfigurationFeaturesPaymentMethodUpdate struct {
	Enabled bool `json:"enabled"`
}

BillingPortalConfigurationFeaturesPaymentMethodUpdate represents the payment method update details on a portal configuration.

type BillingPortalConfigurationFeaturesPaymentMethodUpdateParams added in v72.35.0

type BillingPortalConfigurationFeaturesPaymentMethodUpdateParams struct {
	Enabled *bool `form:"enabled"`
}

BillingPortalConfigurationFeaturesPaymentMethodUpdateParams lets you pass the payment method update details on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionCancel added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionCancel struct {
	CancellationReason *BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReason `json:"cancellation_reason"`
	Enabled            bool                                                                    `json:"enabled"`
	Mode               BillingPortalConfigurationFeaturesSubscriptionCancelMode                `json:"mode"`
	ProrationBehavior  BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior   `json:"proration_behavior"`
}

BillingPortalConfigurationFeaturesSubscriptionCancel represents the subscription cancel details on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReason added in v72.62.0

type BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReason struct {
	Enabled bool                                                                           `json:"enabled"`
	Options []BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption `json:"options"`
}

type BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption added in v72.62.0

type BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption string

Which cancellation reasons will be given as options to the customer.

const (
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionCustomerService BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "customer_service"
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionLowQuality      BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "low_quality"
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionMissingFeatures BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "missing_features"
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionOther           BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "other"
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionSwitchedService BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "switched_service"
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionTooComplex      BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "too_complex"
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionTooExpensive    BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "too_expensive"
	BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOptionUnused          BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption = "unused"
)

List of values that BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonOption can take

type BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonParams added in v72.62.0

type BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonParams struct {
	Enabled *bool     `form:"enabled"`
	Options []*string `form:"options"`
}

Whether the cancellation reasons will be collected in the portal and which options are exposed to the customer

type BillingPortalConfigurationFeaturesSubscriptionCancelMode added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionCancelMode string

BillingPortalConfigurationFeaturesSubscriptionCancelMode describes whether to cancel subscriptions immediately or at the end of the billing period.

const (
	BillingPortalConfigurationFeaturesSubscriptionCancelModeAtPeriodEnd BillingPortalConfigurationFeaturesSubscriptionCancelMode = "at_period_end"
	BillingPortalConfigurationFeaturesSubscriptionCancelModeImmediately BillingPortalConfigurationFeaturesSubscriptionCancelMode = "immediately"
)

List of values that BillingPortalConfigurationFeaturesSubscriptionCancelMode can take.

type BillingPortalConfigurationFeaturesSubscriptionCancelParams added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionCancelParams struct {
	CancellationReason *BillingPortalConfigurationFeaturesSubscriptionCancelCancellationReasonParams `form:"cancellation_reason"`
	Enabled            *bool                                                                         `form:"enabled"`
	Mode               *string                                                                       `form:"mode"`
	ProrationBehavior  *string                                                                       `form:"proration_behavior"`
}

BillingPortalConfigurationFeaturesSubscriptionCancelParams lets you pass the subscription cancel deetails on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior string

BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior describes whether to create prorations when canceling subscriptions.

const (
	BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehaviorAlwaysInvoice    BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior = "always_invoice"
	BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehaviorCreateProrations BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior = "create_prorations"
	BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehaviorNone             BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior = "none"
)

List of values that BillingPortalConfigurationFeaturesSubscriptionCancelProrationBehavior can take.

type BillingPortalConfigurationFeaturesSubscriptionPause added in v72.41.0

type BillingPortalConfigurationFeaturesSubscriptionPause struct {
	Enabled bool `json:"enabled"`
}

BillingPortalConfigurationFeaturesSubscriptionPause lets you pass pause details on the subscription update on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionPauseParams added in v72.41.0

type BillingPortalConfigurationFeaturesSubscriptionPauseParams struct {
	Enabled *bool `form:"enabled"`
}

BillingPortalConfigurationFeaturesSubscriptionPauseParams lets you pass details on the subscription pause on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionUpdate added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionUpdate struct {
	DefaultAllowedUpdates []BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate `json:"default_allowed_updates"`
	Enabled               bool                                                                       `json:"enabled"`
	Products              []*BillingPortalConfigurationFeaturesSubscriptionUpdateProduct             `json:"products"`
	ProrationBehavior     BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior      `json:"proration_behavior"`
}

BillingPortalConfigurationFeaturesSubscriptionUpdate represents the subscription update details on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate string

BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate describes a type of subscription update that may be supported on a portal configuration.

const (
	BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdatePrice         BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate = "price"
	BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdatePromotionCode BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate = "promotion_code"
	BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdateQuantity      BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate = "quantity"
)

List of values that BillingPortalConfigurationFeaturesSubscriptionUpdateDefaultAllowedUpdate can take.

type BillingPortalConfigurationFeaturesSubscriptionUpdateParams added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionUpdateParams struct {
	DefaultAllowedUpdates []*string                                                            `form:"default_allowed_updates"`
	Enabled               *bool                                                                `form:"enabled"`
	Products              []*BillingPortalConfigurationFeaturesSubscriptionUpdateProductParams `form:"products"`
	ProrationBehavior     *string                                                              `form:"proration_behavior"`
}

BillingPortalConfigurationFeaturesSubscriptionUpdateParams lets you pass subscription update details on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionUpdateProduct added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionUpdateProduct struct {
	Prices  []string `json:"prices"`
	Product string   `json:"product"`
}

BillingPortalConfigurationFeaturesSubscriptionUpdateProduct represents the subscription update details on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionUpdateProductParams added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionUpdateProductParams struct {
	Prices  []*string `form:"prices"`
	Product *string   `form:"product"`
}

BillingPortalConfigurationFeaturesSubscriptionUpdateProductParams lets you pass product details on the subscription update on a portal configuration.

type BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior added in v72.35.0

type BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior string

BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior determines how to handle prorations resulting from subscription updates.

const (
	BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehaviorAlwaysInvoice    BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior = "always_invoice"
	BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehaviorCreateProrations BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior = "create_prorations"
	BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehaviorNone             BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior = "none"
)

List of values that BillingPortalConfigurationFeaturesSubscriptionUpdateProrationBehavior can take.

type BillingPortalConfigurationList added in v72.35.0

type BillingPortalConfigurationList struct {
	APIResource
	ListMeta
	Data []*BillingPortalConfiguration `json:"data"`
}

BillingPortalConfigurationList is a list of portal configurations as returned from a list endpoint.

type BillingPortalConfigurationListParams added in v72.35.0

type BillingPortalConfigurationListParams struct {
	ListParams `form:"*"`
	Active     *bool `form:"active"`
	IsDefault  *bool `form:"is_default"`
}

BillingPortalConfigurationListParams is the set of parameters that can be used when listing portal configurations.

type BillingPortalConfigurationParams added in v72.35.0

type BillingPortalConfigurationParams struct {
	Params           `form:"*"`
	Active           *bool                                            `form:"active"`
	BusinessProfile  *BillingPortalConfigurationBusinessProfileParams `form:"business_profile"`
	DefaultReturnURL *string                                          `form:"default_return_url"`
	Features         *BillingPortalConfigurationFeaturesParams        `form:"features"`
}

BillingPortalConfigurationParams is the set of parameters that can be passed when creating or updating a portal configuration.

type BillingPortalSession

type BillingPortalSession struct {
	APIResource
	Configuration *BillingPortalConfiguration `json:"configuration"`
	Created       int64                       `json:"created"`
	Customer      string                      `json:"customer"`
	ID            string                      `json:"id"`
	Livemode      bool                        `json:"livemode"`
	Locale        string                      `json:"locale"`
	Object        string                      `json:"object"`
	OnBehalfOf    string                      `json:"on_behalf_of"`
	ReturnURL     string                      `json:"return_url"`
	URL           string                      `json:"url"`
}

BillingPortalSession is the resource representing a billing portal session.

func (*BillingPortalSession) UnmarshalJSON

func (b *BillingPortalSession) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a BillingPortalSession. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type BillingPortalSessionParams

type BillingPortalSessionParams struct {
	Params        `form:"*"`
	Configuration *string `form:"configuration"`
	Customer      *string `form:"customer"`
	Locale        *string `form:"locale"`
	OnBehalfOf    *string `form:"on_behalf_of"`
	ReturnURL     *string `form:"return_url"`
}

BillingPortalSessionParams is the set of parameters that can be used when creating a billing portal session.

type Capability

type Capability struct {
	APIResource
	Account            *Account                      `json:"account"`
	FutureRequirements *CapabilityFutureRequirements `json:"future_requirements"`
	ID                 string                        `json:"id"`
	Object             string                        `json:"object"`
	Requested          bool                          `json:"requested"`
	RequestedAt        int64                         `json:"requested_at"`
	Requirements       *CapabilityRequirements       `json:"requirements"`
	Status             CapabilityStatus              `json:"status"`
}

Capability is the resource representing a Stripe capability. For more details see https://stripe.com/docs/api/capabilities

func (*Capability) UnmarshalJSON

func (c *Capability) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Capability. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type CapabilityDisabledReason

type CapabilityDisabledReason string

CapabilityDisabledReason describes why a capability is disabled.

const (
	CapabilityDisabledReasonPendingOnboarding        CapabilityDisabledReason = "pending.onboarding"
	CapabilityDisabledReasonPendingReview            CapabilityDisabledReason = "pending.review"
	CapabilityDisabledReasonRejectedFraud            CapabilityDisabledReason = "rejected_fraud"
	CapabilityDisabledReasonRejectedListed           CapabilityDisabledReason = "rejected.listed"
	CapabilityDisabledReasonRejectedOther            CapabilityDisabledReason = "rejected.other"
	CapabilityDisabledReasonRequirementsFieldsNeeded CapabilityDisabledReason = "requirement.fields_needed"
)

List of values that CapabilityDisabledReason can take.

type CapabilityFutureRequirements added in v72.64.0

type CapabilityFutureRequirements struct {
	Alternatives        []*CapabilityFutureRequirementsAlternative `json:"alternatives"`
	CurrentDeadline     int64                                      `json:"current_deadline"`
	CurrentlyDue        []string                                   `json:"currently_due"`
	DisabledReason      string                                     `json:"disabled_reason"`
	Errors              []*CapabilityFutureRequirementsError       `json:"errors"`
	EventuallyDue       []string                                   `json:"eventually_due"`
	PastDue             []string                                   `json:"past_due"`
	PendingVerification []string                                   `json:"pending_verification"`
}

type CapabilityFutureRequirementsAlternative added in v72.64.0

type CapabilityFutureRequirementsAlternative struct {
	AlternativeFieldsDue []string `json:"alternative_fields_due"`
	OriginalFieldsDue    []string `json:"original_fields_due"`
}

Fields that are due and can be satisfied by providing the corresponding alternative fields instead.

type CapabilityFutureRequirementsError added in v72.64.0

type CapabilityFutureRequirementsError struct {
	Code        string `json:"code"`
	Reason      string `json:"reason"`
	Requirement string `json:"requirement"`
}

Fields that are `currently_due` and need to be collected again because validation or verification failed.

type CapabilityList

type CapabilityList struct {
	APIResource
	ListMeta
	Data []*Capability `json:"data"`
}

CapabilityList is a list of capabilities as retrieved from a list endpoint.

type CapabilityListParams

type CapabilityListParams struct {
	ListParams `form:"*"`
	Account    *string `form:"-"` // Included in URL
}

CapabilityListParams is the set of parameters that can be used when listing capabilities. For more detail see https://stripe.com/docs/api/capabilities/list

type CapabilityParams

type CapabilityParams struct {
	Params    `form:"*"`
	Account   *string `form:"-"` // Included in URL
	Requested *bool   `form:"requested"`
}

CapabilityParams is the set of parameters that can be used when updating a capability. For more details see https://stripe.com/docs/api/capabilities/update

type CapabilityRequirements

type CapabilityRequirements struct {
	Alternatives        []*CapabilityRequirementsAlternative `json:"alternatives"`
	CurrentDeadline     int64                                `json:"current_deadline"`
	CurrentlyDue        []string                             `json:"currently_due"`
	DisabledReason      CapabilityDisabledReason             `json:"disabled_reason"`
	Errors              []*AccountRequirementsError          `json:"errors"`
	EventuallyDue       []string                             `json:"eventually_due"`
	PastDue             []string                             `json:"past_due"`
	PendingVerification []string                             `json:"pending_verification"`
}

CapabilityRequirements represents information that needs to be collected for a capability.

type CapabilityRequirementsAlternative added in v72.64.0

type CapabilityRequirementsAlternative struct {
	AlternativeFieldsDue []string `json:"alternative_fields_due"`
	OriginalFieldsDue    []string `json:"original_fields_due"`
}

Fields that are due and can be satisfied by providing the corresponding alternative fields instead.

type CapabilityStatus

type CapabilityStatus string

CapabilityStatus describes the different statuses for a capability's status.

const (
	CapabilityStatusActive      CapabilityStatus = "active"
	CapabilityStatusDisabled    CapabilityStatus = "disabled"
	CapabilityStatusInactive    CapabilityStatus = "inactive"
	CapabilityStatusPending     CapabilityStatus = "pending"
	CapabilityStatusUnrequested CapabilityStatus = "unrequested"
)

List of values that CapabilityStatus can take.

type CaptureParams

type CaptureParams struct {
	Params                    `form:"*"`
	Amount                    *int64                    `form:"amount"`
	ApplicationFee            *int64                    `form:"application_fee"`
	ApplicationFeeAmount      *int64                    `form:"application_fee_amount"`
	ExchangeRate              *float64                  `form:"exchange_rate"`
	ReceiptEmail              *string                   `form:"receipt_email"`
	StatementDescriptor       *string                   `form:"statement_descriptor"`
	StatementDescriptorSuffix *string                   `form:"statement_descriptor_suffix"`
	TransferData              *ChargeTransferDataParams `form:"transfer_data"`
	TransferGroup             *string                   `form:"transfer_group"`
}

CaptureParams is the set of parameters that can be used when capturing a charge.

type Card

type Card struct {
	APIResource
	Account                *Account                    `json:"account"`
	AddressCity            string                      `json:"address_city"`
	AddressCountry         string                      `json:"address_country"`
	AddressLine1           string                      `json:"address_line1"`
	AddressLine1Check      CardVerification            `json:"address_line1_check"`
	AddressLine2           string                      `json:"address_line2"`
	AddressState           string                      `json:"address_state"`
	AddressZip             string                      `json:"address_zip"`
	AddressZipCheck        CardVerification            `json:"address_zip_check"`
	AvailablePayoutMethods []CardAvailablePayoutMethod `json:"available_payout_methods"`
	Brand                  CardBrand                   `json:"brand"`
	Country                string                      `json:"country"`
	Currency               Currency                    `json:"currency"`
	Customer               *Customer                   `json:"customer"`
	CVCCheck               CardVerification            `json:"cvc_check"`
	DefaultForCurrency     bool                        `json:"default_for_currency"`
	Deleted                bool                        `json:"deleted"`
	// Description is a succinct summary of the card's information.
	//
	// Please note that this field is for internal use only and is not returned
	// as part of standard API requests.
	Description  string      `json:"description"`
	DynamicLast4 string      `json:"dynamic_last4"`
	ExpMonth     uint8       `json:"exp_month"`
	ExpYear      uint16      `json:"exp_year"`
	Fingerprint  string      `json:"fingerprint"`
	Funding      CardFunding `json:"funding"`
	ID           string      `json:"id"`
	// IIN is the card's "Issuer Identification Number".
	//
	// Please note that this field is for internal use only and is not returned
	// as part of standard API requests.
	IIN string `json:"iin"`
	// Issuer is a bank or financial institution that provides the card.
	//
	// Please note that this field is for internal use only and is not returned
	// as part of standard API requests.
	Issuer             string                 `json:"issuer"`
	Last4              string                 `json:"last4"`
	Metadata           map[string]string      `json:"metadata"`
	Name               string                 `json:"name"`
	Object             string                 `json:"object"`
	TokenizationMethod CardTokenizationMethod `json:"tokenization_method"`
}

Card is the resource representing a Stripe credit/debit card. For more details see https://stripe.com/docs/api#cards.

func (*Card) UnmarshalJSON

func (c *Card) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Card. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type CardAvailablePayoutMethod

type CardAvailablePayoutMethod string

CardAvailablePayoutMethod is a set of available payout methods for the card.

const (
	CardAvailablePayoutMethodInstant  CardAvailablePayoutMethod = "instant"
	CardAvailablePayoutMethodStandard CardAvailablePayoutMethod = "standard"
)

List of values that CardAvailablePayoutMethod can take.

type CardBrand

type CardBrand string

CardBrand is the list of allowed values for the card's brand.

const (
	CardBrandAmex       CardBrand = "American Express"
	CardBrandDiscover   CardBrand = "Discover"
	CardBrandDinersClub CardBrand = "Diners Club"
	CardBrandJCB        CardBrand = "JCB"
	CardBrandMasterCard CardBrand = "MasterCard"
	CardBrandUnknown    CardBrand = "Unknown"
	CardBrandUnionPay   CardBrand = "UnionPay"
	CardBrandVisa       CardBrand = "Visa"
)

List of values that CardBrand can take.

type CardError

type CardError struct {

	// DeclineCode is a code indicating a card issuer's reason for declining a
	// card (if they provided one).
	DeclineCode DeclineCode `json:"decline_code,omitempty"`
	// contains filtered or unexported fields
}

CardError are the most common type of error you should expect to handle. They result when the user enters a card that can't be charged for some reason.

func (*CardError) Error

func (e *CardError) Error() string

Error serializes the error object to JSON and returns it as a string.

type CardFunding

type CardFunding string

CardFunding is the list of allowed values for the card's funding.

const (
	CardFundingCredit  CardFunding = "credit"
	CardFundingDebit   CardFunding = "debit"
	CardFundingPrepaid CardFunding = "prepaid"
	CardFundingUnknown CardFunding = "unknown"
)

List of values that CardFunding can take.

type CardList

type CardList struct {
	APIResource
	ListMeta
	Data []*Card `json:"data"`
}

CardList is a list object for cards.

type CardListParams

type CardListParams struct {
	ListParams `form:"*"`
	Account    *string `form:"-"` // Included in URL
	Customer   *string `form:"-"` // Included in URL
}

CardListParams is the set of parameters that can be used when listing cards. For more details see https://stripe.com/docs/api#list_cards.

func (*CardListParams) AppendTo

func (p *CardListParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for CardListParams so that we can send the special required `object` field up along with the other specified parameters.

type CardOwnerParams added in v72.82.0

type CardOwnerParams struct {
	Address *AddressParams `form:"address"`
	Email   *string        `form:"email"`
	Name    *string        `form:"name"`
	Phone   *string        `form:"phone"`
}

type CardParams

type CardParams struct {
	Params             `form:"*"`
	Account            *string          `form:"-"` // Included in URL
	Token              *string          `form:"-"` // Included in URL
	Customer           *string          `form:"-"` // Included in URL
	AccountHolderName  *string          `form:"account_holder_name"`
	AccountHolderType  *string          `form:"account_holder_type"`
	AccountType        *string          `form:"account_type"`
	AddressCity        *string          `form:"address_city"`
	AddressCountry     *string          `form:"address_country"`
	AddressLine1       *string          `form:"address_line1"`
	AddressLine2       *string          `form:"address_line2"`
	AddressState       *string          `form:"address_state"`
	AddressZip         *string          `form:"address_zip"`
	Currency           *string          `form:"currency"`
	CVC                *string          `form:"cvc"`
	DefaultForCurrency *bool            `form:"default_for_currency"`
	ExpMonth           *string          `form:"exp_month"`
	ExpYear            *string          `form:"exp_year"`
	Name               *string          `form:"name"`
	Number             *string          `form:"number"`
	Owner              *CardOwnerParams `form:"owner"`
	// ID is used when tokenizing a card for shared customers
	ID string `form:"*"`
}

CardParams is the set of parameters that can be used when creating or updating a card. For more details see https://stripe.com/docs/api#create_card and https://stripe.com/docs/api#update_card.

Note that while form annotations are used for tokenization and updates, cards have some unusual logic on creates that necessitates manual handling of all parameters. See AppendToAsCardSourceOrExternalAccount.

func (*CardParams) AppendToAsCardSourceOrExternalAccount

func (c *CardParams) AppendToAsCardSourceOrExternalAccount(body *form.Values, keyParts []string)

AppendToAsCardSourceOrExternalAccount appends the given CardParams as either a card or external account.

It may look like an AppendTo from the form package, but it's not, and is only used in the special case where we use `card.New`. It's needed because we have some weird encoding logic here that can't be handled by the form package (and it's special enough that it wouldn't be desirable to have it do so).

This is not a pattern that we want to push forward, and this largely exists because the cards endpoint is a little unusual. There is one other resource like it, which is bank account.

type CardTokenizationMethod

type CardTokenizationMethod string

CardTokenizationMethod is the list of allowed values for the card's tokenization method.

const (
	TokenizationMethodAndroidPay CardTokenizationMethod = "android_pay"
	TokenizationMethodApplePay   CardTokenizationMethod = "apple_pay"
)

List of values that CardTokenizationMethod can take.

type CardVerification

type CardVerification string

CardVerification is the list of allowed verification responses.

const (
	CardVerificationFail        CardVerification = "fail"
	CardVerificationPass        CardVerification = "pass"
	CardVerificationUnavailable CardVerification = "unavailable"
	CardVerificationUnchecked   CardVerification = "unchecked"
)

List of values that CardVerification can take.

type Charge

type Charge struct {
	APIResource
	Amount                        int64                       `json:"amount"`
	AmountCaptured                int64                       `json:"amount_captured"`
	AmountRefunded                int64                       `json:"amount_refunded"`
	Application                   *Application                `json:"application"`
	ApplicationFee                *ApplicationFee             `json:"application_fee"`
	ApplicationFeeAmount          int64                       `json:"application_fee_amount"`
	AuthorizationCode             string                      `json:"authorization_code"`
	BalanceTransaction            *BalanceTransaction         `json:"balance_transaction"`
	BillingDetails                *BillingDetails             `json:"billing_details"`
	CalculatedStatementDescriptor string                      `json:"calculated_statement_descriptor"`
	Captured                      bool                        `json:"captured"`
	Created                       int64                       `json:"created"`
	Currency                      Currency                    `json:"currency"`
	Customer                      *Customer                   `json:"customer"`
	Description                   string                      `json:"description"`
	Destination                   *Account                    `json:"destination"`
	Dispute                       *Dispute                    `json:"dispute"`
	Disputed                      bool                        `json:"disputed"`
	FailureCode                   string                      `json:"failure_code"`
	FailureMessage                string                      `json:"failure_message"`
	FraudDetails                  *FraudDetails               `json:"fraud_details"`
	ID                            string                      `json:"id"`
	Invoice                       *Invoice                    `json:"invoice"`
	Level3                        ChargeLevel3                `json:"level3"`
	Livemode                      bool                        `json:"livemode"`
	Metadata                      map[string]string           `json:"metadata"`
	Object                        string                      `json:"object"`
	OnBehalfOf                    *Account                    `json:"on_behalf_of"`
	Order                         *Order                      `json:"order"`
	Outcome                       *ChargeOutcome              `json:"outcome"`
	Paid                          bool                        `json:"paid"`
	PaymentIntent                 *PaymentIntent              `json:"payment_intent"`
	PaymentMethod                 string                      `json:"payment_method"`
	PaymentMethodDetails          *ChargePaymentMethodDetails `json:"payment_method_details"`
	ReceiptEmail                  string                      `json:"receipt_email"`
	ReceiptNumber                 string                      `json:"receipt_number"`
	ReceiptURL                    string                      `json:"receipt_url"`
	Refunded                      bool                        `json:"refunded"`
	Refunds                       *RefundList                 `json:"refunds"`
	Review                        *Review                     `json:"review"`
	Shipping                      *ShippingDetails            `json:"shipping"`
	Source                        *PaymentSource              `json:"source"`
	SourceTransfer                *Transfer                   `json:"source_transfer"`
	StatementDescriptor           string                      `json:"statement_descriptor"`
	StatementDescriptorSuffix     string                      `json:"statement_descriptor_suffix"`
	Status                        string                      `json:"status"`
	Transfer                      *Transfer                   `json:"transfer"`
	TransferData                  *ChargeTransferData         `json:"transfer_data"`
	TransferGroup                 string                      `json:"transfer_group"`
}

Charge is the resource representing a Stripe charge. For more details see https://stripe.com/docs/api#charges.

Example (Get)
package main

import (
	"log"

	stripe "github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/charge"
)

func main() {
	stripe.Key = "sk_key"

	params := &stripe.ChargeParams{}
	params.AddExpand("customer")
	params.AddExpand("application")
	params.AddExpand("balance_transaction")

	ch, err := charge.Get("ch_example_id", params)

	if err != nil {
		log.Fatal(err)
	}

	if ch.Application != nil {
		log.Fatal(err)
	}

	log.Printf("%v\n", ch.ID)
}
Output:

Example (New)
package main

import (
	"log"

	stripe "github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/charge"
)

func main() {
	stripe.Key = "sk_key"

	params := &stripe.ChargeParams{
		Amount:   stripe.Int64(1000),
		Currency: stripe.String(string(stripe.CurrencyUSD)),
	}
	params.SetSource("tok_visa")
	params.AddMetadata("key", "value")

	ch, err := charge.New(params)

	if err != nil {
		log.Fatal(err)
	}

	log.Printf("%v\n", ch.ID)
}
Output:

func (*Charge) UnmarshalJSON

func (c *Charge) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Charge. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ChargeFraudStripeReport

type ChargeFraudStripeReport string

ChargeFraudStripeReport is the list of allowed values for reporting fraud.

const (
	ChargeFraudStripeReportFraudulent ChargeFraudStripeReport = "fraudulent"
)

List of values that ChargeFraudStripeReport can take.

type ChargeFraudUserReport

type ChargeFraudUserReport string

ChargeFraudUserReport is the list of allowed values for reporting fraud.

const (
	ChargeFraudUserReportFraudulent ChargeFraudUserReport = "fraudulent"
	ChargeFraudUserReportSafe       ChargeFraudUserReport = "safe"
)

List of values that ChargeFraudUserReport can take.

type ChargeLevel3

type ChargeLevel3 struct {
	CustomerReference  string                  `json:"customer_reference"`
	LineItems          []*ChargeLevel3LineItem `json:"line_items"`
	MerchantReference  string                  `json:"merchant_reference"`
	ShippingAddressZip string                  `json:"shipping_address_zip"`
	ShippingAmount     int64                   `json:"shipping_amount"`
	ShippingFromZip    string                  `json:"shipping_from_zip"`
}

ChargeLevel3 represents the Level III data. This is in private beta and would be empty for most integrations

type ChargeLevel3LineItem

type ChargeLevel3LineItem struct {
	DiscountAmount     int64  `json:"discount_amount"`
	ProductCode        string `json:"product_code"`
	ProductDescription string `json:"product_description"`
	Quantity           int64  `json:"quantity"`
	TaxAmount          int64  `json:"tax_amount"`
	UnitCost           int64  `json:"unit_cost"`
}

ChargeLevel3LineItem represents a line item on level III data. This is in private beta and would be empty for most integrations

type ChargeLevel3LineItemsParams

type ChargeLevel3LineItemsParams struct {
	DiscountAmount     *int64  `form:"discount_amount"`
	ProductCode        *string `form:"product_code"`
	ProductDescription *string `form:"product_description"`
	Quantity           *int64  `form:"quantity"`
	TaxAmount          *int64  `form:"tax_amount"`
	UnitCost           *int64  `form:"unit_cost"`
}

ChargeLevel3LineItemsParams is the set of parameters that represent a line item on level III data.

type ChargeLevel3Params

type ChargeLevel3Params struct {
	CustomerReference  *string                        `form:"customer_reference"`
	LineItems          []*ChargeLevel3LineItemsParams `form:"line_items"`
	MerchantReference  *string                        `form:"merchant_reference"`
	ShippingAddressZip *string                        `form:"shipping_address_zip"`
	ShippingAmount     *int64                         `form:"shipping_amount"`
	ShippingFromZip    *string                        `form:"shipping_from_zip"`
}

ChargeLevel3Params is the set of parameters that can be used for the Level III data.

type ChargeList

type ChargeList struct {
	APIResource
	ListMeta
	Data []*Charge `json:"data"`
}

ChargeList is a list of charges as retrieved from a list endpoint.

type ChargeListParams

type ChargeListParams struct {
	ListParams    `form:"*"`
	Created       *int64            `form:"created"`
	CreatedRange  *RangeQueryParams `form:"created"`
	Customer      *string           `form:"customer"`
	PaymentIntent *string           `form:"payment_intent"`
	TransferGroup *string           `form:"transfer_group"`
}

ChargeListParams is the set of parameters that can be used when listing charges.

type ChargeOutcome

type ChargeOutcome struct {
	NetworkStatus string             `json:"network_status"`
	Reason        string             `json:"reason"`
	RiskLevel     string             `json:"risk_level"`
	RiskScore     int64              `json:"risk_score"`
	Rule          *ChargeOutcomeRule `json:"rule"`
	SellerMessage string             `json:"seller_message"`
	Type          string             `json:"type"`
}

ChargeOutcome is the charge's outcome that details whether a payment was accepted and why.

type ChargeOutcomeRule

type ChargeOutcomeRule struct {
	Action    string `json:"action"`
	ID        string `json:"id"`
	Predicate string `json:"predicate"`
}

ChargeOutcomeRule tells you the Radar rule that blocked the charge, if any.

func (*ChargeOutcomeRule) UnmarshalJSON

func (c *ChargeOutcomeRule) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a ChargeOutcomeRule. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ChargeParams

type ChargeParams struct {
	Params                    `form:"*"`
	Amount                    *int64                    `form:"amount"`
	ApplicationFee            *int64                    `form:"application_fee"`
	ApplicationFeeAmount      *int64                    `form:"application_fee_amount"`
	Capture                   *bool                     `form:"capture"`
	Currency                  *string                   `form:"currency"`
	Customer                  *string                   `form:"customer"`
	Description               *string                   `form:"description"`
	Destination               *DestinationParams        `form:"destination"`
	ExchangeRate              *float64                  `form:"exchange_rate"`
	FraudDetails              *FraudDetailsParams       `form:"fraud_details"`
	Level3                    *ChargeLevel3Params       `form:"level3"`
	OnBehalfOf                *string                   `form:"on_behalf_of"`
	ReceiptEmail              *string                   `form:"receipt_email"`
	Shipping                  *ShippingDetailsParams    `form:"shipping"`
	Source                    *SourceParams             `form:"*"` // SourceParams has custom encoding so brought to top level with "*"
	StatementDescriptor       *string                   `form:"statement_descriptor"`
	StatementDescriptorSuffix *string                   `form:"statement_descriptor_suffix"`
	TransferData              *ChargeTransferDataParams `form:"transfer_data"`
	TransferGroup             *string                   `form:"transfer_group"`
}

ChargeParams is the set of parameters that can be used when creating or updating a charge.

func (*ChargeParams) SetSource

func (p *ChargeParams) SetSource(sp interface{}) error

SetSource adds valid sources to a ChargeParams object, returning an error for unsupported sources.

type ChargePaymentMethodDetails

type ChargePaymentMethodDetails struct {
	AchCreditTransfer  *ChargePaymentMethodDetailsAchCreditTransfer  `json:"ach_credit_transfer"`
	AchDebit           *ChargePaymentMethodDetailsAchDebit           `json:"ach_debit"`
	AcssDebit          *ChargePaymentMethodDetailsAcssDebit          `json:"acss_debit"`
	AfterpayClearpay   *ChargePaymentMethodDetailsAfterpayClearpay   `json:"afterpay_clearpay"`
	Alipay             *ChargePaymentMethodDetailsAlipay             `json:"alipay"`
	AUBECSDebit        *ChargePaymentMethodDetailsAUBECSDebit        `json:"au_becs_debit"`
	BACSDebit          *ChargePaymentMethodDetailsBACSDebit          `json:"bacs_debit"`
	Bancontact         *ChargePaymentMethodDetailsBancontact         `json:"bancontact"`
	Boleto             *ChargePaymentMethodDetailsBoleto             `json:"boleto"`
	Card               *ChargePaymentMethodDetailsCard               `json:"card"`
	CardPresent        *ChargePaymentMethodDetailsCardPresent        `json:"card_present"`
	Eps                *ChargePaymentMethodDetailsEps                `json:"eps"`
	FPX                *ChargePaymentMethodDetailsFPX                `json:"fpx"`
	Giropay            *ChargePaymentMethodDetailsGiropay            `json:"giropay"`
	Grabpay            *ChargePaymentMethodDetailsGrabpay            `json:"grabpay"`
	Ideal              *ChargePaymentMethodDetailsIdeal              `json:"ideal"`
	InteracPresent     *ChargePaymentMethodDetailsInteracPresent     `json:"interac_present"`
	Klarna             *ChargePaymentMethodDetailsKlarna             `json:"klarna"`
	Multibanco         *ChargePaymentMethodDetailsMultibanco         `json:"multibanco"`
	OXXO               *ChargePaymentMethodDetailsOXXO               `json:"oxxo"`
	P24                *ChargePaymentMethodDetailsP24                `json:"p24"`
	SepaCreditTransfer *ChargePaymentMethodDetailsSepaCreditTransfer `json:"sepa_credit_transfer"`
	SepaDebit          *ChargePaymentMethodDetailsSepaDebit          `json:"sepa_debit"`
	Sofort             *ChargePaymentMethodDetailsSofort             `json:"sofort"`
	StripeAccount      *ChargePaymentMethodDetailsStripeAccount      `json:"stripe_account"`
	Type               ChargePaymentMethodDetailsType                `json:"type"`
	Wechat             *ChargePaymentMethodDetailsWechat             `json:"wechat"`
	WechatPay          *ChargePaymentMethodDetailsWechatPay          `json:"wechat_pay"`
}

ChargePaymentMethodDetails represents the details about the PaymentMethod associated with the charge.

type ChargePaymentMethodDetailsAUBECSDebit

type ChargePaymentMethodDetailsAUBECSDebit struct {
	BSBNumber   string `json:"bsb_number"`
	Fingerprint string `json:"fingerprint"`
	Last4       string `json:"last4"`
	Mandate     string `json:"mandate"`
}

ChargePaymentMethodDetailsAUBECSDebit represents details about the AU BECS DD PaymentMethod.

type ChargePaymentMethodDetailsAchCreditTransfer

type ChargePaymentMethodDetailsAchCreditTransfer struct {
	AccountNumber string `json:"account_number"`
	BankName      string `json:"bank_name"`
	RoutingNumber string `json:"routing_number"`
	SwiftCode     string `json:"swift_code"`
}

ChargePaymentMethodDetailsAchCreditTransfer represents details about the ACH Credit Transfer PaymentMethod.

type ChargePaymentMethodDetailsAchDebit

type ChargePaymentMethodDetailsAchDebit struct {
	AccountHolderType BankAccountAccountHolderType `json:"account_holder_type"`
	BankName          string                       `json:"bank_name"`
	Country           string                       `json:"country"`
	Fingerprint       string                       `json:"fingerprint"`
	Last4             string                       `json:"last4"`
	RoutingNumber     string                       `json:"routing_number"`
}

ChargePaymentMethodDetailsAchDebit represents details about the ACH Debit PaymentMethod.

type ChargePaymentMethodDetailsAcssDebit

type ChargePaymentMethodDetailsAcssDebit struct {
	BankName          string `json:"bank_name"`
	Fingerprint       string `json:"fingerprint"`
	InstitutionNumber string `json:"institution_number"`
	Last4             string `json:"last4"`
	Mandate           string `json:"mandate"`
	TransitNumber     string `json:"transit_number"`
}

ChargePaymentMethodDetailsAcssDebit represents details about the ACSS Debit PaymentMethod.

type ChargePaymentMethodDetailsAfterpayClearpay added in v72.34.0

type ChargePaymentMethodDetailsAfterpayClearpay struct {
	Reference string `json:"reference"`
}

ChargePaymentMethodDetailsAfterpayClearpay represents details about the AfterpayClearpay PaymentMethod.

type ChargePaymentMethodDetailsAlipay

type ChargePaymentMethodDetailsAlipay struct {
	BuyerID       string `json:"buyer_id"`
	Fingerprint   string `json:"fingerprint"`
	TransactionID string `json:"transaction_id"`
}

ChargePaymentMethodDetailsAlipay represents details about the Alipay PaymentMethod.

type ChargePaymentMethodDetailsBACSDebit

type ChargePaymentMethodDetailsBACSDebit struct {
	Fingerprint string `json:"fingerprint"`
	Last4       string `json:"last4"`
	Mandate     string `json:"mandate"`
	SortCode    string `json:"sort_code"`
}

ChargePaymentMethodDetailsBACSDebit represents details about the BECS Debit PaymentMethod.

type ChargePaymentMethodDetailsBancontact

type ChargePaymentMethodDetailsBancontact struct {
	BankCode                  string         `json:"bank_code"`
	BankName                  string         `json:"bank_name"`
	Bic                       string         `json:"bic"`
	GeneratedSepaDebit        *PaymentMethod `json:"generated_sepa_debit"`
	GeneratedSepaDebitMandate *Mandate       `json:"generated_sepa_debit_mandate"`
	IbanLast4                 string         `json:"iban_last4"`
	PreferredLanguage         string         `json:"preferred_language"`
	VerifiedName              string         `json:"verified_name"`
}

ChargePaymentMethodDetailsBancontact represents details about the Bancontact PaymentMethod.

type ChargePaymentMethodDetailsBoleto added in v72.52.0

type ChargePaymentMethodDetailsBoleto struct {
	TaxID string `json:"tax_id"`
}

ChargePaymentMethodDetailsBoleto represents details about the Boleto PaymentMethod.

type ChargePaymentMethodDetailsCard

type ChargePaymentMethodDetailsCard struct {
	Brand        PaymentMethodCardBrand                      `json:"brand"`
	Checks       *ChargePaymentMethodDetailsCardChecks       `json:"checks"`
	Country      string                                      `json:"country"`
	ExpMonth     uint64                                      `json:"exp_month"`
	ExpYear      uint64                                      `json:"exp_year"`
	Fingerprint  string                                      `json:"fingerprint"`
	Funding      CardFunding                                 `json:"funding"`
	Installments *ChargePaymentMethodDetailsCardInstallments `json:"installments"`
	Last4        string                                      `json:"last4"`
	MOTO         bool                                        `json:"moto"`
	Network      PaymentMethodCardNetwork                    `json:"network"`
	ThreeDSecure *ChargePaymentMethodDetailsCardThreeDSecure `json:"three_d_secure"`
	Wallet       *ChargePaymentMethodDetailsCardWallet       `json:"wallet"`

	// Please note that the fields below are for internal use only and are not returned
	// as part of standard API requests.
	Description string `json:"description"`
	IIN         string `json:"iin"`
	Issuer      string `json:"issuer"`
}

ChargePaymentMethodDetailsCard represents details about the Card PaymentMethod.

type ChargePaymentMethodDetailsCardChecks

type ChargePaymentMethodDetailsCardChecks struct {
	AddressLine1Check      CardVerification `json:"address_line1_check"`
	AddressPostalCodeCheck CardVerification `json:"address_postal_code_check"`
	CVCCheck               CardVerification `json:"cvc_check"`
}

ChargePaymentMethodDetailsCardChecks represents the checks associated with the charge's Card PaymentMethod.

type ChargePaymentMethodDetailsCardInstallments

type ChargePaymentMethodDetailsCardInstallments struct {
	Plan *PaymentIntentPaymentMethodOptionsCardInstallmentsPlan `json:"plan"`
}

ChargePaymentMethodDetailsCardInstallments represents details about the installment plan chosen for this charge.

type ChargePaymentMethodDetailsCardPresent

type ChargePaymentMethodDetailsCardPresent struct {
	AmountAuthorized     int64                                         `json:"amount_authorized"`
	Brand                PaymentMethodCardBrand                        `json:"brand"`
	CardholderName       string                                        `json:"cardholder_name"`
	Country              string                                        `json:"country"`
	EmvAuthData          string                                        `json:"emv_auth_data"`
	ExpMonth             uint64                                        `json:"exp_month"`
	ExpYear              uint64                                        `json:"exp_year"`
	Fingerprint          string                                        `json:"fingerprint"`
	Funding              CardFunding                                   `json:"funding"`
	GeneratedCard        string                                        `json:"generated_card"`
	Last4                string                                        `json:"last4"`
	Network              PaymentMethodCardNetwork                      `json:"network"`
	OvercaptureSupported bool                                          `json:"overcapture_supported"`
	ReadMethod           string                                        `json:"read_method"`
	Receipt              *ChargePaymentMethodDetailsCardPresentReceipt `json:"receipt"`

	// Please note that the fields below are for internal use only and are not returned
	// as part of standard API requests.
	Description string `json:"description"`
	IIN         string `json:"iin"`
	Issuer      string `json:"issuer"`
}

ChargePaymentMethodDetailsCardPresent represents details about the Card Present PaymentMethod.

type ChargePaymentMethodDetailsCardPresentReceipt

type ChargePaymentMethodDetailsCardPresentReceipt struct {
	AccountType                  ChargePaymentMethodDetailsCardPresentReceiptAccountType `json:"account_type"`
	ApplicationCryptogram        string                                                  `json:"application_cryptogram"`
	ApplicationPreferredName     string                                                  `json:"application_preferred_name"`
	AuthorizationCode            string                                                  `json:"authorization_code"`
	AuthorizationResponseCode    string                                                  `json:"authorization_response_code"`
	CardholderVerificationMethod string                                                  `json:"cardholder_verification_method"`
	DedicatedFileName            string                                                  `json:"dedicated_file_name"`
	TerminalVerificationResults  string                                                  `json:"terminal_verification_results"`
	TransactionStatusInformation string                                                  `json:"transaction_status_information"`
}

ChargePaymentMethodDetailsCardPresentReceipt represents details about the receipt on a Card Present PaymentMethod.

type ChargePaymentMethodDetailsCardPresentReceiptAccountType

type ChargePaymentMethodDetailsCardPresentReceiptAccountType string

ChargePaymentMethodDetailsCardPresentReceiptAccountType indicates the type of account backing a card present transaction.

const (
	ChargePaymentMethodDetailsCardPresentReceiptAccountTypeChecking ChargePaymentMethodDetailsCardPresentReceiptAccountType = "checking"
	ChargePaymentMethodDetailsCardPresentReceiptAccountTypeCredit   ChargePaymentMethodDetailsCardPresentReceiptAccountType = "credit"
	ChargePaymentMethodDetailsCardPresentReceiptAccountTypePrepaid  ChargePaymentMethodDetailsCardPresentReceiptAccountType = "prepaid"
	ChargePaymentMethodDetailsCardPresentReceiptAccountTypeUnknown  ChargePaymentMethodDetailsCardPresentReceiptAccountType = "unknown"
)

List of values that ChargePaymentMethodDetailsCardThreeDSecureResult can take.

type ChargePaymentMethodDetailsCardThreeDSecure

type ChargePaymentMethodDetailsCardThreeDSecure struct {
	AuthenticationFlow ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlow `json:"authentication_flow"`
	Result             ChargePaymentMethodDetailsCardThreeDSecureResult             `json:"result"`
	ResultReason       ChargePaymentMethodDetailsCardThreeDSecureResultReason       `json:"result_reason"`
	Version            string                                                       `json:"version"`
}

ChargePaymentMethodDetailsCardThreeDSecure represents details about 3DS associated with the charge's PaymentMethod.

type ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlow

type ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlow string

ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlow indicates the type of 3D Secure authentication performed.

const (
	ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlowChallenge    ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlow = "challenge"
	ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlowFrictionless ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlow = "frictionless"
)

List of values that ChargePaymentMethodDetailsCardThreeDSecureAuthenticationFlow can take.

type ChargePaymentMethodDetailsCardThreeDSecureResult

type ChargePaymentMethodDetailsCardThreeDSecureResult string

ChargePaymentMethodDetailsCardThreeDSecureResult indicates the outcome of 3D Secure authentication.

const (
	ChargePaymentMethodDetailsCardThreeDSecureResultAttemptAcknowledged ChargePaymentMethodDetailsCardThreeDSecureResult = "attempt_acknowledged"
	ChargePaymentMethodDetailsCardThreeDSecureResultAuthenticated       ChargePaymentMethodDetailsCardThreeDSecureResult = "authenticated"
	ChargePaymentMethodDetailsCardThreeDSecureResultFailed              ChargePaymentMethodDetailsCardThreeDSecureResult = "failed"
	ChargePaymentMethodDetailsCardThreeDSecureResultNotSupported        ChargePaymentMethodDetailsCardThreeDSecureResult = "not_supported"
	ChargePaymentMethodDetailsCardThreeDSecureResultProcessingError     ChargePaymentMethodDetailsCardThreeDSecureResult = "processing_error"
)

List of values that ChargePaymentMethodDetailsCardThreeDSecureResult can take.

type ChargePaymentMethodDetailsCardThreeDSecureResultReason

type ChargePaymentMethodDetailsCardThreeDSecureResultReason string

ChargePaymentMethodDetailsCardThreeDSecureResultReason represents dditional information about why 3D Secure succeeded or failed

const (
	ChargePaymentMethodDetailsCardThreeDSecureResultReasonAbandoned           ChargePaymentMethodDetailsCardThreeDSecureResultReason = "abandoned"
	ChargePaymentMethodDetailsCardThreeDSecureResultReasonBypassed            ChargePaymentMethodDetailsCardThreeDSecureResultReason = "bypassed"
	ChargePaymentMethodDetailsCardThreeDSecureResultReasonCanceled            ChargePaymentMethodDetailsCardThreeDSecureResultReason = "canceled"
	ChargePaymentMethodDetailsCardThreeDSecureResultReasonCardNotEnrolled     ChargePaymentMethodDetailsCardThreeDSecureResultReason = "card_not_enrolled"
	ChargePaymentMethodDetailsCardThreeDSecureResultReasonNetworkNotSupported ChargePaymentMethodDetailsCardThreeDSecureResultReason = "network_not_supported"
	ChargePaymentMethodDetailsCardThreeDSecureResultReasonProtocolError       ChargePaymentMethodDetailsCardThreeDSecureResultReason = "protocol_error"
	ChargePaymentMethodDetailsCardThreeDSecureResultReasonRejected            ChargePaymentMethodDetailsCardThreeDSecureResultReason = "rejected"
)

List of values that ChargePaymentMethodDetailsCardThreeDSecureResultReason can take.

type ChargePaymentMethodDetailsCardWallet

type ChargePaymentMethodDetailsCardWallet struct {
	AmexExpressCheckout *ChargePaymentMethodDetailsCardWalletAmexExpressCheckout `json:"amex_express_checkout"`
	ApplePay            *ChargePaymentMethodDetailsCardWalletApplePay            `json:"apple_pay"`
	DynamicLast4        string                                                   `json:"dynamic_last4"`
	GooglePay           *ChargePaymentMethodDetailsCardWalletGooglePay           `json:"google_pay"`
	Masterpass          *ChargePaymentMethodDetailsCardWalletMasterpass          `json:"masterpass"`
	SamsungPay          *ChargePaymentMethodDetailsCardWalletSamsungPay          `json:"samsung_pay"`
	Type                PaymentMethodCardWalletType                              `json:"type"`
	VisaCheckout        *ChargePaymentMethodDetailsCardWalletVisaCheckout        `json:"visa_checkout"`
}

ChargePaymentMethodDetailsCardWallet represents the details of the card wallet if this Card PaymentMethod is part of a card wallet.

type ChargePaymentMethodDetailsCardWalletAmexExpressCheckout

type ChargePaymentMethodDetailsCardWalletAmexExpressCheckout struct{}

ChargePaymentMethodDetailsCardWalletAmexExpressCheckout represents the details of the Amex Express Checkout wallet.

type ChargePaymentMethodDetailsCardWalletApplePay

type ChargePaymentMethodDetailsCardWalletApplePay struct{}

ChargePaymentMethodDetailsCardWalletApplePay represents the details of the Apple Pay wallet.

type ChargePaymentMethodDetailsCardWalletGooglePay

type ChargePaymentMethodDetailsCardWalletGooglePay struct{}

ChargePaymentMethodDetailsCardWalletGooglePay represents the details of the Google Pay wallet.

type ChargePaymentMethodDetailsCardWalletMasterpass

type ChargePaymentMethodDetailsCardWalletMasterpass struct {
	BillingAddress  *Address `json:"billing_address"`
	Email           string   `json:"email"`
	Name            string   `json:"name"`
	ShippingAddress *Address `json:"shipping_address"`
}

ChargePaymentMethodDetailsCardWalletMasterpass represents the details of the Masterpass wallet.

type ChargePaymentMethodDetailsCardWalletSamsungPay

type ChargePaymentMethodDetailsCardWalletSamsungPay struct{}

ChargePaymentMethodDetailsCardWalletSamsungPay represents the details of the Samsung Pay wallet.

type ChargePaymentMethodDetailsCardWalletVisaCheckout

type ChargePaymentMethodDetailsCardWalletVisaCheckout struct {
	BillingAddress  *Address `json:"billing_address"`
	Email           string   `json:"email"`
	Name            string   `json:"name"`
	ShippingAddress *Address `json:"shipping_address"`
}

ChargePaymentMethodDetailsCardWalletVisaCheckout represents the details of the Visa Checkout wallet.

type ChargePaymentMethodDetailsEps

type ChargePaymentMethodDetailsEps struct {
	Bank         string `json:"bank"`
	VerifiedName string `json:"verified_name"`
}

ChargePaymentMethodDetailsEps represents details about the EPS PaymentMethod.

type ChargePaymentMethodDetailsFPX

type ChargePaymentMethodDetailsFPX struct {
	AccountHolderType PaymentMethodFPXAccountHolderType `json:"account_holder_type"`
	Bank              string                            `json:"bank"`
	TransactionID     string                            `json:"transaction_id"`
}

ChargePaymentMethodDetailsFPX represents details about the FPX PaymentMethod.

type ChargePaymentMethodDetailsGiropay

type ChargePaymentMethodDetailsGiropay struct {
	BankCode     string `json:"bank_code"`
	BankName     string `json:"bank_name"`
	Bic          string `json:"bic"`
	VerifiedName string `json:"verified_name"`
}

ChargePaymentMethodDetailsGiropay represents details about the Giropay PaymentMethod.

type ChargePaymentMethodDetailsGrabpay added in v72.24.0

type ChargePaymentMethodDetailsGrabpay struct {
	TransactionID string `json:"transaction_id"`
}

ChargePaymentMethodDetailsGrabpay represents details about the Grabpay PaymentMethod.

type ChargePaymentMethodDetailsIdeal

type ChargePaymentMethodDetailsIdeal struct {
	Bank                      string         `json:"bank"`
	Bic                       string         `json:"bic"`
	GeneratedSepaDebit        *PaymentMethod `json:"generated_sepa_debit"`
	GeneratedSepaDebitMandate *Mandate       `json:"generated_sepa_debit_mandate"`
	IbanLast4                 string         `json:"iban_last4"`
	VerifiedName              string         `json:"verified_name"`
}

ChargePaymentMethodDetailsIdeal represents details about the Ideal PaymentMethod.

type ChargePaymentMethodDetailsInteracPresent

type ChargePaymentMethodDetailsInteracPresent struct {
	Brand            string                                           `json:"brand"`
	CardholderName   string                                           `json:"cardholder_name"`
	Country          string                                           `json:"country"`
	EmvAuthData      string                                           `json:"emv_auth_data"`
	ExpMonth         int64                                            `json:"exp_month"`
	ExpYear          int64                                            `json:"exp_year"`
	Fingerprint      string                                           `json:"fingerprint"`
	Funding          string                                           `json:"funding"`
	GeneratedCard    string                                           `json:"generated_card"`
	Last4            string                                           `json:"last4"`
	Network          string                                           `json:"network"`
	PreferredLocales []string                                         `json:"preferred_locales"`
	ReadMethod       string                                           `json:"read_method"`
	Receipt          *ChargePaymentMethodDetailsInteracPresentReceipt `json:"receipt"`

	// Please note that the fields below are for internal use only and are not returned
	// as part of standard API requests.
	Description string `json:"description"`
	IIN         string `json:"iin"`
	Issuer      string `json:"issuer"`
}

ChargePaymentMethodDetailsInteracPresent represents details about the InteracPresent PaymentMethod.

type ChargePaymentMethodDetailsInteracPresentReceipt

type ChargePaymentMethodDetailsInteracPresentReceipt struct {
	AccountType                  string `json:"account_type"`
	ApplicationCryptogram        string `json:"application_cryptogram"`
	ApplicationPreferredName     string `json:"application_preferred_name"`
	AuthorizationCode            string `json:"authorization_code"`
	AuthorizationResponseCode    string `json:"authorization_response_code"`
	CardholderVerificationMethod string `json:"cardholder_verification_method"`
	DedicatedFileName            string `json:"dedicated_file_name"`
	TerminalVerificationResults  string `json:"terminal_verification_results"`
	TransactionStatusInformation string `json:"transaction_status_information"`
}

ChargePaymentMethodDetailsInteracPresentReceipt represents details about the InteracPresent Receipt.

type ChargePaymentMethodDetailsKlarna

type ChargePaymentMethodDetailsKlarna struct {
	PaymentMethodCategory ChargePaymentMethodDetailsKlarnaPaymentMethodCategory `json:"payment_method_category"`
	PreferredLocale       string                                                `json:"preferred_locale"`
}

ChargePaymentMethodDetailsKlarna represents details for the Klarna PaymentMethod.

type ChargePaymentMethodDetailsKlarnaPaymentMethodCategory added in v72.70.0

type ChargePaymentMethodDetailsKlarnaPaymentMethodCategory string

The Klarna payment method used for this transaction. Can be one of `pay_later`, `pay_now`, `pay_with_financing`, or `pay_in_installments`

const (
	ChargePaymentMethodDetailsKlarnaPaymentMethodCategoryPayLater          ChargePaymentMethodDetailsKlarnaPaymentMethodCategory = "pay_later"
	ChargePaymentMethodDetailsKlarnaPaymentMethodCategoryPayNow            ChargePaymentMethodDetailsKlarnaPaymentMethodCategory = "pay_now"
	ChargePaymentMethodDetailsKlarnaPaymentMethodCategoryPayWithFinancing  ChargePaymentMethodDetailsKlarnaPaymentMethodCategory = "pay_with_financing"
	ChargePaymentMethodDetailsKlarnaPaymentMethodCategoryPayInInstallments ChargePaymentMethodDetailsKlarnaPaymentMethodCategory = "pay_in_installments"
)

List of values that ChargePaymentMethodDetailsKlarnaPaymentMethodCategory can take

type ChargePaymentMethodDetailsMultibanco

type ChargePaymentMethodDetailsMultibanco struct {
	Entity    string `json:"entity"`
	Reference string `json:"reference"`
}

ChargePaymentMethodDetailsMultibanco represents details about the Multibanco PaymentMethod.

type ChargePaymentMethodDetailsOXXO added in v72.7.0

type ChargePaymentMethodDetailsOXXO struct {
	Number string `json:"number"`
}

ChargePaymentMethodDetailsOXXO represents details about the OXXO PaymentMethod.

type ChargePaymentMethodDetailsP24

type ChargePaymentMethodDetailsP24 struct {
	Bank         string `json:"bank"`
	Reference    string `json:"reference"`
	VerifiedName string `json:"verified_name"`
}

ChargePaymentMethodDetailsP24 represents details about the P24 PaymentMethod.

type ChargePaymentMethodDetailsSepaCreditTransfer added in v72.61.0

type ChargePaymentMethodDetailsSepaCreditTransfer struct {
	BankName string `json:"bank_name"`
	Bic      string `json:"bic"`
	Iban     string `json:"iban"`
}

type ChargePaymentMethodDetailsSepaDebit

type ChargePaymentMethodDetailsSepaDebit struct {
	BankCode    string   `json:"bank_code"`
	BranchCode  string   `json:"branch_code"`
	Country     string   `json:"country"`
	Fingerprint string   `json:"fingerprint"`
	Last4       string   `json:"last4"`
	Mandate     *Mandate `json:"mandate"`
}

ChargePaymentMethodDetailsSepaDebit represents details about the Sepa Debit PaymentMethod.

type ChargePaymentMethodDetailsSofort

type ChargePaymentMethodDetailsSofort struct {
	BankCode                  string         `json:"bank_code"`
	BankName                  string         `json:"bank_name"`
	Bic                       string         `json:"bic"`
	Country                   string         `json:"country"`
	GeneratedSepaDebit        *PaymentMethod `json:"generated_sepa_debit"`
	GeneratedSepaDebitMandate *Mandate       `json:"generated_sepa_debit_mandate"`
	IbanLast4                 string         `json:"iban_last4"`
	PreferredLanguage         string         `json:"preferred_language"`
	VerifiedName              string         `json:"verified_name"`
}

ChargePaymentMethodDetailsSofort represents details about the Sofort PaymentMethod.

type ChargePaymentMethodDetailsStripeAccount

type ChargePaymentMethodDetailsStripeAccount struct{}

ChargePaymentMethodDetailsStripeAccount represents details about the StripeAccount PaymentMethod.

type ChargePaymentMethodDetailsType

type ChargePaymentMethodDetailsType string

ChargePaymentMethodDetailsType is the type of the PaymentMethod associated with the Charge's payment method details.

const (
	ChargePaymentMethodDetailsTypeAchCreditTransfer ChargePaymentMethodDetailsType = "ach_credit_transfer"
	ChargePaymentMethodDetailsTypeAchDebit          ChargePaymentMethodDetailsType = "ach_debit"
	ChargePaymentMethodDetailsTypeAcssDebit         ChargePaymentMethodDetailsType = "acss_debit"
	ChargePaymentMethodDetailsTypeAlipay            ChargePaymentMethodDetailsType = "alipay"
	ChargePaymentMethodDetailsTypeAUBECSDebit       ChargePaymentMethodDetailsType = "au_becs_debit"
	ChargePaymentMethodDetailsTypeBACSDebit         ChargePaymentMethodDetailsType = "bacs_debit"
	ChargePaymentMethodDetailsTypeBancontact        ChargePaymentMethodDetailsType = "bancontact"
	ChargePaymentMethodDetailsTypeCard              ChargePaymentMethodDetailsType = "card"
	ChargePaymentMethodDetailsTypeCardPresent       ChargePaymentMethodDetailsType = "card_present"
	ChargePaymentMethodDetailsTypeEps               ChargePaymentMethodDetailsType = "eps"
	ChargePaymentMethodDetailsTypeFPX               ChargePaymentMethodDetailsType = "fpx"
	ChargePaymentMethodDetailsTypeGiropay           ChargePaymentMethodDetailsType = "giropay"
	ChargePaymentMethodDetailsTypeGrabpay           ChargePaymentMethodDetailsType = "grabpay"
	ChargePaymentMethodDetailsTypeIdeal             ChargePaymentMethodDetailsType = "ideal"
	ChargePaymentMethodDetailsTypeInteracPresent    ChargePaymentMethodDetailsType = "interac_present"
	ChargePaymentMethodDetailsTypeKlarna            ChargePaymentMethodDetailsType = "klarna"
	ChargePaymentMethodDetailsTypeMultibanco        ChargePaymentMethodDetailsType = "multibanco"
	ChargePaymentMethodDetailsTypeP24               ChargePaymentMethodDetailsType = "p24"
	ChargePaymentMethodDetailsTypeSepaDebit         ChargePaymentMethodDetailsType = "sepa_debit"
	ChargePaymentMethodDetailsTypeSofort            ChargePaymentMethodDetailsType = "sofort"
	ChargePaymentMethodDetailsTypeStripeAccount     ChargePaymentMethodDetailsType = "stripe_account"
	ChargePaymentMethodDetailsTypeWechat            ChargePaymentMethodDetailsType = "wechat"
)

List of values that ChargePaymentMethodDetailsType can take.

type ChargePaymentMethodDetailsWechat

type ChargePaymentMethodDetailsWechat struct{}

ChargePaymentMethodDetailsWechat represents details about the Wechat PaymentMethod.

type ChargePaymentMethodDetailsWechatPay added in v72.54.0

type ChargePaymentMethodDetailsWechatPay struct {
	Fingerprint   string `json:"fingerprint"`
	TransactionID string `json:"transaction_id"`
}

ChargePaymentMethodDetailsWechatPay represents details about the WechatPay PaymentMethod.

type ChargeTransferData

type ChargeTransferData struct {
	Amount      int64    `json:"amount"`
	Destination *Account `json:"destination"`
}

ChargeTransferData represents the information for the transfer_data associated with a charge.

type ChargeTransferDataParams

type ChargeTransferDataParams struct {
	Amount *int64 `form:"amount"`
	// This parameter can only be used on Charge creation.
	Destination *string `form:"destination"`
}

ChargeTransferDataParams is the set of parameters allowed for the transfer_data hash.

type CheckoutSession

type CheckoutSession struct {
	APIResource
	AfterExpiration           *CheckoutSessionAfterExpiration           `json:"after_expiration"`
	AllowPromotionCodes       bool                                      `json:"allow_promotion_codes"`
	AmountSubtotal            int64                                     `json:"amount_subtotal"`
	AmountTotal               int64                                     `json:"amount_total"`
	AutomaticTax              *CheckoutSessionAutomaticTax              `json:"automatic_tax"`
	BillingAddressCollection  CheckoutSessionBillingAddressCollection   `json:"billing_address_collection"`
	CancelURL                 string                                    `json:"cancel_url"`
	ClientReferenceID         string                                    `json:"client_reference_id"`
	Consent                   *CheckoutSessionConsent                   `json:"consent"`
	ConsentCollection         *CheckoutSessionConsentCollection         `json:"consent_collection"`
	Currency                  Currency                                  `json:"currency"`
	Customer                  *Customer                                 `json:"customer"`
	CustomerCreation          CheckoutSessionCustomerCreation           `json:"customer_creation"`
	CustomerDetails           *CheckoutSessionCustomerDetails           `json:"customer_details"`
	CustomerEmail             string                                    `json:"customer_email"`
	Deleted                   bool                                      `json:"deleted"`
	ExpiresAt                 int64                                     `json:"expires_at"`
	ID                        string                                    `json:"id"`
	LineItems                 *LineItemList                             `json:"line_items"`
	Livemode                  bool                                      `json:"livemode"`
	Locale                    string                                    `json:"locale"`
	Metadata                  map[string]string                         `json:"metadata"`
	Mode                      CheckoutSessionMode                       `json:"mode"`
	Object                    string                                    `json:"object"`
	PaymentIntent             *PaymentIntent                            `json:"payment_intent"`
	PaymentMethodOptions      *CheckoutSessionPaymentMethodOptions      `json:"payment_method_options"`
	PaymentMethodTypes        []string                                  `json:"payment_method_types"`
	PaymentStatus             CheckoutSessionPaymentStatus              `json:"payment_status"`
	PhoneNumberCollection     *CheckoutSessionPhoneNumberCollection     `json:"phone_number_collection"`
	RecoveredFrom             string                                    `json:"recovered_from"`
	SetupIntent               *SetupIntent                              `json:"setup_intent"`
	Shipping                  *ShippingDetails                          `json:"shipping"`
	ShippingAddressCollection *CheckoutSessionShippingAddressCollection `json:"shipping_address_collection"`
	ShippingOptions           []*CheckoutSessionShippingOption          `json:"shipping_options"`
	ShippingRate              *ShippingRate                             `json:"shipping_rate"`
	Status                    CheckoutSessionStatus                     `json:"status"`
	SubmitType                CheckoutSessionSubmitType                 `json:"submit_type"`
	Subscription              *Subscription                             `json:"subscription"`
	SuccessURL                string                                    `json:"success_url"`
	TaxIDCollection           *CheckoutSessionTaxIDCollection           `json:"tax_id_collection"`
	TotalDetails              *CheckoutSessionTotalDetails              `json:"total_details"`
	URL                       string                                    `json:"url"`
}

CheckoutSession is the resource representing a Stripe checkout session. For more details see https://stripe.com/docs/api/checkout/sessions/object

func (*CheckoutSession) UnmarshalJSON

func (c *CheckoutSession) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a CheckoutSession. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type CheckoutSessionAfterExpiration added in v72.63.0

type CheckoutSessionAfterExpiration struct {
	Recovery *CheckoutSessionAfterExpirationRecovery `json:"recovery"`
}

When set, provides configuration for actions to take if this Checkout Session expires.

type CheckoutSessionAfterExpirationParams added in v72.63.0

type CheckoutSessionAfterExpirationParams struct {
	Recovery *CheckoutSessionAfterExpirationRecoveryParams `form:"recovery"`
}

Configure actions after a Checkout Session has expired.

type CheckoutSessionAfterExpirationRecovery added in v72.63.0

type CheckoutSessionAfterExpirationRecovery struct {
	AllowPromotionCodes bool   `json:"allow_promotion_codes"`
	Enabled             bool   `json:"enabled"`
	ExpiresAt           int64  `json:"expires_at"`
	URL                 string `json:"url"`
}

When set, configuration used to recover the Checkout Session on expiry.

type CheckoutSessionAfterExpirationRecoveryParams added in v72.63.0

type CheckoutSessionAfterExpirationRecoveryParams struct {
	AllowPromotionCodes *bool `form:"allow_promotion_codes"`
	Enabled             *bool `form:"enabled"`
}

Configure a Checkout Session that can be used to recover an expired session.

type CheckoutSessionAutomaticTax added in v72.48.0

type CheckoutSessionAutomaticTax struct {
	Enabled bool                              `json:"enabled"`
	Status  CheckoutSessionAutomaticTaxStatus `json:"status"`
}

type CheckoutSessionAutomaticTaxParams added in v72.48.0

type CheckoutSessionAutomaticTaxParams struct {
	Enabled *bool `form:"enabled"`
}

Settings for automatic tax lookup for this session and resulting payments, invoices, and subscriptions.

type CheckoutSessionAutomaticTaxStatus added in v72.48.0

type CheckoutSessionAutomaticTaxStatus string
const (
	CheckoutSessionAutomaticTaxStatusComplete               CheckoutSessionAutomaticTaxStatus = "complete"
	CheckoutSessionAutomaticTaxStatusFailed                 CheckoutSessionAutomaticTaxStatus = "failed"
	CheckoutSessionAutomaticTaxStatusRequiresLocationInputs CheckoutSessionAutomaticTaxStatus = "requires_location_inputs"
)

List of values that CheckoutSessionAutomaticTaxStatus can take

type CheckoutSessionBillingAddressCollection added in v72.57.0

type CheckoutSessionBillingAddressCollection string

Describes whether Checkout should collect the customer's billing address.

const (
	CheckoutSessionBillingAddressCollectionAuto     CheckoutSessionBillingAddressCollection = "auto"
	CheckoutSessionBillingAddressCollectionRequired CheckoutSessionBillingAddressCollection = "required"
)

List of values that CheckoutSessionBillingAddressCollection can take

type CheckoutSessionConsent added in v72.63.0

type CheckoutSessionConsent struct {
	Promotions CheckoutSessionConsentPromotions `json:"promotions"`
}

Results of `consent_collection` for this session.

type CheckoutSessionConsentCollection added in v72.63.0

type CheckoutSessionConsentCollection struct {
	Promotions CheckoutSessionConsentCollectionPromotions `json:"promotions"`
}

When set, provides configuration for the Checkout Session to gather active consent from customers.

type CheckoutSessionConsentCollectionParams added in v72.63.0

type CheckoutSessionConsentCollectionParams struct {
	Promotions *string `form:"promotions"`
}

Configure fields for the Checkout Session to gather active consent from customers.

type CheckoutSessionConsentCollectionPromotions added in v72.63.0

type CheckoutSessionConsentCollectionPromotions string

If set to `auto`, enables the collection of customer consent for promotional communications. The Checkout Session will determine whether to display an option to opt into promotional communication from the merchant depending on the customer's locale. Only available to US merchants.

const (
	CheckoutSessionConsentCollectionPromotionsAuto CheckoutSessionConsentCollectionPromotions = "auto"
)

List of values that CheckoutSessionConsentCollectionPromotions can take

type CheckoutSessionConsentPromotions added in v72.63.0

type CheckoutSessionConsentPromotions string

If `opt_in`, the customer consents to receiving promotional communications from the merchant about this Checkout Session.

const (
	CheckoutSessionConsentPromotionsOptIn  CheckoutSessionConsentPromotions = "opt_in"
	CheckoutSessionConsentPromotionsOptOut CheckoutSessionConsentPromotions = "opt_out"
)

List of values that CheckoutSessionConsentPromotions can take

type CheckoutSessionCustomerCreation added in v72.82.0

type CheckoutSessionCustomerCreation string

Configure whether a Checkout Session creates a Customer when the Checkout Session completes.

const (
	CheckoutSessionCustomerCreationAlways     CheckoutSessionCustomerCreation = "always"
	CheckoutSessionCustomerCreationIfRequired CheckoutSessionCustomerCreation = "if_required"
)

List of values that CheckoutSessionCustomerCreation can take

type CheckoutSessionCustomerDetails added in v72.30.0

type CheckoutSessionCustomerDetails struct {
	Email     string                                  `json:"email"`
	Phone     string                                  `json:"phone"`
	TaxExempt CheckoutSessionCustomerDetailsTaxExempt `json:"tax_exempt"`
	TaxIDs    []*CheckoutSessionCustomerDetailsTaxIDs `json:"tax_ids"`
}

CheckoutSessionCustomerDetails represent the customer details including the tax exempt status and the customer's tax IDs.

type CheckoutSessionCustomerDetailsTaxExempt added in v72.30.0

type CheckoutSessionCustomerDetailsTaxExempt string

CheckoutSessionCustomerDetailsTaxExempt is the list of allowed values for tax_exempt inside customer_details of a checkout session.

const (
	CheckoutSessionCustomerDetailsTaxExemptExempt  CheckoutSessionCustomerDetailsTaxExempt = "exempt"
	CheckoutSessionCustomerDetailsTaxExemptNone    CheckoutSessionCustomerDetailsTaxExempt = "none"
	CheckoutSessionCustomerDetailsTaxExemptReverse CheckoutSessionCustomerDetailsTaxExempt = "reverse"
)

List of values that CheckoutSessionCustomerDetailsTaxExempt can take.

type CheckoutSessionCustomerDetailsTaxIDs added in v72.30.0

type CheckoutSessionCustomerDetailsTaxIDs struct {
	Type  CheckoutSessionCustomerDetailsTaxIDsType `json:"type"`
	Value string                                   `json:"value"`
}

CheckoutSessionCustomerDetailsTaxIDs represent customer's tax IDs at the time of checkout.

type CheckoutSessionCustomerDetailsTaxIDsType added in v72.30.0

type CheckoutSessionCustomerDetailsTaxIDsType string

CheckoutSessionCustomerDetailsTaxIDsType is the list of allowed values for type on the tax_ids inside customer_details of a checkout session.

const (
	CheckoutSessionCustomerDetailsTaxIDsTypeAETRN    CheckoutSessionCustomerDetailsTaxIDsType = "ae_trn"
	CheckoutSessionCustomerDetailsTaxIDsTypeAUABN    CheckoutSessionCustomerDetailsTaxIDsType = "au_abn"
	CheckoutSessionCustomerDetailsTaxIDsTypeAUARN    CheckoutSessionCustomerDetailsTaxIDsType = "au_arn"
	CheckoutSessionCustomerDetailsTaxIDsTypeBRCNPJ   CheckoutSessionCustomerDetailsTaxIDsType = "br_cnpj"
	CheckoutSessionCustomerDetailsTaxIDsTypeBRCPF    CheckoutSessionCustomerDetailsTaxIDsType = "br_cpf"
	CheckoutSessionCustomerDetailsTaxIDsTypeCABN     CheckoutSessionCustomerDetailsTaxIDsType = "ca_bn"
	CheckoutSessionCustomerDetailsTaxIDsTypeCAGSTHST CheckoutSessionCustomerDetailsTaxIDsType = "ca_gst_hst"
	CheckoutSessionCustomerDetailsTaxIDsTypeCAPSTBC  CheckoutSessionCustomerDetailsTaxIDsType = "ca_pst_bc"
	CheckoutSessionCustomerDetailsTaxIDsTypeCAPSTMB  CheckoutSessionCustomerDetailsTaxIDsType = "ca_pst_mb"
	CheckoutSessionCustomerDetailsTaxIDsTypeCAPSTSK  CheckoutSessionCustomerDetailsTaxIDsType = "ca_pst_sk"
	CheckoutSessionCustomerDetailsTaxIDsTypeCAQST    CheckoutSessionCustomerDetailsTaxIDsType = "ca_qst"
	CheckoutSessionCustomerDetailsTaxIDsTypeCHVAT    CheckoutSessionCustomerDetailsTaxIDsType = "ch_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeCLTIN    CheckoutSessionCustomerDetailsTaxIDsType = "cl_tin"
	CheckoutSessionCustomerDetailsTaxIDsTypeESCIF    CheckoutSessionCustomerDetailsTaxIDsType = "es_cif"
	CheckoutSessionCustomerDetailsTaxIDsTypeEUVAT    CheckoutSessionCustomerDetailsTaxIDsType = "eu_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeGBVAT    CheckoutSessionCustomerDetailsTaxIDsType = "gb_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeGEVAT    CheckoutSessionCustomerDetailsTaxIDsType = "ge_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeHKBR     CheckoutSessionCustomerDetailsTaxIDsType = "hk_br"
	CheckoutSessionCustomerDetailsTaxIDsTypeIDNPWP   CheckoutSessionCustomerDetailsTaxIDsType = "id_npwp"
	CheckoutSessionCustomerDetailsTaxIDsTypeILVAT    CheckoutSessionCustomerDetailsTaxIDsType = "il_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeINGST    CheckoutSessionCustomerDetailsTaxIDsType = "in_gst"
	CheckoutSessionCustomerDetailsTaxIDsTypeJPCN     CheckoutSessionCustomerDetailsTaxIDsType = "jp_cn"
	CheckoutSessionCustomerDetailsTaxIDsTypeJPRN     CheckoutSessionCustomerDetailsTaxIDsType = "jp_rn"
	CheckoutSessionCustomerDetailsTaxIDsTypeKRBRN    CheckoutSessionCustomerDetailsTaxIDsType = "kr_brn"
	CheckoutSessionCustomerDetailsTaxIDsTypeLIUID    CheckoutSessionCustomerDetailsTaxIDsType = "li_uid"
	CheckoutSessionCustomerDetailsTaxIDsTypeMXRFC    CheckoutSessionCustomerDetailsTaxIDsType = "mx_rfc"
	CheckoutSessionCustomerDetailsTaxIDsTypeMYFRP    CheckoutSessionCustomerDetailsTaxIDsType = "my_frp"
	CheckoutSessionCustomerDetailsTaxIDsTypeMYITN    CheckoutSessionCustomerDetailsTaxIDsType = "my_itn"
	CheckoutSessionCustomerDetailsTaxIDsTypeMYSST    CheckoutSessionCustomerDetailsTaxIDsType = "my_sst"
	CheckoutSessionCustomerDetailsTaxIDsTypeNOVAT    CheckoutSessionCustomerDetailsTaxIDsType = "no_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeNZGST    CheckoutSessionCustomerDetailsTaxIDsType = "nz_gst"
	CheckoutSessionCustomerDetailsTaxIDsTypeRUINN    CheckoutSessionCustomerDetailsTaxIDsType = "ru_inn"
	CheckoutSessionCustomerDetailsTaxIDsTypeRUKPP    CheckoutSessionCustomerDetailsTaxIDsType = "ru_kpp"
	CheckoutSessionCustomerDetailsTaxIDsTypeSAVAT    CheckoutSessionCustomerDetailsTaxIDsType = "sa_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeSGGST    CheckoutSessionCustomerDetailsTaxIDsType = "sg_gst"
	CheckoutSessionCustomerDetailsTaxIDsTypeSGUEN    CheckoutSessionCustomerDetailsTaxIDsType = "sg_uen"
	CheckoutSessionCustomerDetailsTaxIDsTypeTHVAT    CheckoutSessionCustomerDetailsTaxIDsType = "th_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeTWVAT    CheckoutSessionCustomerDetailsTaxIDsType = "tw_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeUAVAT    CheckoutSessionCustomerDetailsTaxIDsType = "ua_vat"
	CheckoutSessionCustomerDetailsTaxIDsTypeUnknown  CheckoutSessionCustomerDetailsTaxIDsType = "unknown"
	CheckoutSessionCustomerDetailsTaxIDsTypeUSEIN    CheckoutSessionCustomerDetailsTaxIDsType = "us_ein"
	CheckoutSessionCustomerDetailsTaxIDsTypeZAVAT    CheckoutSessionCustomerDetailsTaxIDsType = "za_vat"
)

List of values that CheckoutSessionCustomerDetailsTaxIDsType can take.

type CheckoutSessionCustomerUpdateParams added in v72.48.0

type CheckoutSessionCustomerUpdateParams struct {
	Address  *string `form:"address"`
	Name     *string `form:"name"`
	Shipping *string `form:"shipping"`
}

Controls what fields on Customer can be updated by the Checkout Session. Can only be provided when `customer` is provided.

type CheckoutSessionDiscountParams added in v72.16.0

type CheckoutSessionDiscountParams struct {
	Coupon        *string `form:"coupon"`
	PromotionCode *string `form:"promotion_code"`
}

CheckoutSessionDiscountParams is the set of parameters allowed for discounts on a checkout session.

type CheckoutSessionExpireParams added in v72.74.0

type CheckoutSessionExpireParams struct {
	Params `form:"*"`
}

A Session can be expired when it is in one of these statuses: open

After it expires, a customer can't complete a Session and customers loading the Session see a message saying the Session is expired.

type CheckoutSessionLineItemAdjustableQuantityParams added in v72.34.0

type CheckoutSessionLineItemAdjustableQuantityParams struct {
	Enabled *bool  `form:"enabled"`
	Maximum *int64 `form:"maximum"`
	Minimum *int64 `form:"minimum"`
}

CheckoutSessionLineItemAdjustableQuantityParams represents the parameters for an adjustable quantity on a checkout session's line items.

type CheckoutSessionLineItemParams

type CheckoutSessionLineItemParams struct {
	AdjustableQuantity *CheckoutSessionLineItemAdjustableQuantityParams `form:"adjustable_quantity"`
	Amount             *int64                                           `form:"amount"`
	Currency           *string                                          `form:"currency"`
	Description        *string                                          `form:"description"`
	DynamicTaxRates    []*string                                        `form:"dynamic_tax_rates"`
	Images             []*string                                        `form:"images"`
	Name               *string                                          `form:"name"`
	Price              *string                                          `form:"price"`
	PriceData          *CheckoutSessionLineItemPriceDataParams          `form:"price_data"`
	Quantity           *int64                                           `form:"quantity"`
	TaxRates           []*string                                        `form:"tax_rates"`
}

CheckoutSessionLineItemParams is the set of parameters allowed for a line item on a checkout session.

type CheckoutSessionLineItemPriceDataParams

type CheckoutSessionLineItemPriceDataParams struct {
	Currency          *string                                            `form:"currency"`
	Product           *string                                            `form:"product"`
	ProductData       *CheckoutSessionLineItemPriceDataProductDataParams `form:"product_data"`
	Recurring         *CheckoutSessionLineItemPriceDataRecurringParams   `form:"recurring"`
	TaxBehavior       *string                                            `form:"tax_behavior"`
	UnitAmount        *int64                                             `form:"unit_amount"`
	UnitAmountDecimal *float64                                           `form:"unit_amount_decimal,high_precision"`
}

CheckoutSessionLineItemPriceDataParams is a structure representing the parameters to create an inline price for a line item.

type CheckoutSessionLineItemPriceDataProductDataParams

type CheckoutSessionLineItemPriceDataProductDataParams struct {
	Description *string           `form:"description"`
	Images      []*string         `form:"images"`
	Metadata    map[string]string `form:"metadata"`
	Name        *string           `form:"name"`
	TaxCode     *string           `form:"tax_code"`
}

CheckoutSessionLineItemPriceDataProductDataParams is the set of parameters that can be used when creating a product created inline for a line item.

type CheckoutSessionLineItemPriceDataRecurringParams

type CheckoutSessionLineItemPriceDataRecurringParams struct {
	AggregateUsage  *string `form:"aggregate_usage"`
	Interval        *string `form:"interval"`
	IntervalCount   *int64  `form:"interval_count"`
	TrialPeriodDays *int64  `form:"trial_period_days"`
	UsageType       *string `form:"usage_type"`
}

CheckoutSessionLineItemPriceDataRecurringParams is the set of parameters for the recurring components of a price created inline for a line item.

type CheckoutSessionList

type CheckoutSessionList struct {
	APIResource
	ListMeta
	Data []*CheckoutSession `json:"data"`
}

CheckoutSessionList is a list of sessions as retrieved from a list endpoint.

type CheckoutSessionListLineItemsParams

type CheckoutSessionListLineItemsParams struct {
	ListParams `form:"*"`
	Session    *string `form:"-"` // Included in URL
}

CheckoutSessionListLineItemsParams is the set of parameters that can be used when listing line items on a session.

type CheckoutSessionListParams

type CheckoutSessionListParams struct {
	ListParams    `form:"*"`
	PaymentIntent *string `form:"payment_intent"`
	Subscription  *string `form:"subscription"`
}

CheckoutSessionListParams is the set of parameters that can be used when listing sessions. For more details see: https://stripe.com/docs/api/checkout/sessions/list

type CheckoutSessionMode

type CheckoutSessionMode string

CheckoutSessionMode is the list of allowed values for the mode on a Session.

const (
	CheckoutSessionModePayment      CheckoutSessionMode = "payment"
	CheckoutSessionModeSetup        CheckoutSessionMode = "setup"
	CheckoutSessionModeSubscription CheckoutSessionMode = "subscription"
)

List of values that CheckoutSessionMode can take.

type CheckoutSessionParams

type CheckoutSessionParams struct {
	Params                    `form:"*"`
	AfterExpiration           *CheckoutSessionAfterExpirationParams           `form:"after_expiration"`
	AllowPromotionCodes       *bool                                           `form:"allow_promotion_codes"`
	AutomaticTax              *CheckoutSessionAutomaticTaxParams              `form:"automatic_tax"`
	BillingAddressCollection  *string                                         `form:"billing_address_collection"`
	CancelURL                 *string                                         `form:"cancel_url"`
	ClientReferenceID         *string                                         `form:"client_reference_id"`
	ConsentCollection         *CheckoutSessionConsentCollectionParams         `form:"consent_collection"`
	Customer                  *string                                         `form:"customer"`
	CustomerCreation          *string                                         `form:"customer_creation"`
	CustomerEmail             *string                                         `form:"customer_email"`
	CustomerUpdate            *CheckoutSessionCustomerUpdateParams            `form:"customer_update"`
	Discounts                 []*CheckoutSessionDiscountParams                `form:"discounts"`
	ExpiresAt                 *int64                                          `form:"expires_at"`
	LineItems                 []*CheckoutSessionLineItemParams                `form:"line_items"`
	Locale                    *string                                         `form:"locale"`
	Mode                      *string                                         `form:"mode"`
	PaymentIntentData         *CheckoutSessionPaymentIntentDataParams         `form:"payment_intent_data"`
	PaymentMethodOptions      *CheckoutSessionPaymentMethodOptionsParams      `form:"payment_method_options"`
	PaymentMethodTypes        []*string                                       `form:"payment_method_types"`
	PhoneNumberCollection     *CheckoutSessionPhoneNumberCollectionParams     `form:"phone_number_collection"`
	SetupIntentData           *CheckoutSessionSetupIntentDataParams           `form:"setup_intent_data"`
	ShippingAddressCollection *CheckoutSessionShippingAddressCollectionParams `form:"shipping_address_collection"`
	ShippingOptions           []*CheckoutSessionShippingOptionParams          `form:"shipping_options"`
	ShippingRates             []*string                                       `form:"shipping_rates"`
	SubmitType                *string                                         `form:"submit_type"`
	SubscriptionData          *CheckoutSessionSubscriptionDataParams          `form:"subscription_data"`
	SuccessURL                *string                                         `form:"success_url"`
	TaxIDCollection           *CheckoutSessionTaxIDCollectionParams           `form:"tax_id_collection"`
}

CheckoutSessionParams is the set of parameters that can be used when creating a checkout session. For more details see https://stripe.com/docs/api/checkout/sessions/create

type CheckoutSessionPaymentIntentDataParams

type CheckoutSessionPaymentIntentDataParams struct {
	Params                    `form:"*"`
	ApplicationFeeAmount      *int64                                              `form:"application_fee_amount"`
	CaptureMethod             *string                                             `form:"capture_method"`
	Description               *string                                             `form:"description"`
	Metadata                  map[string]string                                   `form:"metadata"`
	OnBehalfOf                *string                                             `form:"on_behalf_of"`
	ReceiptEmail              *string                                             `form:"receipt_email"`
	SetupFutureUsage          *string                                             `form:"setup_future_usage"`
	Shipping                  *ShippingDetailsParams                              `form:"shipping"`
	StatementDescriptor       *string                                             `form:"statement_descriptor"`
	StatementDescriptorSuffix *string                                             `form:"statement_descriptor_suffix"`
	TransferData              *CheckoutSessionPaymentIntentDataTransferDataParams `form:"transfer_data"`
	TransferGroup             *string                                             `form:"transfer_group"`
}

CheckoutSessionPaymentIntentDataParams is the set of parameters allowed for the payment intent creation on a checkout session.

type CheckoutSessionPaymentIntentDataTransferDataParams

type CheckoutSessionPaymentIntentDataTransferDataParams struct {
	Amount      *int64  `form:"amount"`
	Destination *string `form:"destination"`
}

CheckoutSessionPaymentIntentDataTransferDataParams is the set of parameters allowed for the transfer_data hash.

type CheckoutSessionPaymentMethodOptions added in v72.42.0

type CheckoutSessionPaymentMethodOptions struct {
	ACSSDebit *CheckoutSessionPaymentMethodOptionsACSSDebit `json:"acss_debit"`
	Boleto    *CheckoutSessionPaymentMethodOptionsBoleto    `json:"boleto"`
	OXXO      *CheckoutSessionPaymentMethodOptionsOXXO      `json:"oxxo"`
}

CheckoutSessionPaymentMethodOptions represent payment-method-specific options for a checkout session.

type CheckoutSessionPaymentMethodOptionsACSSDebit added in v72.42.0

type CheckoutSessionPaymentMethodOptionsACSSDebit struct {
	Currency           string                                                         `json:"currency"`
	MandateOptions     *CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptions    `json:"mandate_options"`
	VerificationMethod CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod `json:"verification_method"`
}

CheckoutSessionPaymentMethodOptionsACSSDebit represent the options for acss debit on payment_method_options.

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptions added in v72.42.0

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptions struct {
	CustomMandateURL    string                                                                    `json:"custom_mandate_url"`
	DefaultFor          []CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor    `json:"default_for"`
	IntervalDescription string                                                                    `json:"interval_description"`
	PaymentSchedule     CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule `json:"payment_schedule"`
	TransactionType     CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionType `json:"transaction_type"`
}

CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptions represent mandate options for acss debit.

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor added in v72.65.0

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor string

List of Stripe products where this mandate can be selected automatically. Returned when the Session is in `setup` mode.

const (
	CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultForInvoice      CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor = "invoice"
	CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultForSubscription CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor = "subscription"
)

List of values that CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor can take

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsParams added in v72.42.0

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsParams struct {
	CustomMandateURL    *string   `form:"custom_mandate_url"`
	DefaultFor          []*string `form:"default_for"`
	IntervalDescription *string   `form:"interval_description"`
	PaymentSchedule     *string   `form:"payment_schedule"`
	TransactionType     *string   `form:"transaction_type"`
}

CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsParams is the set of parameters allowed for mandate_options for acss debit.

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule added in v72.42.0

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule string

CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule is the list of allowed values for payment_schedule

const (
	CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleCombined CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "combined"
	CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleInterval CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "interval"
	CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleSporadic CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "sporadic"
)

List of values that CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule can take

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionType added in v72.42.0

type CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionType string

CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionType is the list of allowed values for transaction_type

const (
	CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypeBusiness CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "business"
	CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypePersonal CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "personal"
)

List of values that CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsTransactionType can take

type CheckoutSessionPaymentMethodOptionsACSSDebitParams added in v72.42.0

type CheckoutSessionPaymentMethodOptionsACSSDebitParams struct {
	Currency           *string                                                           `form:"currency"`
	MandateOptions     *CheckoutSessionPaymentMethodOptionsACSSDebitMandateOptionsParams `form:"mandate_options"`
	VerificationMethod *string                                                           `form:"verification_method"`
}

CheckoutSessionPaymentMethodOptionsACSSDebitParams is the set of parameters allowed for acss_debit on payment_method_options.

type CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod added in v72.42.0

type CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod string

CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod is the list of allowed values for verification_method

const (
	CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethodAutomatic     CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod = "automatic"
	CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethodInstant       CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod = "instant"
	CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethodMicrodeposits CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod = "microdeposits"
)

List of values that CheckoutSessionPaymentMethodOptionsACSSDebitVerificationMethod can take

type CheckoutSessionPaymentMethodOptionsBoleto added in v72.53.0

type CheckoutSessionPaymentMethodOptionsBoleto struct {
	ExpiresAfterDays int64 `json:"expires_after_days"`
}

CheckoutSessionPaymentMethodOptionsBoleto represent the options for boleto on payment_method_options.

type CheckoutSessionPaymentMethodOptionsBoletoParams added in v72.53.0

type CheckoutSessionPaymentMethodOptionsBoletoParams struct {
	ExpiresAfterDays *int64 `form:"expires_after_days"`
}

CheckoutSessionPaymentMethodOptionsBoletoParams is the set of parameters allowed for boleto on payment_method_options.

type CheckoutSessionPaymentMethodOptionsOXXO added in v72.53.0

type CheckoutSessionPaymentMethodOptionsOXXO struct {
	ExpiresAfterDays int64 `json:"expires_after_days"`
}

CheckoutSessionPaymentMethodOptionsOXXO represent the options for oxxo on payment_method_options.

type CheckoutSessionPaymentMethodOptionsOXXOParams added in v72.53.0

type CheckoutSessionPaymentMethodOptionsOXXOParams struct {
	ExpiresAfterDays *int64 `form:"expires_after_days"`
}

CheckoutSessionPaymentMethodOptionsOXXOParams is the set of parameters allowed for oxxo on payment_method_options.

type CheckoutSessionPaymentMethodOptionsParams added in v72.42.0

type CheckoutSessionPaymentMethodOptionsParams struct {
	ACSSDebit *CheckoutSessionPaymentMethodOptionsACSSDebitParams `form:"acss_debit"`
	Boleto    *CheckoutSessionPaymentMethodOptionsBoletoParams    `form:"boleto"`
	OXXO      *CheckoutSessionPaymentMethodOptionsOXXOParams      `form:"oxxo"`
	WechatPay *CheckoutSessionPaymentMethodOptionsWechatPayParams `form:"wechat_pay"`
}

CheckoutSessionPaymentMethodOptionsParams is the set of allowed parameters for payment_method_options on a checkout session.

type CheckoutSessionPaymentMethodOptionsWechatPayParams added in v72.54.0

type CheckoutSessionPaymentMethodOptionsWechatPayParams struct {
	AppID  *string `form:"app_id"`
	Client *string `form:"client"`
}

CheckoutSessionPaymentMethodOptionsWechatPayParams is the set of parameters allowed for wechat_pay on payment_method_options.

type CheckoutSessionPaymentStatus added in v72.1.0

type CheckoutSessionPaymentStatus string

CheckoutSessionPaymentStatus is the list of allowed values for the payment status on a Session.`

const (
	CheckoutSessionPaymentStatusNoPaymentRequired CheckoutSessionPaymentStatus = "no_payment_required"
	CheckoutSessionPaymentStatusPaid              CheckoutSessionPaymentStatus = "paid"
	CheckoutSessionPaymentStatusUnpaid            CheckoutSessionPaymentStatus = "unpaid"
)

List of values that CheckoutSessionPaymentStatus can take.

type CheckoutSessionPhoneNumberCollection added in v72.68.0

type CheckoutSessionPhoneNumberCollection struct {
	Enabled bool `json:"enabled"`
}

type CheckoutSessionPhoneNumberCollectionParams added in v72.68.0

type CheckoutSessionPhoneNumberCollectionParams struct {
	Enabled *bool `form:"enabled"`
}

Controls phone number collection settings for the session.

We recommend that you review your privacy policy and check with your legal contacts before using this feature. Learn more about [collecting phone numbers with Checkout](https://stripe.com/docs/payments/checkout/phone-numbers).

type CheckoutSessionSetupIntentDataParams

type CheckoutSessionSetupIntentDataParams struct {
	Params      `form:"*"`
	Description *string `form:"description"`
	OnBehalfOf  *string `form:"on_behalf_of"`
}

CheckoutSessionSetupIntentDataParams is the set of parameters allowed for the setup intent creation on a checkout session.

type CheckoutSessionShippingAddressCollection

type CheckoutSessionShippingAddressCollection struct {
	AllowedCountries []string `json:"allowed_countries"`
}

CheckoutSessionShippingAddressCollection is the set of parameters allowed for the shipping address collection.

type CheckoutSessionShippingAddressCollectionParams

type CheckoutSessionShippingAddressCollectionParams struct {
	AllowedCountries []*string `form:"allowed_countries"`
}

CheckoutSessionShippingAddressCollectionParams is the set of parameters allowed for the shipping address collection.

type CheckoutSessionShippingOption added in v72.75.0

type CheckoutSessionShippingOption struct {
	ShippingAmount int64         `json:"shipping_amount"`
	ShippingRate   *ShippingRate `json:"shipping_rate"`
}

The shipping rate options applied to this Session.

type CheckoutSessionShippingOptionParams added in v72.75.0

type CheckoutSessionShippingOptionParams struct {
	ShippingRate     *string                                              `form:"shipping_rate"`
	ShippingRateData *CheckoutSessionShippingOptionShippingRateDataParams `form:"shipping_rate_data"`
}

The shipping rate options to apply to this Session.

type CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateMaximumParams added in v72.75.0

type CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateMaximumParams struct {
	Unit  *string `form:"unit"`
	Value *int64  `form:"value"`
}

The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite.

type CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateMinimumParams added in v72.75.0

type CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateMinimumParams struct {
	Unit  *string `form:"unit"`
	Value *int64  `form:"value"`
}

The lower bound of the estimated range. If empty, represents no lower bound.

type CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateParams added in v72.75.0

type CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateParams struct {
	Maximum *CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateMaximumParams `form:"maximum"`
	Minimum *CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateMinimumParams `form:"minimum"`
}

The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions.

type CheckoutSessionShippingOptionShippingRateDataFixedAmountParams added in v72.75.0

type CheckoutSessionShippingOptionShippingRateDataFixedAmountParams struct {
	Amount   *int64  `form:"amount"`
	Currency *string `form:"currency"`
}

Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`.

type CheckoutSessionShippingOptionShippingRateDataParams added in v72.75.0

type CheckoutSessionShippingOptionShippingRateDataParams struct {
	DeliveryEstimate *CheckoutSessionShippingOptionShippingRateDataDeliveryEstimateParams `form:"delivery_estimate"`
	DisplayName      *string                                                              `form:"display_name"`
	FixedAmount      *CheckoutSessionShippingOptionShippingRateDataFixedAmountParams      `form:"fixed_amount"`
	Metadata         map[string]string                                                    `form:"metadata"`
	TaxBehavior      *string                                                              `form:"tax_behavior"`
	TaxCode          *string                                                              `form:"tax_code"`
	Type             *string                                                              `form:"type"`
}

Parameters to be passed to Shipping Rate creation for this shipping option

type CheckoutSessionStatus added in v72.74.0

type CheckoutSessionStatus string

The status of the Checkout Session, one of `open`, `complete`, or `expired`.

const (
	CheckoutSessionStatusComplete CheckoutSessionStatus = "complete"
	CheckoutSessionStatusExpired  CheckoutSessionStatus = "expired"
	CheckoutSessionStatusOpen     CheckoutSessionStatus = "open"
)

List of values that CheckoutSessionStatus can take

type CheckoutSessionSubmitType

type CheckoutSessionSubmitType string

CheckoutSessionSubmitType is the list of allowed values for the submit type on a Session.

const (
	CheckoutSessionSubmitTypeAuto   CheckoutSessionSubmitType = "auto"
	CheckoutSessionSubmitTypeBook   CheckoutSessionSubmitType = "book"
	CheckoutSessionSubmitTypeDonate CheckoutSessionSubmitType = "donate"
	CheckoutSessionSubmitTypePay    CheckoutSessionSubmitType = "pay"
)

List of values that CheckoutSessionSubmitType can take.

type CheckoutSessionSubscriptionDataItemsParams

type CheckoutSessionSubscriptionDataItemsParams struct {
	Plan     *string   `form:"plan"`
	Quantity *int64    `form:"quantity"`
	TaxRates []*string `form:"tax_rates"`
}

CheckoutSessionSubscriptionDataItemsParams is the set of parameters allowed for one item on a checkout session associated with a subscription.

type CheckoutSessionSubscriptionDataParams

type CheckoutSessionSubscriptionDataParams struct {
	Params                `form:"*"`
	ApplicationFeePercent *float64                                           `form:"application_fee_percent"`
	Coupon                *string                                            `form:"coupon"`
	DefaultTaxRates       []*string                                          `form:"default_tax_rates"`
	Items                 []*CheckoutSessionSubscriptionDataItemsParams      `form:"items"`
	Metadata              map[string]string                                  `form:"metadata"`
	TransferData          *CheckoutSessionSubscriptionDataTransferDataParams `form:"transfer_data"`
	TrialEnd              *int64                                             `form:"trial_end"`
	TrialFromPlan         *bool                                              `form:"trial_from_plan"`
	TrialPeriodDays       *int64                                             `form:"trial_period_days"`
}

CheckoutSessionSubscriptionDataParams is the set of parameters allowed for the subscription creation on a checkout session.

type CheckoutSessionSubscriptionDataTransferDataParams added in v72.41.0

type CheckoutSessionSubscriptionDataTransferDataParams struct {
	AmountPercent *float64 `form:"amount_percent"`
	Destination   *string  `form:"destination"`
}

CheckoutSessionSubscriptionDataTransferDataParams is the set of parameters allowed for the transfer_data hash.

type CheckoutSessionTaxIDCollection added in v72.50.0

type CheckoutSessionTaxIDCollection struct {
	Enabled bool `json:"enabled"`
}

type CheckoutSessionTaxIDCollectionParams added in v72.50.0

type CheckoutSessionTaxIDCollectionParams struct {
	Enabled *bool `form:"enabled"`
}

Controls tax ID collection settings for the session.

type CheckoutSessionTotalDetails

type CheckoutSessionTotalDetails struct {
	AmountDiscount int64                                 `json:"amount_discount"`
	AmountShipping int64                                 `json:"amount_shipping"`
	AmountTax      int64                                 `json:"amount_tax"`
	Breakdown      *CheckoutSessionTotalDetailsBreakdown `json:"breakdown"`
}

CheckoutSessionTotalDetails is the set of properties detailing how the amounts were calculated.

type CheckoutSessionTotalDetailsBreakdown

type CheckoutSessionTotalDetailsBreakdown struct {
	Discounts []*CheckoutSessionTotalDetailsBreakdownDiscount `json:"discounts"`
	Taxes     []*CheckoutSessionTotalDetailsBreakdownTax      `json:"taxes"`
}

CheckoutSessionTotalDetailsBreakdown is the set of properties detailing a breakdown of taxes and discounts applied to a session if any.

type CheckoutSessionTotalDetailsBreakdownDiscount

type CheckoutSessionTotalDetailsBreakdownDiscount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

CheckoutSessionTotalDetailsBreakdownDiscount represent the details of one discount applied to a session.

type CheckoutSessionTotalDetailsBreakdownTax

type CheckoutSessionTotalDetailsBreakdownTax struct {
	Amount  int64    `json:"amount"`
	Rate    *TaxRate `json:"rate"`
	TaxRate *TaxRate `json:"tax_rate"` // Do not use: use `Rate`
}

CheckoutSessionTotalDetailsBreakdownTax represent the details of tax rate applied to a session.

type CodeVerificationFlow

type CodeVerificationFlow struct {
	AttemptsRemaining int64                            `json:"attempts_remaining"`
	Status            SourceCodeVerificationFlowStatus `json:"status"`
}

CodeVerificationFlow informs of the state of a verification authentication flow.

type Country

type Country string

Country is the list of supported countries

type CountrySpec

type CountrySpec struct {
	APIResource
	DefaultCurrency                Currency                                        `json:"default_currency"`
	ID                             string                                          `json:"id"`
	Object                         string                                          `json:"object"`
	SupportedBankAccountCurrencies map[Currency][]Country                          `json:"supported_bank_account_currencies"`
	SupportedPaymentCurrencies     []Currency                                      `json:"supported_payment_currencies"`
	SupportedPaymentMethods        []string                                        `json:"supported_payment_methods"`
	SupportedTransferCountries     []string                                        `json:"supported_transfer_countries"`
	VerificationFields             map[AccountBusinessType]*VerificationFieldsList `json:"verification_fields"`
}

CountrySpec is the resource representing the rules required for a Stripe account. For more details see https://stripe.com/docs/api/#country_specs.

type CountrySpecList

type CountrySpecList struct {
	APIResource
	ListMeta
	Data []*CountrySpec `json:"data"`
}

CountrySpecList is a list of country specs as retrieved from a list endpoint.

type CountrySpecListParams

type CountrySpecListParams struct {
	ListParams `form:"*"`
}

CountrySpecListParams are the parameters allowed during CountrySpec listing.

type CountrySpecParams

type CountrySpecParams struct {
	Params `form:"*"`
}

CountrySpecParams are the parameters allowed during CountrySpec retrieval.

type Coupon

type Coupon struct {
	APIResource
	AmountOff        int64             `json:"amount_off"`
	AppliesTo        *CouponAppliesTo  `json:"applies_to"`
	Created          int64             `json:"created"`
	Currency         Currency          `json:"currency"`
	Deleted          bool              `json:"deleted"`
	Duration         CouponDuration    `json:"duration"`
	DurationInMonths int64             `json:"duration_in_months"`
	ID               string            `json:"id"`
	Livemode         bool              `json:"livemode"`
	MaxRedemptions   int64             `json:"max_redemptions"`
	Metadata         map[string]string `json:"metadata"`
	Name             string            `json:"name"`
	Object           string            `json:"object"`
	PercentOff       float64           `json:"percent_off"`
	RedeemBy         int64             `json:"redeem_by"`
	TimesRedeemed    int64             `json:"times_redeemed"`
	Valid            bool              `json:"valid"`
}

Coupon is the resource representing a Stripe coupon. For more details see https://stripe.com/docs/api#coupons.

func (*Coupon) UnmarshalJSON

func (c *Coupon) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Coupon. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type CouponAppliesTo

type CouponAppliesTo struct {
	Products []string `json:"products"`
}

CouponAppliesTo represents the products a coupon applies to.

type CouponAppliesToParams

type CouponAppliesToParams struct {
	Products []*string `form:"products"`
}

CouponAppliesToParams controls the products that a coupon applies to.

type CouponDuration

type CouponDuration string

CouponDuration is the list of allowed values for the coupon's duration.

const (
	CouponDurationForever   CouponDuration = "forever"
	CouponDurationOnce      CouponDuration = "once"
	CouponDurationRepeating CouponDuration = "repeating"
)

List of values that CouponDuration can take.

type CouponList

type CouponList struct {
	APIResource
	ListMeta
	Data []*Coupon `json:"data"`
}

CouponList is a list of coupons as retrieved from a list endpoint.

type CouponListParams

type CouponListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
}

CouponListParams is the set of parameters that can be used when listing coupons. For more detail see https://stripe.com/docs/api#list_coupons.

type CouponParams

type CouponParams struct {
	Params           `form:"*"`
	AmountOff        *int64                 `form:"amount_off"`
	AppliesTo        *CouponAppliesToParams `form:"applies_to"`
	Currency         *string                `form:"currency"`
	Duration         *string                `form:"duration"`
	DurationInMonths *int64                 `form:"duration_in_months"`
	ID               *string                `form:"id"`
	MaxRedemptions   *int64                 `form:"max_redemptions"`
	Name             *string                `form:"name"`
	PercentOff       *float64               `form:"percent_off"`
	RedeemBy         *int64                 `form:"redeem_by"`
}

CouponParams is the set of parameters that can be used when creating a coupon. For more details see https://stripe.com/docs/api#create_coupon.

type CreditNote

type CreditNote struct {
	APIResource
	Amount                     int64                       `json:"amount"`
	Created                    int64                       `json:"created"`
	Currency                   Currency                    `json:"currency"`
	Customer                   *Customer                   `json:"customer"`
	CustomerBalanceTransaction *CustomerBalanceTransaction `json:"customer_balance_transaction"`
	DiscountAmount             int64                       `json:"discount_amount"`
	DiscountAmounts            []*CreditNoteDiscountAmount `json:"discount_amounts"`
	ID                         string                      `json:"id"`
	Invoice                    *Invoice                    `json:"invoice"`
	Lines                      *CreditNoteLineItemList     `json:"lines"`
	Livemode                   bool                        `json:"livemode"`
	Memo                       string                      `json:"memo"`
	Metadata                   map[string]string           `json:"metadata"`
	Number                     string                      `json:"number"`
	Object                     string                      `json:"object"`
	OutOfBandAmount            int64                       `json:"out_of_band_amount"`
	PDF                        string                      `json:"pdf"`
	Reason                     CreditNoteReason            `json:"reason"`
	Refund                     *Refund                     `json:"refund"`
	Status                     CreditNoteStatus            `json:"status"`
	Subtotal                   int64                       `json:"subtotal"`
	TaxAmounts                 []*CreditNoteTaxAmount      `json:"tax_amounts"`
	Total                      int64                       `json:"total"`
	Type                       CreditNoteType              `json:"type"`
	VoidedAt                   int64                       `json:"voided_at"`
}

CreditNote is the resource representing a Stripe credit note. For more details see https://stripe.com/docs/api/credit_notes/object.

func (*CreditNote) UnmarshalJSON

func (c *CreditNote) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a CreditNote. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type CreditNoteDiscountAmount

type CreditNoteDiscountAmount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

CreditNoteDiscountAmount represents the aggregate amounts calculated per discount for all line items.

type CreditNoteLineItem

type CreditNoteLineItem struct {
	Amount            int64                               `json:"amount"`
	Description       string                              `json:"description"`
	DiscountAmount    int64                               `json:"discount_amount"`
	DiscountAmounts   []*CreditNoteLineItemDiscountAmount `json:"discount_amounts"`
	ID                string                              `json:"id"`
	InvoiceLineItem   string                              `json:"invoice_line_item"`
	Livemode          bool                                `json:"livemode"`
	Object            string                              `json:"object"`
	Quantity          int64                               `json:"quantity"`
	TaxAmounts        []*CreditNoteTaxAmount              `json:"tax_amounts"`
	TaxRates          []*TaxRate                          `json:"tax_rates"`
	Type              CreditNoteLineItemType              `json:"type"`
	UnitAmount        int64                               `json:"unit_amount"`
	UnitAmountDecimal float64                             `json:"unit_amount_decimal,string"`
}

CreditNoteLineItem is the resource representing a Stripe credit note line item. For more details see https://stripe.com/docs/api/credit_notes/line_item

type CreditNoteLineItemDiscountAmount

type CreditNoteLineItemDiscountAmount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

The integer amount in %s representing the discount being credited for this line item.

type CreditNoteLineItemList

type CreditNoteLineItemList struct {
	APIResource
	ListMeta
	Data []*CreditNoteLineItem `json:"data"`
}

CreditNoteLineItemList is a list of CreditNoteLineItems as retrieved from a list endpoint.

type CreditNoteLineItemListParams

type CreditNoteLineItemListParams struct {
	ListParams `form:"*"`
	// ID is the credit note ID to list line items for.
	ID *string `form:"-"` // Included in URL
}

CreditNoteLineItemListParams is the set of parameters that can be used when listing credit note line items.

type CreditNoteLineItemListPreviewParams

type CreditNoteLineItemListPreviewParams struct {
	ListParams      `form:"*"`
	Amount          *int64                  `form:"amount"`
	CreditAmount    *int64                  `form:"credit_amount"`
	Invoice         *string                 `form:"invoice"`
	Lines           []*CreditNoteLineParams `form:"lines"`
	Memo            *string                 `form:"memo"`
	OutOfBandAmount *int64                  `form:"out_of_band_amount"`
	Reason          *string                 `form:"reason"`
	Refund          *string                 `form:"refund"`
	RefundAmount    *int64                  `form:"refund_amount"`
}

CreditNoteLineItemListPreviewParams is the set of parameters that can be used when previewing a credit note's line items

type CreditNoteLineItemType

type CreditNoteLineItemType string

The type of the credit note line item, one of `invoice_line_item` or `custom_line_item`. When the type is `invoice_line_item` there is an additional `invoice_line_item` property on the resource the value of which is the id of the credited line item on the invoice.

const (
	CreditNoteLineItemTypeCustomLineItem  CreditNoteLineItemType = "custom_line_item"
	CreditNoteLineItemTypeInvoiceLineItem CreditNoteLineItemType = "invoice_line_item"
)

List of values that CreditNoteLineItemType can take

type CreditNoteLineParams

type CreditNoteLineParams struct {
	Amount            *int64    `form:"amount"`
	Description       *string   `form:"description"`
	InvoiceLineItem   *string   `form:"invoice_line_item"`
	Quantity          *int64    `form:"quantity"`
	TaxRates          []*string `form:"tax_rates"`
	Type              *string   `form:"type"`
	UnitAmount        *int64    `form:"unit_amount"`
	UnitAmountDecimal *float64  `form:"unit_amount_decimal,high_precision"`
}

CreditNoteLineParams is the set of parameters that can be used for a line item when creating or previewing a credit note.

type CreditNoteList

type CreditNoteList struct {
	APIResource
	ListMeta
	Data []*CreditNote `json:"data"`
}

CreditNoteList is a list of credit notes as retrieved from a list endpoint.

type CreditNoteListParams

type CreditNoteListParams struct {
	ListParams `form:"*"`
	Customer   *string `form:"customer"`
	Invoice    *string `form:"invoice"`
}

CreditNoteListParams is the set of parameters that can be used when listing credit notes. For more details see https://stripe.com/docs/api/credit_notes/list.

type CreditNoteParams

type CreditNoteParams struct {
	Params          `form:"*"`
	Amount          *int64                  `form:"amount"`
	CreditAmount    *int64                  `form:"credit_amount"`
	Invoice         *string                 `form:"invoice"`
	Lines           []*CreditNoteLineParams `form:"lines"`
	Memo            *string                 `form:"memo"`
	OutOfBandAmount *int64                  `form:"out_of_band_amount"`
	Reason          *string                 `form:"reason"`
	Refund          *string                 `form:"refund"`
	RefundAmount    *int64                  `form:"refund_amount"`
}

CreditNoteParams is the set of parameters that can be used when creating or updating a credit note. For more details see https://stripe.com/docs/api/credit_notes/create, https://stripe.com/docs/api/credit_notes/update.

type CreditNotePreviewParams

type CreditNotePreviewParams struct {
	Params          `form:"*"`
	Amount          *int64                  `form:"amount"`
	CreditAmount    *int64                  `form:"credit_amount"`
	Invoice         *string                 `form:"invoice"`
	Lines           []*CreditNoteLineParams `form:"lines"`
	Memo            *string                 `form:"memo"`
	OutOfBandAmount *int64                  `form:"out_of_band_amount"`
	Reason          *string                 `form:"reason"`
	Refund          *string                 `form:"refund"`
	RefundAmount    *int64                  `form:"refund_amount"`
}

CreditNotePreviewParams is the set of parameters that can be used when previewing a credit note. For more details see https://stripe.com/docs/api/credit_notes/preview.

type CreditNoteReason

type CreditNoteReason string

CreditNoteReason is the reason why a given credit note was created.

const (
	CreditNoteReasonDuplicate             CreditNoteReason = "duplicate"
	CreditNoteReasonFraudulent            CreditNoteReason = "fraudulent"
	CreditNoteReasonOrderChange           CreditNoteReason = "order_change"
	CreditNoteReasonProductUnsatisfactory CreditNoteReason = "product_unsatisfactory"
)

List of values that CreditNoteReason can take.

type CreditNoteStatus

type CreditNoteStatus string

CreditNoteStatus is the list of allowed values for the credit note's status.

const (
	CreditNoteStatusIssued CreditNoteStatus = "issued"
	CreditNoteStatusVoid   CreditNoteStatus = "void"
)

List of values that CreditNoteStatus can take.

type CreditNoteTaxAmount

type CreditNoteTaxAmount struct {
	Amount    int64    `json:"amount"`
	Inclusive bool     `json:"inclusive"`
	TaxRate   *TaxRate `json:"tax_rate"`
}

CreditNoteTaxAmount represent the tax amount applied to a credit note.

type CreditNoteType

type CreditNoteType string

CreditNoteType is the list of allowed values for the credit note's type.

const (
	CreditNoteTypePostPayment CreditNoteType = "post_payment"
	CreditNoteTypePrePayment  CreditNoteType = "pre_payment"
)

List of values that CreditNoteType can take.

type CreditNoteVoidParams

type CreditNoteVoidParams struct {
	Params `form:"*"`
}

CreditNoteVoidParams is the set of parameters that can be used when voiding invoices.

type Currency

type Currency string

Currency is the list of supported currencies. For more details see https://support.stripe.com/questions/which-currencies-does-stripe-support.

const (
	CurrencyAED Currency = "aed" // United Arab Emirates Dirham
	CurrencyAFN Currency = "afn" // Afghan Afghani
	CurrencyALL Currency = "all" // Albanian Lek
	CurrencyAMD Currency = "amd" // Armenian Dram
	CurrencyANG Currency = "ang" // Netherlands Antillean Gulden
	CurrencyAOA Currency = "aoa" // Angolan Kwanza
	CurrencyARS Currency = "ars" // Argentine Peso
	CurrencyAUD Currency = "aud" // Australian Dollar
	CurrencyAWG Currency = "awg" // Aruban Florin
	CurrencyAZN Currency = "azn" // Azerbaijani Manat
	CurrencyBAM Currency = "bam" // Bosnia & Herzegovina Convertible Mark
	CurrencyBBD Currency = "bbd" // Barbadian Dollar
	CurrencyBDT Currency = "bdt" // Bangladeshi Taka
	CurrencyBGN Currency = "bgn" // Bulgarian Lev
	CurrencyBIF Currency = "bif" // Burundian Franc
	CurrencyBMD Currency = "bmd" // Bermudian Dollar
	CurrencyBND Currency = "bnd" // Brunei Dollar
	CurrencyBOB Currency = "bob" // Bolivian Boliviano
	CurrencyBRL Currency = "brl" // Brazilian Real
	CurrencyBSD Currency = "bsd" // Bahamian Dollar
	CurrencyBWP Currency = "bwp" // Botswana Pula
	CurrencyBZD Currency = "bzd" // Belize Dollar
	CurrencyCAD Currency = "cad" // Canadian Dollar
	CurrencyCDF Currency = "cdf" // Congolese Franc
	CurrencyCHF Currency = "chf" // Swiss Franc
	CurrencyCLP Currency = "clp" // Chilean Peso
	CurrencyCNY Currency = "cny" // Chinese Renminbi Yuan
	CurrencyCOP Currency = "cop" // Colombian Peso
	CurrencyCRC Currency = "crc" // Costa Rican Colón
	CurrencyCVE Currency = "cve" // Cape Verdean Escudo
	CurrencyCZK Currency = "czk" // Czech Koruna
	CurrencyDJF Currency = "djf" // Djiboutian Franc
	CurrencyDKK Currency = "dkk" // Danish Krone
	CurrencyDOP Currency = "dop" // Dominican Peso
	CurrencyDZD Currency = "dzd" // Algerian Dinar
	CurrencyEEK Currency = "eek" // Estonian Kroon
	CurrencyEGP Currency = "egp" // Egyptian Pound
	CurrencyETB Currency = "etb" // Ethiopian Birr
	CurrencyEUR Currency = "eur" // Euro
	CurrencyFJD Currency = "fjd" // Fijian Dollar
	CurrencyFKP Currency = "fkp" // Falkland Islands Pound
	CurrencyGBP Currency = "gbp" // British Pound
	CurrencyGEL Currency = "gel" // Georgian Lari
	CurrencyGIP Currency = "gip" // Gibraltar Pound
	CurrencyGMD Currency = "gmd" // Gambian Dalasi
	CurrencyGNF Currency = "gnf" // Guinean Franc
	CurrencyGTQ Currency = "gtq" // Guatemalan Quetzal
	CurrencyGYD Currency = "gyd" // Guyanese Dollar
	CurrencyHKD Currency = "hkd" // Hong Kong Dollar
	CurrencyHNL Currency = "hnl" // Honduran Lempira
	CurrencyHRK Currency = "hrk" // Croatian Kuna
	CurrencyHTG Currency = "htg" // Haitian Gourde
	CurrencyHUF Currency = "huf" // Hungarian Forint
	CurrencyIDR Currency = "idr" // Indonesian Rupiah
	CurrencyILS Currency = "ils" // Israeli New Sheqel
	CurrencyINR Currency = "inr" // Indian Rupee
	CurrencyISK Currency = "isk" // Icelandic Króna
	CurrencyJMD Currency = "jmd" // Jamaican Dollar
	CurrencyJPY Currency = "jpy" // Japanese Yen
	CurrencyKES Currency = "kes" // Kenyan Shilling
	CurrencyKGS Currency = "kgs" // Kyrgyzstani Som
	CurrencyKHR Currency = "khr" // Cambodian Riel
	CurrencyKMF Currency = "kmf" // Comorian Franc
	CurrencyKRW Currency = "krw" // South Korean Won
	CurrencyKYD Currency = "kyd" // Cayman Islands Dollar
	CurrencyKZT Currency = "kzt" // Kazakhstani Tenge
	CurrencyLAK Currency = "lak" // Lao Kip
	CurrencyLBP Currency = "lbp" // Lebanese Pound
	CurrencyLKR Currency = "lkr" // Sri Lankan Rupee
	CurrencyLRD Currency = "lrd" // Liberian Dollar
	CurrencyLSL Currency = "lsl" // Lesotho Loti
	CurrencyLTL Currency = "ltl" // Lithuanian Litas
	CurrencyLVL Currency = "lvl" // Latvian Lats
	CurrencyMAD Currency = "mad" // Moroccan Dirham
	CurrencyMDL Currency = "mdl" // Moldovan Leu
	CurrencyMGA Currency = "mga" // Malagasy Ariary
	CurrencyMKD Currency = "mkd" // Macedonian Denar
	CurrencyMNT Currency = "mnt" // Mongolian Tögrög
	CurrencyMOP Currency = "mop" // Macanese Pataca
	CurrencyMRO Currency = "mro" // Mauritanian Ouguiya
	CurrencyMUR Currency = "mur" // Mauritian Rupee
	CurrencyMVR Currency = "mvr" // Maldivian Rufiyaa
	CurrencyMWK Currency = "mwk" // Malawian Kwacha
	CurrencyMXN Currency = "mxn" // Mexican Peso
	CurrencyMYR Currency = "myr" // Malaysian Ringgit
	CurrencyMZN Currency = "mzn" // Mozambican Metical
	CurrencyNAD Currency = "nad" // Namibian Dollar
	CurrencyNGN Currency = "ngn" // Nigerian Naira
	CurrencyNIO Currency = "nio" // Nicaraguan Córdoba
	CurrencyNOK Currency = "nok" // Norwegian Krone
	CurrencyNPR Currency = "npr" // Nepalese Rupee
	CurrencyNZD Currency = "nzd" // New Zealand Dollar
	CurrencyPAB Currency = "pab" // Panamanian Balboa
	CurrencyPEN Currency = "pen" // Peruvian Nuevo Sol
	CurrencyPGK Currency = "pgk" // Papua New Guinean Kina
	CurrencyPHP Currency = "php" // Philippine Peso
	CurrencyPKR Currency = "pkr" // Pakistani Rupee
	CurrencyPLN Currency = "pln" // Polish Złoty
	CurrencyPYG Currency = "pyg" // Paraguayan Guaraní
	CurrencyQAR Currency = "qar" // Qatari Riyal
	CurrencyRON Currency = "ron" // Romanian Leu
	CurrencyRSD Currency = "rsd" // Serbian Dinar
	CurrencyRUB Currency = "rub" // Russian Ruble
	CurrencyRWF Currency = "rwf" // Rwandan Franc
	CurrencySAR Currency = "sar" // Saudi Riyal
	CurrencySBD Currency = "sbd" // Solomon Islands Dollar
	CurrencySCR Currency = "scr" // Seychellois Rupee
	CurrencySEK Currency = "sek" // Swedish Krona
	CurrencySGD Currency = "sgd" // Singapore Dollar
	CurrencySHP Currency = "shp" // Saint Helenian Pound
	CurrencySLL Currency = "sll" // Sierra Leonean Leone
	CurrencySOS Currency = "sos" // Somali Shilling
	CurrencySRD Currency = "srd" // Surinamese Dollar
	CurrencySTD Currency = "std" // São Tomé and Príncipe Dobra
	CurrencySVC Currency = "svc" // Salvadoran Colón
	CurrencySZL Currency = "szl" // Swazi Lilangeni
	CurrencyTHB Currency = "thb" // Thai Baht
	CurrencyTJS Currency = "tjs" // Tajikistani Somoni
	CurrencyTOP Currency = "top" // Tongan Paʻanga
	CurrencyTRY Currency = "try" // Turkish Lira
	CurrencyTTD Currency = "ttd" // Trinidad and Tobago Dollar
	CurrencyTWD Currency = "twd" // New Taiwan Dollar
	CurrencyTZS Currency = "tzs" // Tanzanian Shilling
	CurrencyUAH Currency = "uah" // Ukrainian Hryvnia
	CurrencyUGX Currency = "ugx" // Ugandan Shilling
	CurrencyUSD Currency = "usd" // United States Dollar
	CurrencyUYU Currency = "uyu" // Uruguayan Peso
	CurrencyUZS Currency = "uzs" // Uzbekistani Som
	CurrencyVEF Currency = "vef" // Venezuelan Bolívar
	CurrencyVND Currency = "vnd" // Vietnamese Đồng
	CurrencyVUV Currency = "vuv" // Vanuatu Vatu
	CurrencyWST Currency = "wst" // Samoan Tala
	CurrencyXAF Currency = "xaf" // Central African Cfa Franc
	CurrencyXCD Currency = "xcd" // East Caribbean Dollar
	CurrencyXOF Currency = "xof" // West African Cfa Franc
	CurrencyXPF Currency = "xpf" // Cfp Franc
	CurrencyYER Currency = "yer" // Yemeni Rial
	CurrencyZAR Currency = "zar" // South African Rand
	CurrencyZMW Currency = "zmw" // Zambian Kwacha
)

List of values that Currency can take.

type Customer

type Customer struct {
	APIResource
	Address             Address                  `json:"address"`
	Balance             int64                    `json:"balance"`
	Created             int64                    `json:"created"`
	Currency            Currency                 `json:"currency"`
	DefaultSource       *PaymentSource           `json:"default_source"`
	Deleted             bool                     `json:"deleted"`
	Delinquent          bool                     `json:"delinquent"`
	Description         string                   `json:"description"`
	Discount            *Discount                `json:"discount"`
	Email               string                   `json:"email"`
	ID                  string                   `json:"id"`
	InvoicePrefix       string                   `json:"invoice_prefix"`
	InvoiceSettings     *CustomerInvoiceSettings `json:"invoice_settings"`
	Livemode            bool                     `json:"livemode"`
	Metadata            map[string]string        `json:"metadata"`
	Name                string                   `json:"name"`
	NextInvoiceSequence int64                    `json:"next_invoice_sequence"`
	Object              string                   `json:"object"`
	Phone               string                   `json:"phone"`
	PreferredLocales    []string                 `json:"preferred_locales"`
	Shipping            *CustomerShippingDetails `json:"shipping"`
	Sources             *SourceList              `json:"sources"`
	Subscriptions       *SubscriptionList        `json:"subscriptions"`
	Tax                 *CustomerTax             `json:"tax"`
	TaxExempt           CustomerTaxExempt        `json:"tax_exempt"`
	TaxIDs              *TaxIDList               `json:"tax_ids"`
}

Customer is the resource representing a Stripe customer. For more details see https://stripe.com/docs/api#customers.

Example (Delete)
package main

import (
	"log"

	stripe "github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/customer"
)

func main() {
	stripe.Key = "sk_key"

	customerDel, err := customer.Del("cus_example_id", nil)

	if err != nil {
		log.Fatal(err)
	}

	if !customerDel.Deleted {
		log.Fatal("Customer doesn't appear deleted while it should be")
	}
}
Output:

func (*Customer) UnmarshalJSON

func (c *Customer) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Customer. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type CustomerBalanceTransaction

type CustomerBalanceTransaction struct {
	APIResource
	Amount        int64                          `json:"amount"`
	Created       int64                          `json:"created"`
	CreditNote    *CreditNote                    `json:"credit_note"`
	Currency      Currency                       `json:"currency"`
	Customer      *Customer                      `json:"customer"`
	Description   string                         `json:"description"`
	EndingBalance int64                          `json:"ending_balance"`
	ID            string                         `json:"id"`
	Invoice       *Invoice                       `json:"invoice"`
	Livemode      bool                           `json:"livemode"`
	Metadata      map[string]string              `json:"metadata"`
	Object        string                         `json:"object"`
	Type          CustomerBalanceTransactionType `json:"type"`
}

CustomerBalanceTransaction is the resource representing a customer balance transaction. For more details see https://stripe.com/docs/api/customers/customer_balance_transaction_object

func (*CustomerBalanceTransaction) UnmarshalJSON

func (c *CustomerBalanceTransaction) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a CustomerBalanceTransaction. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type CustomerBalanceTransactionList

type CustomerBalanceTransactionList struct {
	APIResource
	ListMeta
	Data []*CustomerBalanceTransaction `json:"data"`
}

CustomerBalanceTransactionList is a list of customer balance transactions as retrieved from a list endpoint.

type CustomerBalanceTransactionListParams

type CustomerBalanceTransactionListParams struct {
	ListParams `form:"*"`
	Customer   *string `form:"-"` // Included in URL
}

CustomerBalanceTransactionListParams is the set of parameters that can be used when listing customer balance transactions. For more detail see https://stripe.com/docs/api/customers/customer_balance_transactions

type CustomerBalanceTransactionParams

type CustomerBalanceTransactionParams struct {
	Params      `form:"*"`
	Customer    *string `form:"-"` // Included in URL
	Amount      *int64  `form:"amount"`
	Currency    *string `form:"currency"`
	Description *string `form:"description"`
}

CustomerBalanceTransactionParams is the set of parameters that can be used when creating or updating a customer balance transactions. For more details see https://stripe.com/docs/api/customers/create_customer_balance_transaction

type CustomerBalanceTransactionType

type CustomerBalanceTransactionType string

CustomerBalanceTransactionType is the list of allowed values for the customer's balance transaction type.

const (
	CustomerBalanceTransactionTypeAdjustment            CustomerBalanceTransactionType = "adjustment"
	CustomerBalanceTransactionTypeAppliedToInvoice      CustomerBalanceTransactionType = "applied_to_invoice"
	CustomerBalanceTransactionTypeCreditNote            CustomerBalanceTransactionType = "credit_note"
	CustomerBalanceTransactionTypeInitial               CustomerBalanceTransactionType = "initial"
	CustomerBalanceTransactionTypeInvoiceTooLarge       CustomerBalanceTransactionType = "invoice_too_large"
	CustomerBalanceTransactionTypeInvoiceTooSmall       CustomerBalanceTransactionType = "invoice_too_small"
	CustomerBalanceTransactionTypeMigration             CustomerBalanceTransactionType = "migration"
	CustomerBalanceTransactionTypeUnappliedFromInvoice  CustomerBalanceTransactionType = "unapplied_from_invoice"
	CustomerBalanceTransactionTypeUnspentReceiverCredit CustomerBalanceTransactionType = "unspent_receiver_credit"
)

List of values that CustomerBalanceTransactionDuration can take.

type CustomerInvoiceCustomField

type CustomerInvoiceCustomField struct {
	Name  *string `form:"name"`
	Value *string `form:"value"`
}

CustomerInvoiceCustomField represents a custom field associated with the customer's invoices.

type CustomerInvoiceCustomFieldParams

type CustomerInvoiceCustomFieldParams struct {
	Name  *string `form:"name"`
	Value *string `form:"value"`
}

CustomerInvoiceCustomFieldParams represents the parameters associated with one custom field on the customer's invoices.

type CustomerInvoiceSettings

type CustomerInvoiceSettings struct {
	CustomFields         []*CustomerInvoiceCustomField `json:"custom_fields"`
	DefaultPaymentMethod *PaymentMethod                `json:"default_payment_method"`
	Footer               string                        `json:"footer"`
}

CustomerInvoiceSettings is the structure containing the default settings for invoices associated with this customer.

type CustomerInvoiceSettingsParams

type CustomerInvoiceSettingsParams struct {
	CustomFields         []*CustomerInvoiceCustomFieldParams `form:"custom_fields"`
	DefaultPaymentMethod *string                             `form:"default_payment_method"`
	Footer               *string                             `form:"footer"`
}

CustomerInvoiceSettingsParams is the structure containing the default settings for invoices associated with this customer.

type CustomerList

type CustomerList struct {
	APIResource
	ListMeta
	Data []*Customer `json:"data"`
}

CustomerList is a list of customers as retrieved from a list endpoint.

type CustomerListParams

type CustomerListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Email        *string           `form:"email"`
}

CustomerListParams is the set of parameters that can be used when listing customers. For more details see https://stripe.com/docs/api#list_customers.

type CustomerListPaymentMethodsParams added in v72.69.0

type CustomerListPaymentMethodsParams struct {
	ListParams `form:"*"`
	Customer   *string `form:"-"` // Included in URL
	Type       *string `form:"type"`
}

Returns a list of PaymentMethods for a given Customer

type CustomerParams

type CustomerParams struct {
	Params              `form:"*"`
	Address             *AddressParams                 `form:"address"`
	Balance             *int64                         `form:"balance"`
	Coupon              *string                        `form:"coupon"`
	DefaultSource       *string                        `form:"default_source"`
	Description         *string                        `form:"description"`
	Email               *string                        `form:"email"`
	InvoicePrefix       *string                        `form:"invoice_prefix"`
	InvoiceSettings     *CustomerInvoiceSettingsParams `form:"invoice_settings"`
	Name                *string                        `form:"name"`
	NextInvoiceSequence *int64                         `form:"next_invoice_sequence"`
	PaymentMethod       *string                        `form:"payment_method"`
	Phone               *string                        `form:"phone"`
	PreferredLocales    []*string                      `form:"preferred_locales"`
	PromotionCode       *string                        `form:"promotion_code"`
	Shipping            *CustomerShippingDetailsParams `form:"shipping"`
	Source              *SourceParams                  `form:"*"` // SourceParams has custom encoding so brought to top level with "*"
	Tax                 *CustomerTaxParams             `form:"tax"`
	TaxExempt           *string                        `form:"tax_exempt"`
	TaxIDData           []*CustomerTaxIDDataParams     `form:"tax_id_data"`
	Token               *string                        `form:"-"` // This doesn't seem to be used?
}

CustomerParams is the set of parameters that can be used when creating or updating a customer. For more details see https://stripe.com/docs/api#create_customer and https://stripe.com/docs/api#update_customer.

func (*CustomerParams) SetSource

func (cp *CustomerParams) SetSource(sp interface{}) error

SetSource adds valid sources to a CustomerParams object, returning an error for unsupported sources.

type CustomerShippingDetails

type CustomerShippingDetails struct {
	Address Address `json:"address"`
	Name    string  `json:"name"`
	Phone   string  `json:"phone"`
}

CustomerShippingDetails is the structure containing shipping information.

type CustomerShippingDetailsParams

type CustomerShippingDetailsParams struct {
	Address *AddressParams `form:"address"`
	Name    *string        `form:"name"`
	Phone   *string        `form:"phone"`
}

CustomerShippingDetailsParams is the structure containing shipping information.

type CustomerSourceParams

type CustomerSourceParams struct {
	Params            `form:"*"`
	Customer          *string                   `form:"-"` // Included in URL
	AccountHolderName *string                   `form:"account_holder_name"`
	AccountHolderType *string                   `form:"account_holder_type"`
	AddressCity       *string                   `form:"address_city"`
	AddressCountry    *string                   `form:"address_country"`
	AddressLine1      *string                   `form:"address_line1"`
	AddressLine2      *string                   `form:"address_line2"`
	AddressState      *string                   `form:"address_state"`
	AddressZip        *string                   `form:"address_zip"`
	ExpMonth          *string                   `form:"exp_month"`
	ExpYear           *string                   `form:"exp_year"`
	Name              *string                   `form:"name"`
	Owner             *PaymentSourceOwnerParams `form:"owner"`
	Source            *SourceParams             `form:"*"` // SourceParams has custom encoding so brought to top level with "*"
}

CustomerSourceParams are used to manipulate a given Stripe Customer object's payment sources. For more details see https://stripe.com/docs/api#sources

func (*CustomerSourceParams) SetSource

func (cp *CustomerSourceParams) SetSource(sp interface{}) error

SetSource adds valid sources to a CustomerSourceParams object, returning an error for unsupported sources.

type CustomerTax added in v72.48.0

type CustomerTax struct {
	AutomaticTax CustomerTaxAutomaticTax `json:"automatic_tax"`
	IPAddress    string                  `json:"ip_address"`
	Location     *CustomerTaxLocation    `json:"location"`
}

type CustomerTaxAutomaticTax added in v72.48.0

type CustomerTaxAutomaticTax string
const (
	CustomerTaxAutomaticTaxFailed               CustomerTaxAutomaticTax = "failed"
	CustomerTaxAutomaticTaxNotCollecting        CustomerTaxAutomaticTax = "not_collecting"
	CustomerTaxAutomaticTaxSupported            CustomerTaxAutomaticTax = "supported"
	CustomerTaxAutomaticTaxUnrecognizedLocation CustomerTaxAutomaticTax = "unrecognized_location"
)

List of values that CustomerTaxAutomaticTax can take

type CustomerTaxExempt

type CustomerTaxExempt string

CustomerTaxExempt is the type of tax exemption associated with a customer.

const (
	CustomerTaxExemptExempt  CustomerTaxExempt = "exempt"
	CustomerTaxExemptNone    CustomerTaxExempt = "none"
	CustomerTaxExemptReverse CustomerTaxExempt = "reverse"
)

List of values that CustomerTaxExempt can take.

type CustomerTaxIDDataParams

type CustomerTaxIDDataParams struct {
	Type  *string `form:"type"`
	Value *string `form:"value"`
}

CustomerTaxIDDataParams lets you pass the tax id details associated with a Customer.

type CustomerTaxLocation added in v72.48.0

type CustomerTaxLocation struct {
	Country string                    `json:"country"`
	Source  CustomerTaxLocationSource `json:"source"`
	State   string                    `json:"state"`
}

The customer's location as identified by Stripe Tax.

type CustomerTaxLocationSource added in v72.48.0

type CustomerTaxLocationSource string
const (
	CustomerTaxLocationSourceBillingAddress      CustomerTaxLocationSource = "billing_address"
	CustomerTaxLocationSourceIPAddress           CustomerTaxLocationSource = "ip_address"
	CustomerTaxLocationSourcePaymentMethod       CustomerTaxLocationSource = "payment_method"
	CustomerTaxLocationSourceShippingDestination CustomerTaxLocationSource = "shipping_destination"
)

List of values that CustomerTaxLocationSource can take

type CustomerTaxParams added in v72.48.0

type CustomerTaxParams struct {
	IPAddress *string `form:"ip_address"`
}

Tax details about the customer.

type DOB

type DOB struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

DOB represents a Person's date of birth.

type DOBParams

type DOBParams struct {
	Day   *int64 `form:"day"`
	Month *int64 `form:"month"`
	Year  *int64 `form:"year"`
}

DOBParams represents a DOB during account creation/updates.

type Deauthorize

type Deauthorize struct {
	APIResource
	StripeUserID string `json:"stripe_user_id"`
}

Deauthorize is the value of the return from deauthorizing. https://stripe.com/docs/connect/oauth-reference#post-deauthorize

type DeauthorizeParams

type DeauthorizeParams struct {
	Params       `form:"*"`
	ClientID     *string `form:"client_id"`
	StripeUserID *string `form:"stripe_user_id"`
}

DeauthorizeParams for deauthorizing an account.

type DeclineCode

type DeclineCode string

DeclineCode is the list of reasons provided by card issuers for decline of payment.

const (
	DeclineCodeAuthenticationRequired         DeclineCode = "authentication_required"
	DeclineCodeApproveWithID                  DeclineCode = "approve_with_id"
	DeclineCodeCallIssuer                     DeclineCode = "call_issuer"
	DeclineCodeCardNotSupported               DeclineCode = "card_not_supported"
	DeclineCodeCardVelocityExceeded           DeclineCode = "card_velocity_exceeded"
	DeclineCodeCurrencyNotSupported           DeclineCode = "currency_not_supported"
	DeclineCodeDoNotHonor                     DeclineCode = "do_not_honor"
	DeclineCodeDoNotTryAgain                  DeclineCode = "do_not_try_again"
	DeclineCodeDuplicateTransaction           DeclineCode = "duplicate_transaction"
	DeclineCodeExpiredCard                    DeclineCode = "expired_card"
	DeclineCodeFraudulent                     DeclineCode = "fraudulent"
	DeclineCodeGenericDecline                 DeclineCode = "generic_decline"
	DeclineCodeIncorrectNumber                DeclineCode = "incorrect_number"
	DeclineCodeIncorrectCVC                   DeclineCode = "incorrect_cvc"
	DeclineCodeIncorrectPIN                   DeclineCode = "incorrect_pin"
	DeclineCodeIncorrectZip                   DeclineCode = "incorrect_zip"
	DeclineCodeInsufficientFunds              DeclineCode = "insufficient_funds"
	DeclineCodeInvalidAccount                 DeclineCode = "invalid_account"
	DeclineCodeInvalidAmount                  DeclineCode = "invalid_amount"
	DeclineCodeInvalidCVC                     DeclineCode = "invalid_cvc"
	DeclineCodeInvalidExpiryMonth             DeclineCode = "invalid_expiry_month"
	DeclineCodeInvalidExpiryYear              DeclineCode = "invalid_expiry_year"
	DeclineCodeInvalidNumber                  DeclineCode = "invalid_number"
	DeclineCodeInvalidPIN                     DeclineCode = "invalid_pin"
	DeclineCodeIssuerNotAvailable             DeclineCode = "issuer_not_available"
	DeclineCodeLostCard                       DeclineCode = "lost_card"
	DeclineCodeMerchantBlacklist              DeclineCode = "merchant_blacklist"
	DeclineCodeNewAccountInformationAvailable DeclineCode = "new_account_information_available"
	DeclineCodeNoActionTaken                  DeclineCode = "no_action_taken"
	DeclineCodeNotPermitted                   DeclineCode = "not_permitted"
	DeclineCodeOfflinePINRequired             DeclineCode = "offline_pin_required"
	DeclineCodeOnlineOrOfflinePINRequired     DeclineCode = "online_or_offline_pin_required"
	DeclineCodePickupCard                     DeclineCode = "pickup_card"
	DeclineCodePINTryExceeded                 DeclineCode = "pin_try_exceeded"
	DeclineCodeProcessingError                DeclineCode = "processing_error"
	DeclineCodeReenterTransaction             DeclineCode = "reenter_transaction"
	DeclineCodeRestrictedCard                 DeclineCode = "restricted_card"
	DeclineCodeRevocationOfAllAuthorizations  DeclineCode = "revocation_of_all_authorizations"
	DeclineCodeRevocationOfAuthorization      DeclineCode = "revocation_of_authorization"
	DeclineCodeSecurityViolation              DeclineCode = "security_violation"
	DeclineCodeServiceNotAllowed              DeclineCode = "service_not_allowed"
	DeclineCodeStolenCard                     DeclineCode = "stolen_card"
	DeclineCodeStopPaymentOrder               DeclineCode = "stop_payment_order"
	DeclineCodeTestModeDecline                DeclineCode = "testmode_decline"
	DeclineCodeTransactionNotAllowed          DeclineCode = "transaction_not_allowed"
	DeclineCodeTryAgainLater                  DeclineCode = "try_again_later"
	DeclineCodeWithdrawalCountLimitExceeded   DeclineCode = "withdrawal_count_limit_exceeded"
)

List of DeclineCode values.

type DeliveryEstimate

type DeliveryEstimate struct {
	// If Type == Exact
	Date string `json:"date"`
	// If Type == Range
	Earliest string                    `json:"earliest"`
	Latest   string                    `json:"latest"`
	Type     OrderDeliveryEstimateType `json:"type"`
}

DeliveryEstimate represent the properties available for a shipping method's estimated delivery.

type DestinationParams

type DestinationParams struct {
	Account *string `form:"account"`
	Amount  *int64  `form:"amount"`
}

DestinationParams describes the parameters available for the destination hash when creating a charge.

type Discount

type Discount struct {
	APIResource
	CheckoutSession *CheckoutSession `json:"checkout_session"`
	Coupon          *Coupon          `json:"coupon"`
	Customer        string           `json:"customer"`
	Deleted         bool             `json:"deleted"`
	End             int64            `json:"end"`
	ID              string           `json:"id"`
	Invoice         string           `json:"invoice"`
	InvoiceItem     string           `json:"invoice_item"`
	Object          string           `json:"object"`
	PromotionCode   *PromotionCode   `json:"promotion_code"`
	Start           int64            `json:"start"`
	Subscription    string           `json:"subscription"`
}

Discount is the resource representing a Stripe discount. For more details see https://stripe.com/docs/api#discounts.

func (*Discount) UnmarshalJSON

func (d *Discount) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Discount. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type DiscountParams

type DiscountParams struct {
	Params `form:"*"`
}

DiscountParams is the set of parameters that can be used when deleting a discount.

type Dispute

type Dispute struct {
	APIResource
	Amount              int64                 `json:"amount"`
	BalanceTransactions []*BalanceTransaction `json:"balance_transactions"`
	Charge              *Charge               `json:"charge"`
	Created             int64                 `json:"created"`
	Currency            Currency              `json:"currency"`
	Evidence            *DisputeEvidence      `json:"evidence"`
	EvidenceDetails     *EvidenceDetails      `json:"evidence_details"`
	ID                  string                `json:"id"`
	IsChargeRefundable  bool                  `json:"is_charge_refundable"`
	Livemode            bool                  `json:"livemode"`
	Metadata            map[string]string     `json:"metadata"`
	NetworkReasonCode   string                `json:"network_reason_code"`
	Object              string                `json:"object"`
	PaymentIntent       *PaymentIntent        `json:"payment_intent"`
	Reason              DisputeReason         `json:"reason"`
	Status              DisputeStatus         `json:"status"`
}

Dispute is the resource representing a Stripe dispute. For more details see https://stripe.com/docs/api#disputes.

func (*Dispute) UnmarshalJSON

func (d *Dispute) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Dispute. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type DisputeEvidence

type DisputeEvidence struct {
	AccessActivityLog            string `json:"access_activity_log"`
	BillingAddress               string `json:"billing_address"`
	CancellationPolicy           *File  `json:"cancellation_policy"`
	CancellationPolicyDisclosure string `json:"cancellation_policy_disclosure"`
	CancellationRebuttal         string `json:"cancellation_rebuttal"`
	CustomerCommunication        *File  `json:"customer_communication"`
	CustomerEmailAddress         string `json:"customer_email_address"`
	CustomerName                 string `json:"customer_name"`
	CustomerPurchaseIP           string `json:"customer_purchase_ip"`
	CustomerSignature            *File  `json:"customer_signature"`
	DuplicateChargeDocumentation *File  `json:"duplicate_charge_documentation"`
	DuplicateChargeExplanation   string `json:"duplicate_charge_explanation"`
	DuplicateChargeID            string `json:"duplicate_charge_id"`
	ProductDescription           string `json:"product_description"`
	Receipt                      *File  `json:"receipt"`
	RefundPolicy                 *File  `json:"refund_policy"`
	RefundPolicyDisclosure       string `json:"refund_policy_disclosure"`
	RefundRefusalExplanation     string `json:"refund_refusal_explanation"`
	ServiceDate                  string `json:"service_date"`
	ServiceDocumentation         *File  `json:"service_documentation"`
	ShippingAddress              string `json:"shipping_address"`
	ShippingCarrier              string `json:"shipping_carrier"`
	ShippingDate                 string `json:"shipping_date"`
	ShippingDocumentation        *File  `json:"shipping_documentation"`
	ShippingTrackingNumber       string `json:"shipping_tracking_number"`
	UncategorizedFile            *File  `json:"uncategorized_file"`
	UncategorizedText            string `json:"uncategorized_text"`
}

DisputeEvidence is the structure that contains various details about the evidence submitted for the dispute. Almost all fields are strings since there structures (i.e. address) do not typically get parsed by anyone and are thus presented as-received.

type DisputeEvidenceParams

type DisputeEvidenceParams struct {
	AccessActivityLog            *string `form:"access_activity_log"`
	BillingAddress               *string `form:"billing_address"`
	CancellationPolicy           *string `form:"cancellation_policy"`
	CancellationPolicyDisclosure *string `form:"cancellation_policy_disclosure"`
	CancellationRebuttal         *string `form:"cancellation_rebuttal"`
	CustomerCommunication        *string `form:"customer_communication"`
	CustomerEmailAddress         *string `form:"customer_email_address"`
	CustomerName                 *string `form:"customer_name"`
	CustomerPurchaseIP           *string `form:"customer_purchase_ip"`
	CustomerSignature            *string `form:"customer_signature"`
	DuplicateChargeDocumentation *string `form:"duplicate_charge_documentation"`
	DuplicateChargeExplanation   *string `form:"duplicate_charge_explanation"`
	DuplicateChargeID            *string `form:"duplicate_charge_id"`
	ProductDescription           *string `form:"product_description"`
	Receipt                      *string `form:"receipt"`
	RefundPolicy                 *string `form:"refund_policy"`
	RefundPolicyDisclosure       *string `form:"refund_policy_disclosure"`
	RefundRefusalExplanation     *string `form:"refund_refusal_explanation"`
	ServiceDate                  *string `form:"service_date"`
	ServiceDocumentation         *string `form:"service_documentation"`
	ShippingAddress              *string `form:"shipping_address"`
	ShippingCarrier              *string `form:"shipping_carrier"`
	ShippingDate                 *string `form:"shipping_date"`
	ShippingDocumentation        *string `form:"shipping_documentation"`
	ShippingTrackingNumber       *string `form:"shipping_tracking_number"`
	UncategorizedFile            *string `form:"uncategorized_file"`
	UncategorizedText            *string `form:"uncategorized_text"`
}

DisputeEvidenceParams is the set of parameters that can be used when submitting evidence for disputes.

type DisputeList

type DisputeList struct {
	APIResource
	ListMeta
	Data []*Dispute `json:"data"`
}

DisputeList is a list of disputes as retrieved from a list endpoint.

type DisputeListParams

type DisputeListParams struct {
	ListParams    `form:"*"`
	Charge        *string           `form:"charge"`
	Created       *int64            `form:"created"`
	CreatedRange  *RangeQueryParams `form:"created"`
	PaymentIntent *string           `form:"payment_intent"`
}

DisputeListParams is the set of parameters that can be used when listing disputes. For more details see https://stripe.com/docs/api#list_disputes.

type DisputeParams

type DisputeParams struct {
	Params   `form:"*"`
	Evidence *DisputeEvidenceParams `form:"evidence"`
	Submit   *bool                  `form:"submit"`
}

DisputeParams is the set of parameters that can be used when updating a dispute. For more details see https://stripe.com/docs/api#update_dispute.

type DisputeReason

type DisputeReason string

DisputeReason is the list of allowed values for a discount's reason.

const (
	DisputeReasonBankCannotProcess       DisputeReason = "bank_cannot_process"
	DisputeReasonCheckReturned           DisputeReason = "check_returned"
	DisputeReasonCreditNotProcessed      DisputeReason = "credit_not_processed"
	DisputeReasonCustomerInitiated       DisputeReason = "customer_initiated"
	DisputeReasonDebitNotAuthorized      DisputeReason = "debit_not_authorized"
	DisputeReasonDuplicate               DisputeReason = "duplicate"
	DisputeReasonFraudulent              DisputeReason = "fraudulent"
	DisputeReasonGeneral                 DisputeReason = "general"
	DisputeReasonIncorrectAccountDetails DisputeReason = "incorrect_account_details"
	DisputeReasonInsufficientFunds       DisputeReason = "insufficient_funds"
	DisputeReasonProductNotReceived      DisputeReason = "product_not_received"
	DisputeReasonProductUnacceptable     DisputeReason = "product_unacceptable"
	DisputeReasonSubscriptionCanceled    DisputeReason = "subscription_canceled"
	DisputeReasonUnrecognized            DisputeReason = "unrecognized"
)

List of values that DisputeReason can take.

type DisputeStatus

type DisputeStatus string

DisputeStatus is the list of allowed values for a discount's status.

const (
	DisputeStatusChargeRefunded       DisputeStatus = "charge_refunded"
	DisputeStatusLost                 DisputeStatus = "lost"
	DisputeStatusNeedsResponse        DisputeStatus = "needs_response"
	DisputeStatusUnderReview          DisputeStatus = "under_review"
	DisputeStatusWarningClosed        DisputeStatus = "warning_closed"
	DisputeStatusWarningNeedsResponse DisputeStatus = "warning_needs_response"
	DisputeStatusWarningUnderReview   DisputeStatus = "warning_under_review"
	DisputeStatusWon                  DisputeStatus = "won"
)

List of values that DisputeStatus can take.

type DocumentsCompanyAuthorizationParams added in v72.47.0

type DocumentsCompanyAuthorizationParams struct {
	Files []*string `form:"files"`
}

One or more documents that demonstrate proof that this person is authorized to represent the company.

type DocumentsParams added in v72.47.0

type DocumentsParams struct {
	CompanyAuthorization *DocumentsCompanyAuthorizationParams `form:"company_authorization"`
	Passport             *DocumentsPassportParams             `form:"passport"`
	Visa                 *DocumentsVisaParams                 `form:"visa"`
}

Documents that may be submitted to satisfy various informational requests.

type DocumentsPassportParams added in v72.47.0

type DocumentsPassportParams struct {
	Files []*string `form:"files"`
}

One or more documents showing the person's passport page with photo and personal data.

type DocumentsVisaParams added in v72.47.0

type DocumentsVisaParams struct {
	Files []*string `form:"files"`
}

One or more documents showing the person's visa required for living in the country where they are residing.

type EphemeralKey

type EphemeralKey struct {
	APIResource
	AssociatedObjects []struct {
		ID   string `json:"id"`
		Type string `json:"type"`
	} `json:"associated_objects"`
	Created  int64  `json:"created"`
	Expires  int64  `json:"expires"`
	ID       string `json:"id"`
	Livemode bool   `json:"livemode"`
	Object   string `json:"object"`
	Secret   string `json:"secret"`
	// RawJSON is provided so that it may be passed back to the frontend
	// unchanged.  Ephemeral keys are issued on behalf of another client which
	// may be running a different version of the bindings and thus expect a
	// different JSON structure.  This ensures that if the structure differs
	// from the version of these bindings, we can still pass back a compatible
	// key.
	RawJSON []byte `json:"-"`
}

EphemeralKey is the resource representing a Stripe ephemeral key. This is used by Mobile SDKs to for example manage a Customer's payment methods.

func (*EphemeralKey) UnmarshalJSON

func (e *EphemeralKey) UnmarshalJSON(data []byte) error

type EphemeralKeyParams

type EphemeralKeyParams struct {
	Params        `form:"*"`
	Customer      *string `form:"customer"`
	IssuingCard   *string `form:"issuing_card"`
	StripeVersion *string `form:"-"` // This goes in the `Stripe-Version` header
}

EphemeralKeyParams is the set of parameters that can be used when creating an ephemeral key.

type Error

type Error struct {
	APIResource

	ChargeID    string      `json:"charge,omitempty"`
	Code        ErrorCode   `json:"code,omitempty"`
	DeclineCode DeclineCode `json:"decline_code,omitempty"`
	DocURL      string      `json:"doc_url,omitempty"`

	// Err contains an internal error with an additional level of granularity
	// that can be used in some cases to get more detailed information about
	// what went wrong. For example, Err may hold a CardError that indicates
	// exactly what went wrong during charging a card.
	Err error `json:"-"`

	HTTPStatusCode    int               `json:"status,omitempty"`
	Msg               string            `json:"message"`
	Param             string            `json:"param,omitempty"`
	PaymentIntent     *PaymentIntent    `json:"payment_intent,omitempty"`
	PaymentMethod     *PaymentMethod    `json:"payment_method,omitempty"`
	PaymentMethodType PaymentMethodType `json:"payment_method_type,omitempty"`
	RequestID         string            `json:"request_id,omitempty"`
	SetupIntent       *SetupIntent      `json:"setup_intent,omitempty"`
	Source            *PaymentSource    `json:"source,omitempty"`
	Type              ErrorType         `json:"type"`

	// OAuth specific Error properties. Named OAuthError because of name conflict.
	OAuthError            string `json:"error,omitempty"`
	OAuthErrorDescription string `json:"error_description,omitempty"`
}

Error is the response returned when a call is unsuccessful. For more details see https://stripe.com/docs/api#errors.

func (*Error) Error

func (e *Error) Error() string

Error serializes the error object to JSON and returns it as a string.

func (*Error) Unwrap added in v72.79.0

func (e *Error) Unwrap() error

Unwrap returns the wrapped typed error.

type ErrorCode

type ErrorCode string

ErrorCode is the list of allowed values for the error's code.

const (
	ErrorCodeAccountAlreadyExists                   ErrorCode = "account_already_exists"
	ErrorCodeAccountCountryInvalidAddress           ErrorCode = "account_country_invalid_address"
	ErrorCodeAccountInvalid                         ErrorCode = "account_invalid"
	ErrorCodeAccountNumberInvalid                   ErrorCode = "account_number_invalid"
	ErrorCodeAlipayUpgradeRequired                  ErrorCode = "alipay_upgrade_required"
	ErrorCodeAmountTooLarge                         ErrorCode = "amount_too_large"
	ErrorCodeAmountTooSmall                         ErrorCode = "amount_too_small"
	ErrorCodeAPIKeyExpired                          ErrorCode = "api_key_expired"
	ErrorCodeAuthenticationRequired                 ErrorCode = "authentication_required"
	ErrorCodeBalanceInsufficient                    ErrorCode = "balance_insufficient"
	ErrorCodeBankAccountDeclined                    ErrorCode = "bank_account_declined"
	ErrorCodeBankAccountExists                      ErrorCode = "bank_account_exists"
	ErrorCodeBankAccountUnusable                    ErrorCode = "bank_account_unusable"
	ErrorCodeBankAccountUnverified                  ErrorCode = "bank_account_unverified"
	ErrorCodeBankAccountVerificationFailed          ErrorCode = "bank_account_verification_failed"
	ErrorCodeBitcoinUpgradeRequired                 ErrorCode = "bitcoin_upgrade_required"
	ErrorCodeCardDeclinedRateLimitExceeded          ErrorCode = "card_decline_rate_limit_exceeded"
	ErrorCodeCardDeclined                           ErrorCode = "card_declined"
	ErrorCodeChargeAlreadyCaptured                  ErrorCode = "charge_already_captured"
	ErrorCodeChargeAlreadyRefunded                  ErrorCode = "charge_already_refunded"
	ErrorCodeChargeDisputed                         ErrorCode = "charge_disputed"
	ErrorCodeChargeExceedsSourceLimit               ErrorCode = "charge_exceeds_source_limit"
	ErrorCodeChargeExpiredForCapture                ErrorCode = "charge_expired_for_capture"
	ErrorCodeChargeInvalidParameter                 ErrorCode = "charge_invalid_parameter"
	ErrorCodeCountryUnsupported                     ErrorCode = "country_unsupported"
	ErrorCodeCouponExpired                          ErrorCode = "coupon_expired"
	ErrorCodeCustomerMaxPaymentMethods              ErrorCode = "customer_max_payment_methods"
	ErrorCodeCustomerMaxSubscriptions               ErrorCode = "customer_max_subscriptions"
	ErrorCodeEmailInvalid                           ErrorCode = "email_invalid"
	ErrorCodeExpiredCard                            ErrorCode = "expired_card"
	ErrorCodeIdempotencyKeyInUse                    ErrorCode = "idempotency_key_in_use"
	ErrorCodeIncorrectAddress                       ErrorCode = "incorrect_address"
	ErrorCodeIncorrectCVC                           ErrorCode = "incorrect_cvc"
	ErrorCodeIncorrectNumber                        ErrorCode = "incorrect_number"
	ErrorCodeIncorrectZip                           ErrorCode = "incorrect_zip"
	ErrorCodeInstantPayoutsUnsupported              ErrorCode = "instant_payouts_unsupported"
	ErrorCodeInvalidCardType                        ErrorCode = "invalid_card_type"
	ErrorCodeInvalidCharacters                      ErrorCode = "invalid_characters"
	ErrorCodeInvalidChargeAmount                    ErrorCode = "invalid_charge_amount"
	ErrorCodeInvalidCVC                             ErrorCode = "invalid_cvc"
	ErrorCodeInvalidExpiryMonth                     ErrorCode = "invalid_expiry_month"
	ErrorCodeInvalidExpiryYear                      ErrorCode = "invalid_expiry_year"
	ErrorCodeInvalidNumber                          ErrorCode = "invalid_number"
	ErrorCodeInvalidSourceUsage                     ErrorCode = "invalid_source_usage"
	ErrorCodeInvoiceNoCustomerLineItems             ErrorCode = "invoice_no_customer_line_items"
	ErrorCodeInvoiceNoSubscriptionLineItems         ErrorCode = "invoice_no_subscription_line_items"
	ErrorCodeInvoiceNotEditable                     ErrorCode = "invoice_not_editable"
	ErrorCodeInvoicePamentIntentRequiresAction      ErrorCode = "invoice_payment_intent_requires_action"
	ErrorCodeInvoiceUpcomingNone                    ErrorCode = "invoice_upcoming_none"
	ErrorCodeLivemodeMismatch                       ErrorCode = "livemode_mismatch"
	ErrorCodeLockTimeout                            ErrorCode = "lock_timeout"
	ErrorCodeMissing                                ErrorCode = "missing"
	ErrorCodeNotAllowedOnStandardAccount            ErrorCode = "not_allowed_on_standard_account"
	ErrorCodeOrderCreationFailed                    ErrorCode = "order_creation_failed"
	ErrorCodeOrderRequiredSettings                  ErrorCode = "order_required_settings"
	ErrorCodeOrderStatusInvalid                     ErrorCode = "order_status_invalid"
	ErrorCodeOrderUpstreamTimeout                   ErrorCode = "order_upstream_timeout"
	ErrorCodeOutOfInventory                         ErrorCode = "out_of_inventory"
	ErrorCodeParameterInvalidEmpty                  ErrorCode = "parameter_invalid_empty"
	ErrorCodeParameterInvalidInteger                ErrorCode = "parameter_invalid_integer"
	ErrorCodeParameterInvalidStringBlank            ErrorCode = "parameter_invalid_string_blank"
	ErrorCodeParameterInvalidStringEmpty            ErrorCode = "parameter_invalid_string_empty"
	ErrorCodeParameterMissing                       ErrorCode = "parameter_missing"
	ErrorCodeParameterUnknown                       ErrorCode = "parameter_unknown"
	ErrorCodeParametersExclusive                    ErrorCode = "parameters_exclusive"
	ErrorCodePaymentIntentActionRequired            ErrorCode = "payment_intent_action_required"
	ErrorCodePaymentIntentAuthenticationFailure     ErrorCode = "payment_intent_authentication_failure"
	ErrorCodePaymentIntentIncompatiblePaymentMethod ErrorCode = "payment_intent_incompatible_payment_method"
	ErrorCodePaymentIntentInvalidParameter          ErrorCode = "payment_intent_invalid_parameter"
	ErrorCodePaymentIntentPaymentAttemptFailed      ErrorCode = "payment_intent_payment_attempt_failed"
	ErrorCodePaymentIntentUnexpectedState           ErrorCode = "payment_intent_unexpected_state"
	ErrorCodePaymentMethodUnactivated               ErrorCode = "payment_method_unactivated"
	ErrorCodePaymentMethodUnexpectedState           ErrorCode = "payment_method_unexpected_state"
	ErrorCodePayoutsNotAllowed                      ErrorCode = "payouts_not_allowed"
	ErrorCodePlatformAPIKeyExpired                  ErrorCode = "platform_api_key_expired"
	ErrorCodePostalCodeInvalid                      ErrorCode = "postal_code_invalid"
	ErrorCodeProcessingError                        ErrorCode = "processing_error"
	ErrorCodeProductInactive                        ErrorCode = "product_inactive"
	ErrorCodeRateLimit                              ErrorCode = "rate_limit"
	ErrorCodeResourceAlreadyExists                  ErrorCode = "resource_already_exists"
	ErrorCodeResourceMissing                        ErrorCode = "resource_missing"
	ErrorCodeRoutingNumberInvalid                   ErrorCode = "routing_number_invalid"
	ErrorCodeSecretKeyRequired                      ErrorCode = "secret_key_required"
	ErrorCodeSepaUnsupportedAccount                 ErrorCode = "sepa_unsupported_account"
	ErrorCodeSetupAttemptFailed                     ErrorCode = "setup_attempt_failed"
	ErrorCodeSetupIntentAuthenticationFailure       ErrorCode = "setup_intent_authentication_failure"
	ErrorCodeSetupIntentInvalidParameter            ErrorCode = "setup_intent_invalid_parameter"
	ErrorCodeSetupIntentUnexpectedState             ErrorCode = "setup_intent_unexpected_state"
	ErrorCodeShippingCalculationFailed              ErrorCode = "shipping_calculation_failed"
	ErrorCodeSkuInactive                            ErrorCode = "sku_inactive"
	ErrorCodeStateUnsupported                       ErrorCode = "state_unsupported"
	ErrorCodeTaxIDInvalid                           ErrorCode = "tax_id_invalid"
	ErrorCodeTaxesCalculationFailed                 ErrorCode = "taxes_calculation_failed"
	ErrorCodeTestmodeChargesOnly                    ErrorCode = "testmode_charges_only"
	ErrorCodeTLSVersionUnsupported                  ErrorCode = "tls_version_unsupported"
	ErrorCodeTokenAlreadyUsed                       ErrorCode = "token_already_used"
	ErrorCodeTokenInUse                             ErrorCode = "token_in_use"
	ErrorCodeTransfersNotAllowed                    ErrorCode = "transfers_not_allowed"
	ErrorCodeUpstreamOrderCreationFailed            ErrorCode = "upstream_order_creation_failed"
	ErrorCodeURLInvalid                             ErrorCode = "url_invalid"

	// The following error code can be returned though is undocumented
	ErrorCodeInvalidSwipeData ErrorCode = "invalid_swipe_data"
)

List of values that ErrorCode can take.

type ErrorType

type ErrorType string

ErrorType is the list of allowed values for the error's type.

const (
	ErrorTypeAPI            ErrorType = "api_error"
	ErrorTypeAPIConnection  ErrorType = "api_connection_error"
	ErrorTypeAuthentication ErrorType = "authentication_error"
	ErrorTypeCard           ErrorType = "card_error"
	ErrorTypeIdempotency    ErrorType = "idempotency_error"
	ErrorTypeInvalidRequest ErrorType = "invalid_request_error"
	ErrorTypePermission     ErrorType = "more_permissions_required"
	ErrorTypeRateLimit      ErrorType = "rate_limit_error"
)

List of values that ErrorType can take.

type Event

type Event struct {
	APIResource
	Account         string        `json:"account"`
	APIVersion      string        `json:"api_version"`
	Created         int64         `json:"created"`
	Data            *EventData    `json:"data"`
	ID              string        `json:"id"`
	Livemode        bool          `json:"livemode"`
	Object          string        `json:"object"`
	PendingWebhooks int64         `json:"pending_webhooks"`
	Request         *EventRequest `json:"request"`
	Type            string        `json:"type"`
}

Event is the resource representing a Stripe event. For more details see https://stripe.com/docs/api#events.

func (*Event) GetObjectValue

func (e *Event) GetObjectValue(keys ...string) string

GetObjectValue returns the value from the e.Data.Object bag based on the keys hierarchy.

func (*Event) GetPreviousValue

func (e *Event) GetPreviousValue(keys ...string) string

GetPreviousValue returns the value from the e.Data.Prev bag based on the keys hierarchy.

type EventData

type EventData struct {
	// Object is a raw mapping of the API resource contained in the event.
	// Although marked with json:"-", it's still populated independently by
	// a custom UnmarshalJSON implementation.
	Object             map[string]interface{} `json:"-"`
	PreviousAttributes map[string]interface{} `json:"previous_attributes"`
	Raw                json.RawMessage        `json:"object"`
}

EventData is the unmarshalled object as a map.

func (*EventData) UnmarshalJSON

func (e *EventData) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of the EventData. This custom unmarshaling exists so that we can keep both the map and raw data.

type EventList

type EventList struct {
	APIResource
	ListMeta
	Data []*Event `json:"data"`
}

EventList is a list of events as retrieved from a list endpoint.

type EventListParams

type EventListParams struct {
	ListParams      `form:"*"`
	Created         *int64            `form:"created"`
	CreatedRange    *RangeQueryParams `form:"created"`
	DeliverySuccess *bool             `form:"delivery_success"`
	Type            *string           `form:"type"`
	Types           []*string         `form:"types"`
}

EventListParams is the set of parameters that can be used when listing events. For more details see https://stripe.com/docs/api#list_events.

type EventParams

type EventParams struct {
	Params `form:"*"`
}

EventParams is the set of parameters that can be used when retrieving events. For more details see https://stripe.com/docs/api#retrieve_events.

type EventRequest

type EventRequest struct {
	// ID is the request ID of the request that created an event, if the event
	// was created by a request.
	ID string `json:"id"`

	// IdempotencyKey is the idempotency key of the request that created an
	// event, if the event was created by a request and if an idempotency key
	// was specified for that request.
	IdempotencyKey string `json:"idempotency_key"`
}

EventRequest contains information on a request that created an event.

type EvidenceDetails

type EvidenceDetails struct {
	DueBy           int64 `json:"due_by"`
	HasEvidence     bool  `json:"has_evidence"`
	PastDue         bool  `json:"past_due"`
	SubmissionCount int64 `json:"submission_count"`
}

EvidenceDetails is the structure representing more details about the dispute.

type ExternalAccount

type ExternalAccount struct {
	ID   string              `json:"id"`
	Type ExternalAccountType `json:"object"`

	// BankAccount is a bank account attached to an account. Populated only if
	// the external account is a bank account.
	BankAccount *BankAccount `json:"-"`
	// Card is a card attached to an account. Populated only if the external
	// account is a card.
	Card *Card `json:"-"`
}

ExternalAccount is an external account (a bank account or card) that's attached to an account. It contains fields that will be conditionally populated depending on its type.

func (*ExternalAccount) UnmarshalJSON

func (e *ExternalAccount) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an ExternalAccount. This custom unmarshaling is needed because the specific type of ExternalAccount it refers to is specified in the JSON

type ExternalAccountList

type ExternalAccountList struct {
	APIResource
	ListMeta

	// Values contains any external accounts (bank accounts and/or cards)
	// currently attached to this account.
	Data []*ExternalAccount `json:"data"`
}

ExternalAccountList is a list of external accounts that may be either bank accounts or cards.

type ExternalAccountType

type ExternalAccountType string

ExternalAccountType is the type of an external account.

const (
	ExternalAccountTypeBankAccount ExternalAccountType = "bank_account"
	ExternalAccountTypeCard        ExternalAccountType = "card"
)

List of values that ExternalAccountType can take.

type ExtraValues

type ExtraValues struct {
	url.Values `form:"-"` // See custom AppendTo implementation
}

ExtraValues are extra parameters that are attached to an API request. They're implemented as a custom type so that they can have their own AppendTo implementation.

func (ExtraValues) AppendTo

func (v ExtraValues) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom form encoding for extra parameter values.

type FeeRefund

type FeeRefund struct {
	APIResource
	Amount             int64               `json:"amount"`
	BalanceTransaction *BalanceTransaction `json:"balance_transaction"`
	Created            int64               `json:"created"`
	Currency           Currency            `json:"currency"`
	Fee                *ApplicationFee     `json:"fee"`
	ID                 string              `json:"id"`
	Metadata           map[string]string   `json:"metadata"`
	Object             string              `json:"object"`
}

FeeRefund is the resource representing a Stripe application fee refund. For more details see https://stripe.com/docs/api#fee_refunds.

func (*FeeRefund) UnmarshalJSON

func (f *FeeRefund) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a FeeRefund. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type FeeRefundList

type FeeRefundList struct {
	APIResource
	ListMeta
	Data []*FeeRefund `json:"data"`
}

FeeRefundList is a list object for application fee refunds.

type FeeRefundListParams

type FeeRefundListParams struct {
	ListParams     `form:"*"`
	ApplicationFee *string `form:"-"` // Included in URL
}

FeeRefundListParams is the set of parameters that can be used when listing application fee refunds. For more details see https://stripe.com/docs/api#list_fee_refunds.

type FeeRefundParams

type FeeRefundParams struct {
	Params         `form:"*"`
	ApplicationFee *string `form:"-"` // Included in URL
	Amount         *int64  `form:"amount"`
}

FeeRefundParams is the set of parameters that can be used when refunding an application fee. For more details see https://stripe.com/docs/api#fee_refund.

type File

type File struct {
	APIResource
	Created   int64         `json:"created"`
	ExpiresAt int64         `json:"expires_at"`
	Filename  string        `json:"filename"`
	ID        string        `json:"id"`
	Links     *FileLinkList `json:"links"`
	Object    string        `json:"object"`
	Purpose   FilePurpose   `json:"purpose"`
	Size      int64         `json:"size"`
	Title     string        `json:"title"`
	Type      string        `json:"type"`
	URL       string        `json:"url"`
}

File is the resource representing a Stripe file. For more details see https://stripe.com/docs/api#file_object.

func (*File) UnmarshalJSON

func (f *File) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a File. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type FileFileLinkDataParams

type FileFileLinkDataParams struct {
	Params    `form:"*"`
	Create    *bool  `form:"create"`
	ExpiresAt *int64 `form:"expires_at"`
}

FileFileLinkDataParams is the set of parameters allowed for the file_link_data hash.

type FileLink struct {
	APIResource
	Created   int64             `json:"created"`
	Expired   bool              `json:"expired"`
	ExpiresAt int64             `json:"expires_at"`
	File      *File             `json:"file"`
	ID        string            `json:"id"`
	Livemode  bool              `json:"livemode"`
	Metadata  map[string]string `json:"metadata"`
	Object    string            `json:"object"`
	URL       string            `json:"url"`
}

FileLink is the resource representing a Stripe file link. For more details see https://stripe.com/docs/api#file_links.

func (*FileLink) UnmarshalJSON

func (f *FileLink) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a FileLink. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type FileLinkList struct {
	APIResource
	ListMeta
	Data []*FileLink `json:"data"`
}

FileLinkList is a list of file links as retrieved from a list endpoint.

type FileLinkListParams

type FileLinkListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Expired      *bool             `form:"expired"`
	File         *string           `form:"file"`
}

FileLinkListParams is the set of parameters that can be used when listing file links.

type FileLinkParams

type FileLinkParams struct {
	Params       `form:"*"`
	ExpiresAt    *int64  `form:"expires_at"`
	ExpiresAtNow *bool   `form:"-"` // See custom AppendTo
	File         *string `form:"file"`
}

FileLinkParams is the set of parameters that can be used when creating or updating a file link.

func (*FileLinkParams) AppendTo added in v72.41.0

func (f *FileLinkParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for FileLinkParams.

type FileList

type FileList struct {
	APIResource
	ListMeta
	Data []*File `json:"data"`
}

FileList is a list of files as retrieved from a list endpoint.

type FileListParams

type FileListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Purpose      *string           `form:"purpose"`
}

FileListParams is the set of parameters that can be used when listing files. For more details see https://stripe.com/docs/api#list_files.

type FileParams

type FileParams struct {
	Params `form:"*"`

	// FileReader is a reader with the contents of the file that should be uploaded.
	FileReader io.Reader

	// Filename is just the name of the file without path information.
	Filename     *string
	Purpose      *string
	FileLinkData *FileFileLinkDataParams
}

FileParams is the set of parameters that can be used when creating a file. For more details see https://stripe.com/docs/api#create_file.

func (*FileParams) GetBody

func (f *FileParams) GetBody() (*bytes.Buffer, string, error)

GetBody gets an appropriate multipart form payload to use in a request body to create a new file.

type FilePurpose

type FilePurpose string

FilePurpose is the purpose of a particular file.

const (
	FilePurposeAccountRequirement               FilePurpose = "account_requirement"
	FilePurposeAdditionalVerification           FilePurpose = "additional_verification"
	FilePurposeBusinessIcon                     FilePurpose = "business_icon"
	FilePurposeCustomerSignature                FilePurpose = "customer_signature"
	FilePurposeDisputeEvidence                  FilePurpose = "dispute_evidence"
	FilePurposeDocumentProviderIdentityDocument FilePurpose = "document_provider_identity_document"
	FilePurposeFinanceReportRun                 FilePurpose = "finance_report_run"
	FilePurposeFoundersStockDocument            FilePurpose = "founders_stock_document"
	FilePurposeIdentityDocument                 FilePurpose = "identity_document"
	FilePurposeIdentityDocumentDownloadable     FilePurpose = "identity_document_downloadable"
	FilePurposePCIDocument                      FilePurpose = "pci_document"
	FilePurposeSelfie                           FilePurpose = "selfie"
	FilePurposeSigmaScheduledQuery              FilePurpose = "sigma_scheduled_query"
	FilePurposeTaxDocumentUserUpload            FilePurpose = "tax_document_user_upload"
)

List of values that FilePurpose can take.

type Filters

type Filters struct {
	// contains filtered or unexported fields
}

Filters is a structure that contains a collection of filters for list-related APIs.

func (*Filters) AddFilter

func (f *Filters) AddFilter(key, op, value string)

AddFilter adds a new filter with a given key, op and value.

func (Filters) AppendTo

func (f Filters) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom form encoding for filters.

type FraudDetails

type FraudDetails struct {
	StripeReport ChargeFraudStripeReport `json:"stripe_report"`
	UserReport   ChargeFraudUserReport   `json:"user_report"`
}

FraudDetails is the structure detailing fraud status.

type FraudDetailsParams

type FraudDetailsParams struct {
	UserReport *string `form:"user_report"`
}

FraudDetailsParams provides information on the fraud details for a charge.

type IdempotencyError added in v72.37.0

type IdempotencyError struct {
	// contains filtered or unexported fields
}

IdempotencyError occurs when an Idempotency-Key is re-used on a request that does not match the first request's API endpoint and parameters.

func (*IdempotencyError) Error added in v72.37.0

func (e *IdempotencyError) Error() string

Error serializes the error object to JSON and returns it as a string.

type IdentityVerificationReport added in v72.46.0

type IdentityVerificationReport struct {
	APIResource
	Created             int64                               `json:"created"`
	Document            *IdentityVerificationReportDocument `json:"document"`
	ID                  string                              `json:"id"`
	IDNumber            *IdentityVerificationReportIDNumber `json:"id_number"`
	Livemode            bool                                `json:"livemode"`
	Object              string                              `json:"object"`
	Options             *IdentityVerificationReportOptions  `json:"options"`
	Selfie              *IdentityVerificationReportSelfie   `json:"selfie"`
	Type                IdentityVerificationReportType      `json:"type"`
	VerificationSession string                              `json:"verification_session"`
}

A VerificationReport is the result of an attempt to collect and verify data from a user. The collection of verification checks performed is determined from the `type` and `options` parameters used. You can find the result of each verification check performed in the appropriate sub-resource: `document`, `id_number`, `selfie`.

Each VerificationReport contains a copy of any data collected by the user as well as reference IDs which can be used to access collected images through the [FileUpload](https://stripe.com/docs/api/files) API. To configure and create VerificationReports, use the [VerificationSession](https://stripe.com/docs/api/identity/verification_sessions) API.

Related guides: [Accessing verification results](https://stripe.com/docs/identity/verification-sessions#results).

func (*IdentityVerificationReport) UnmarshalJSON added in v72.46.0

func (i *IdentityVerificationReport) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an IdentityVerificationReport. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type IdentityVerificationReportDocument added in v72.46.0

type IdentityVerificationReportDocument struct {
	Address        *Address                                          `json:"address"`
	DOB            *IdentityVerificationReportDocumentDOB            `json:"dob"`
	Error          *IdentityVerificationReportDocumentError          `json:"error"`
	ExpirationDate *IdentityVerificationReportDocumentExpirationDate `json:"expiration_date"`
	Files          []string                                          `json:"files"`
	FirstName      string                                            `json:"first_name"`
	IssuedDate     *IdentityVerificationReportDocumentIssuedDate     `json:"issued_date"`
	IssuingCountry string                                            `json:"issuing_country"`
	LastName       string                                            `json:"last_name"`
	Number         string                                            `json:"number"`
	Status         IdentityVerificationReportDocumentStatus          `json:"status"`
	Type           IdentityVerificationReportDocumentType            `json:"type"`
}

Result from a document check

type IdentityVerificationReportDocumentDOB added in v72.46.0

type IdentityVerificationReportDocumentDOB struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

Date of birth as it appears in the document.

type IdentityVerificationReportDocumentError added in v72.46.0

type IdentityVerificationReportDocumentError struct {
	Code   IdentityVerificationReportDocumentErrorCode `json:"code"`
	Reason string                                      `json:"reason"`
}

Details on the verification error. Present when status is `unverified`.

type IdentityVerificationReportDocumentErrorCode added in v72.46.0

type IdentityVerificationReportDocumentErrorCode string
const (
	IdentityVerificationReportDocumentErrorCodeDocumentExpired          IdentityVerificationReportDocumentErrorCode = "document_expired"
	IdentityVerificationReportDocumentErrorCodeDocumentTypeNotSupported IdentityVerificationReportDocumentErrorCode = "document_type_not_supported"
	IdentityVerificationReportDocumentErrorCodeDocumentUnverifiedOther  IdentityVerificationReportDocumentErrorCode = "document_unverified_other"
)

List of values that IdentityVerificationReportDocumentErrorCode can take

type IdentityVerificationReportDocumentExpirationDate added in v72.46.0

type IdentityVerificationReportDocumentExpirationDate struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

Expiration date of the document.

type IdentityVerificationReportDocumentIssuedDate added in v72.46.0

type IdentityVerificationReportDocumentIssuedDate struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

Issued date of the document.

type IdentityVerificationReportDocumentStatus added in v72.46.0

type IdentityVerificationReportDocumentStatus string
const (
	IdentityVerificationReportDocumentStatusUnverified IdentityVerificationReportDocumentStatus = "unverified"
	IdentityVerificationReportDocumentStatusVerified   IdentityVerificationReportDocumentStatus = "verified"
)

List of values that IdentityVerificationReportDocumentStatus can take

type IdentityVerificationReportDocumentType added in v72.46.0

type IdentityVerificationReportDocumentType string
const (
	IdentityVerificationReportDocumentTypeDrivingLicense IdentityVerificationReportDocumentType = "driving_license"
	IdentityVerificationReportDocumentTypeIDCard         IdentityVerificationReportDocumentType = "id_card"
	IdentityVerificationReportDocumentTypePassport       IdentityVerificationReportDocumentType = "passport"
)

List of values that IdentityVerificationReportDocumentType can take

type IdentityVerificationReportIDNumber added in v72.46.0

type IdentityVerificationReportIDNumber struct {
	DOB          *IdentityVerificationReportIDNumberDOB         `json:"dob"`
	Error        *IdentityVerificationReportIDNumberError       `json:"error"`
	FirstName    string                                         `json:"first_name"`
	IDNumber     string                                         `json:"id_number"`
	IDNumberType IdentityVerificationReportIDNumberIDNumberType `json:"id_number_type"`
	LastName     string                                         `json:"last_name"`
	Status       IdentityVerificationReportIDNumberStatus       `json:"status"`
}

Result from an id_number check

type IdentityVerificationReportIDNumberDOB added in v72.46.0

type IdentityVerificationReportIDNumberDOB struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

Date of birth.

type IdentityVerificationReportIDNumberError added in v72.46.0

type IdentityVerificationReportIDNumberError struct {
	Code   IdentityVerificationReportIDNumberErrorCode `json:"code"`
	Reason string                                      `json:"reason"`
}

Details on the verification error. Present when status is `unverified`.

type IdentityVerificationReportIDNumberErrorCode added in v72.46.0

type IdentityVerificationReportIDNumberErrorCode string
const (
	IdentityVerificationReportIDNumberErrorCodeIDNumberInsufficientDocumentData IdentityVerificationReportIDNumberErrorCode = "id_number_insufficient_document_data"
	IdentityVerificationReportIDNumberErrorCodeIDNumberMismatch                 IdentityVerificationReportIDNumberErrorCode = "id_number_mismatch"
	IdentityVerificationReportIDNumberErrorCodeIDNumberUnverifiedOther          IdentityVerificationReportIDNumberErrorCode = "id_number_unverified_other"
)

List of values that IdentityVerificationReportIDNumberErrorCode can take

type IdentityVerificationReportIDNumberIDNumberType added in v72.46.0

type IdentityVerificationReportIDNumberIDNumberType string
const (
	IdentityVerificationReportIDNumberIDNumberTypeBRCPF  IdentityVerificationReportIDNumberIDNumberType = "br_cpf"
	IdentityVerificationReportIDNumberIDNumberTypeSGNRIC IdentityVerificationReportIDNumberIDNumberType = "sg_nric"
	IdentityVerificationReportIDNumberIDNumberTypeUSSSN  IdentityVerificationReportIDNumberIDNumberType = "us_ssn"
)

List of values that IdentityVerificationReportIDNumberIDNumberType can take

type IdentityVerificationReportIDNumberStatus added in v72.46.0

type IdentityVerificationReportIDNumberStatus string
const (
	IdentityVerificationReportIDNumberStatusUnverified IdentityVerificationReportIDNumberStatus = "unverified"
	IdentityVerificationReportIDNumberStatusVerified   IdentityVerificationReportIDNumberStatus = "verified"
)

List of values that IdentityVerificationReportIDNumberStatus can take

type IdentityVerificationReportList added in v72.46.0

type IdentityVerificationReportList struct {
	APIResource
	ListMeta
	Data []*IdentityVerificationReport `json:"data"`
}

IdentityVerificationReportList is a list of VerificationReports as retrieved from a list endpoint.

type IdentityVerificationReportListParams added in v72.46.0

type IdentityVerificationReportListParams struct {
	ListParams          `form:"*"`
	Created             *int64            `form:"created"`
	CreatedRange        *RangeQueryParams `form:"created"`
	Type                *string           `form:"type"`
	VerificationSession *string           `form:"verification_session"`
}

List all verification reports.

type IdentityVerificationReportOptions added in v72.46.0

type IdentityVerificationReportOptions struct {
	Document *IdentityVerificationReportOptionsDocument `json:"document"`
	IDNumber *IdentityVerificationReportOptionsIDNumber `json:"id_number"`
}

type IdentityVerificationReportOptionsDocument added in v72.46.0

type IdentityVerificationReportOptionsDocument struct {
	AllowedTypes          []IdentityVerificationReportOptionsDocumentAllowedType `json:"allowed_types"`
	RequireIDNumber       bool                                                   `json:"require_id_number"`
	RequireLiveCapture    bool                                                   `json:"require_live_capture"`
	RequireMatchingSelfie bool                                                   `json:"require_matching_selfie"`
}

type IdentityVerificationReportOptionsDocumentAllowedType added in v72.46.0

type IdentityVerificationReportOptionsDocumentAllowedType string
const (
	IdentityVerificationReportOptionsDocumentAllowedTypeDrivingLicense IdentityVerificationReportOptionsDocumentAllowedType = "driving_license"
	IdentityVerificationReportOptionsDocumentAllowedTypeIDCard         IdentityVerificationReportOptionsDocumentAllowedType = "id_card"
	IdentityVerificationReportOptionsDocumentAllowedTypePassport       IdentityVerificationReportOptionsDocumentAllowedType = "passport"
)

List of values that IdentityVerificationReportOptionsDocumentAllowedType can take

type IdentityVerificationReportOptionsIDNumber added in v72.46.0

type IdentityVerificationReportOptionsIDNumber struct{}

type IdentityVerificationReportParams added in v72.46.0

type IdentityVerificationReportParams struct {
	Params `form:"*"`
}

Retrieves an existing VerificationReport

type IdentityVerificationReportSelfie added in v72.46.0

type IdentityVerificationReportSelfie struct {
	Document string                                 `json:"document"`
	Error    *IdentityVerificationReportSelfieError `json:"error"`
	Selfie   string                                 `json:"selfie"`
	Status   IdentityVerificationReportSelfieStatus `json:"status"`
}

Result from a selfie check

type IdentityVerificationReportSelfieError added in v72.46.0

type IdentityVerificationReportSelfieError struct {
	Code   IdentityVerificationReportSelfieErrorCode `json:"code"`
	Reason string                                    `json:"reason"`
}

Details on the verification error. Present when status is `unverified`.

type IdentityVerificationReportSelfieErrorCode added in v72.46.0

type IdentityVerificationReportSelfieErrorCode string
const (
	IdentityVerificationReportSelfieErrorCodeSelfieDocumentMissingPhoto IdentityVerificationReportSelfieErrorCode = "selfie_document_missing_photo"
	IdentityVerificationReportSelfieErrorCodeSelfieFaceMismatch         IdentityVerificationReportSelfieErrorCode = "selfie_face_mismatch"
	IdentityVerificationReportSelfieErrorCodeSelfieManipulated          IdentityVerificationReportSelfieErrorCode = "selfie_manipulated"
	IdentityVerificationReportSelfieErrorCodeSelfieUnverifiedOther      IdentityVerificationReportSelfieErrorCode = "selfie_unverified_other"
)

List of values that IdentityVerificationReportSelfieErrorCode can take

type IdentityVerificationReportSelfieStatus added in v72.46.0

type IdentityVerificationReportSelfieStatus string
const (
	IdentityVerificationReportSelfieStatusUnverified IdentityVerificationReportSelfieStatus = "unverified"
	IdentityVerificationReportSelfieStatusVerified   IdentityVerificationReportSelfieStatus = "verified"
)

List of values that IdentityVerificationReportSelfieStatus can take

type IdentityVerificationReportType added in v72.46.0

type IdentityVerificationReportType string
const (
	IdentityVerificationReportTypeDocument IdentityVerificationReportType = "document"
	IdentityVerificationReportTypeIDNumber IdentityVerificationReportType = "id_number"
)

List of values that IdentityVerificationReportType can take

type IdentityVerificationSession added in v72.46.0

type IdentityVerificationSession struct {
	APIResource
	ClientSecret           string                                      `json:"client_secret"`
	Created                int64                                       `json:"created"`
	ID                     string                                      `json:"id"`
	LastError              *IdentityVerificationSessionLastError       `json:"last_error"`
	LastVerificationReport *IdentityVerificationReport                 `json:"last_verification_report"`
	Livemode               bool                                        `json:"livemode"`
	Metadata               map[string]string                           `json:"metadata"`
	Object                 string                                      `json:"object"`
	Options                *IdentityVerificationSessionOptions         `json:"options"`
	Redaction              *IdentityVerificationSessionRedaction       `json:"redaction"`
	Status                 IdentityVerificationSessionStatus           `json:"status"`
	Type                   IdentityVerificationSessionType             `json:"type"`
	URL                    string                                      `json:"url"`
	VerifiedOutputs        *IdentityVerificationSessionVerifiedOutputs `json:"verified_outputs"`
}

A VerificationSession guides you through the process of collecting and verifying the identities of your users. It contains details about the type of verification, such as what [verification check](https://stripe.com/docs/identity/verification-checks) to perform. Only create one VerificationSession for each verification in your system.

A VerificationSession transitions through [multiple statuses](https://stripe.com/docs/identity/how-sessions-work) throughout its lifetime as it progresses through the verification flow. The VerificationSession contains the user's verified data after verification checks are complete.

Related guide: [The Verification Sessions API](https://stripe.com/docs/identity/verification-sessions)

type IdentityVerificationSessionCancelParams added in v72.46.0

type IdentityVerificationSessionCancelParams struct {
	Params `form:"*"`
}

A VerificationSession object can be canceled when it is in requires_input [status](https://stripe.com/docs/identity/how-sessions-work).

Once canceled, future submission attempts are disabled. This cannot be undone. [Learn more](https://stripe.com/docs/identity/verification-sessions#cancel).

type IdentityVerificationSessionLastError added in v72.46.0

type IdentityVerificationSessionLastError struct {
	Code   IdentityVerificationSessionLastErrorCode `json:"code"`
	Reason string                                   `json:"reason"`
}

If present, this property tells you the last error encountered when processing the verification.

type IdentityVerificationSessionLastErrorCode added in v72.46.0

type IdentityVerificationSessionLastErrorCode string
const (
	IdentityVerificationSessionLastErrorCodeAbandoned                        IdentityVerificationSessionLastErrorCode = "abandoned"
	IdentityVerificationSessionLastErrorCodeConsentDeclined                  IdentityVerificationSessionLastErrorCode = "consent_declined"
	IdentityVerificationSessionLastErrorCodeCountryNotSupported              IdentityVerificationSessionLastErrorCode = "country_not_supported"
	IdentityVerificationSessionLastErrorCodeDeviceNotSupported               IdentityVerificationSessionLastErrorCode = "device_not_supported"
	IdentityVerificationSessionLastErrorCodeDocumentExpired                  IdentityVerificationSessionLastErrorCode = "document_expired"
	IdentityVerificationSessionLastErrorCodeDocumentTypeNotSupported         IdentityVerificationSessionLastErrorCode = "document_type_not_supported"
	IdentityVerificationSessionLastErrorCodeDocumentUnverifiedOther          IdentityVerificationSessionLastErrorCode = "document_unverified_other"
	IdentityVerificationSessionLastErrorCodeIDNumberInsufficientDocumentData IdentityVerificationSessionLastErrorCode = "id_number_insufficient_document_data"
	IdentityVerificationSessionLastErrorCodeIDNumberMismatch                 IdentityVerificationSessionLastErrorCode = "id_number_mismatch"
	IdentityVerificationSessionLastErrorCodeIDNumberUnverifiedOther          IdentityVerificationSessionLastErrorCode = "id_number_unverified_other"
	IdentityVerificationSessionLastErrorCodeSelfieDocumentMissingPhoto       IdentityVerificationSessionLastErrorCode = "selfie_document_missing_photo"
	IdentityVerificationSessionLastErrorCodeSelfieFaceMismatch               IdentityVerificationSessionLastErrorCode = "selfie_face_mismatch"
	IdentityVerificationSessionLastErrorCodeSelfieManipulated                IdentityVerificationSessionLastErrorCode = "selfie_manipulated"
	IdentityVerificationSessionLastErrorCodeSelfieUnverifiedOther            IdentityVerificationSessionLastErrorCode = "selfie_unverified_other"
	IdentityVerificationSessionLastErrorCodeUnderSupportedAge                IdentityVerificationSessionLastErrorCode = "under_supported_age"
)

List of values that IdentityVerificationSessionLastErrorCode can take

type IdentityVerificationSessionList added in v72.46.0

type IdentityVerificationSessionList struct {
	APIResource
	ListMeta
	Data []*IdentityVerificationSession `json:"data"`
}

IdentityVerificationSessionList is a list of VerificationSessions as retrieved from a list endpoint.

type IdentityVerificationSessionListParams added in v72.46.0

type IdentityVerificationSessionListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Status       *string           `form:"status"`
}

Returns a list of VerificationSessions

type IdentityVerificationSessionOptions added in v72.46.0

type IdentityVerificationSessionOptions struct {
	Document *IdentityVerificationSessionOptionsDocument `json:"document"`
	IDNumber *IdentityVerificationSessionOptionsIDNumber `json:"id_number"`
}

type IdentityVerificationSessionOptionsDocument added in v72.46.0

type IdentityVerificationSessionOptionsDocument struct {
	AllowedTypes          []IdentityVerificationSessionOptionsDocumentAllowedType `json:"allowed_types"`
	RequireIDNumber       bool                                                    `json:"require_id_number"`
	RequireLiveCapture    bool                                                    `json:"require_live_capture"`
	RequireMatchingSelfie bool                                                    `json:"require_matching_selfie"`
}

type IdentityVerificationSessionOptionsDocumentAllowedType added in v72.46.0

type IdentityVerificationSessionOptionsDocumentAllowedType string
const (
	IdentityVerificationSessionOptionsDocumentAllowedTypeDrivingLicense IdentityVerificationSessionOptionsDocumentAllowedType = "driving_license"
	IdentityVerificationSessionOptionsDocumentAllowedTypeIDCard         IdentityVerificationSessionOptionsDocumentAllowedType = "id_card"
	IdentityVerificationSessionOptionsDocumentAllowedTypePassport       IdentityVerificationSessionOptionsDocumentAllowedType = "passport"
)

List of values that IdentityVerificationSessionOptionsDocumentAllowedType can take

type IdentityVerificationSessionOptionsDocumentParams added in v72.46.0

type IdentityVerificationSessionOptionsDocumentParams struct {
	AllowedTypes          []*string `form:"allowed_types"`
	RequireIDNumber       *bool     `form:"require_id_number"`
	RequireLiveCapture    *bool     `form:"require_live_capture"`
	RequireMatchingSelfie *bool     `form:"require_matching_selfie"`
}

Options that apply to the [document check](https://stripe.com/docs/identity/verification-checks?type=document).

type IdentityVerificationSessionOptionsIDNumber added in v72.46.0

type IdentityVerificationSessionOptionsIDNumber struct{}

type IdentityVerificationSessionOptionsParams added in v72.46.0

type IdentityVerificationSessionOptionsParams struct {
	Document *IdentityVerificationSessionOptionsDocumentParams `form:"document"`
}

A set of options for the session's verification checks.

type IdentityVerificationSessionParams added in v72.46.0

type IdentityVerificationSessionParams struct {
	Params    `form:"*"`
	Options   *IdentityVerificationSessionOptionsParams `form:"options"`
	ReturnURL *string                                   `form:"return_url"`
	Type      *string                                   `form:"type"`
}

Creates a VerificationSession object.

After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session's url.

If your API key is in test mode, verification checks won't actually process, though everything else will occur as if in live mode.

Related guide: [Verify your users' identity documents](https://stripe.com/docs/identity/verify-identity-documents).

type IdentityVerificationSessionRedactParams added in v72.46.0

type IdentityVerificationSessionRedactParams struct {
	Params `form:"*"`
}

Redact a VerificationSession to remove all collected information from Stripe. This will redact the VerificationSession and all objects related to it, including VerificationReports, Events, request logs, etc.

A VerificationSession object can be redacted when it is in requires_input or verified [status](https://stripe.com/docs/identity/how-sessions-work). Redacting a VerificationSession in requires_action state will automatically cancel it.

The redaction process may take up to four days. When the redaction process is in progress, the VerificationSession's redaction.status field will be set to processing; when the process is finished, it will change to redacted and an identity.verification_session.redacted event will be emitted.

Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the fields that contain personal data will be replaced by the string [redacted] or a similar placeholder. The metadata field will also be erased. Redacted objects cannot be updated or used for any purpose.

[Learn more](https://stripe.com/docs/identity/verification-sessions#redact).

type IdentityVerificationSessionRedaction added in v72.46.0

type IdentityVerificationSessionRedaction struct {
	Status IdentityVerificationSessionRedactionStatus `json:"status"`
}

Redaction status of this VerificationSession. If the VerificationSession is not redacted, this field will be null.

type IdentityVerificationSessionRedactionStatus added in v72.46.0

type IdentityVerificationSessionRedactionStatus string
const (
	IdentityVerificationSessionRedactionStatusProcessing IdentityVerificationSessionRedactionStatus = "processing"
	IdentityVerificationSessionRedactionStatusRedacted   IdentityVerificationSessionRedactionStatus = "redacted"
)

List of values that IdentityVerificationSessionRedactionStatus can take

type IdentityVerificationSessionStatus added in v72.46.0

type IdentityVerificationSessionStatus string
const (
	IdentityVerificationSessionStatusCanceled      IdentityVerificationSessionStatus = "canceled"
	IdentityVerificationSessionStatusProcessing    IdentityVerificationSessionStatus = "processing"
	IdentityVerificationSessionStatusRequiresInput IdentityVerificationSessionStatus = "requires_input"
	IdentityVerificationSessionStatusVerified      IdentityVerificationSessionStatus = "verified"
)

List of values that IdentityVerificationSessionStatus can take

type IdentityVerificationSessionType added in v72.46.0

type IdentityVerificationSessionType string
const (
	IdentityVerificationSessionTypeDocument IdentityVerificationSessionType = "document"
	IdentityVerificationSessionTypeIDNumber IdentityVerificationSessionType = "id_number"
)

List of values that IdentityVerificationSessionType can take

type IdentityVerificationSessionVerifiedOutputs added in v72.46.0

type IdentityVerificationSessionVerifiedOutputs struct {
	Address      *Address                                               `json:"address"`
	DOB          *IdentityVerificationSessionVerifiedOutputsDOB         `json:"dob"`
	FirstName    string                                                 `json:"first_name"`
	IDNumber     string                                                 `json:"id_number"`
	IDNumberType IdentityVerificationSessionVerifiedOutputsIDNumberType `json:"id_number_type"`
	LastName     string                                                 `json:"last_name"`
}

The user's verified data.

type IdentityVerificationSessionVerifiedOutputsDOB added in v72.46.0

type IdentityVerificationSessionVerifiedOutputsDOB struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

The user's verified date of birth.

type IdentityVerificationSessionVerifiedOutputsIDNumberType added in v72.46.0

type IdentityVerificationSessionVerifiedOutputsIDNumberType string
const (
	IdentityVerificationSessionVerifiedOutputsIDNumberTypeBRCPF  IdentityVerificationSessionVerifiedOutputsIDNumberType = "br_cpf"
	IdentityVerificationSessionVerifiedOutputsIDNumberTypeSGNRIC IdentityVerificationSessionVerifiedOutputsIDNumberType = "sg_nric"
	IdentityVerificationSessionVerifiedOutputsIDNumberTypeUSSSN  IdentityVerificationSessionVerifiedOutputsIDNumberType = "us_ssn"
)

List of values that IdentityVerificationSessionVerifiedOutputsIDNumberType can take

type IdentityVerificationStatus

type IdentityVerificationStatus string

IdentityVerificationStatus describes the different statuses for identity verification.

const (
	IdentityVerificationStatusPending    IdentityVerificationStatus = "pending"
	IdentityVerificationStatusUnverified IdentityVerificationStatus = "unverified"
	IdentityVerificationStatusVerified   IdentityVerificationStatus = "verified"
)

List of values that IdentityVerificationStatus can take.

type InvalidRequestError

type InvalidRequestError struct {
	// contains filtered or unexported fields
}

InvalidRequestError is an error that occurs when a request contains invalid parameters.

func (*InvalidRequestError) Error

func (e *InvalidRequestError) Error() string

Error serializes the error object to JSON and returns it as a string.

type Inventory

type Inventory struct {
	Quantity int64             `json:"quantity"`
	Type     SKUInventoryType  `json:"type"`
	Value    SKUInventoryValue `json:"value"`
}

Inventory represents the inventory options of a SKU.

type InventoryParams

type InventoryParams struct {
	Quantity *int64  `form:"quantity"`
	Type     *string `form:"type"`
	Value    *string `form:"value"`
}

InventoryParams is the set of parameters allowed as inventory on a SKU.

type Invoice

type Invoice struct {
	APIResource
	AccountCountry               string                   `json:"account_country"`
	AccountName                  string                   `json:"account_name"`
	AccountTaxIDs                []*TaxID                 `json:"account_tax_ids"`
	AmountDue                    int64                    `json:"amount_due"`
	AmountPaid                   int64                    `json:"amount_paid"`
	AmountRemaining              int64                    `json:"amount_remaining"`
	ApplicationFeeAmount         int64                    `json:"application_fee_amount"`
	AttemptCount                 int64                    `json:"attempt_count"`
	Attempted                    bool                     `json:"attempted"`
	AutoAdvance                  bool                     `json:"auto_advance"`
	AutomaticTax                 *InvoiceAutomaticTax     `json:"automatic_tax"`
	BillingReason                InvoiceBillingReason     `json:"billing_reason"`
	Charge                       *Charge                  `json:"charge"`
	CollectionMethod             *InvoiceCollectionMethod `json:"collection_method"`
	Created                      int64                    `json:"created"`
	Currency                     Currency                 `json:"currency"`
	Customer                     *Customer                `json:"customer"`
	CustomerAddress              *Address                 `json:"customer_address"`
	CustomerEmail                string                   `json:"customer_email"`
	CustomerName                 *string                  `json:"customer_name"`
	CustomerPhone                *string                  `json:"customer_phone"`
	CustomerShipping             *CustomerShippingDetails `json:"customer_shipping"`
	CustomerTaxExempt            CustomerTaxExempt        `json:"customer_tax_exempt"`
	CustomerTaxIDs               []*InvoiceCustomerTaxID  `json:"customer_tax_ids"`
	CustomFields                 []*InvoiceCustomField    `json:"custom_fields"`
	DefaultPaymentMethod         *PaymentMethod           `json:"default_payment_method"`
	DefaultSource                *PaymentSource           `json:"default_source"`
	DefaultTaxRates              []*TaxRate               `json:"default_tax_rates"`
	Deleted                      bool                     `json:"deleted"`
	Description                  string                   `json:"description"`
	Discount                     *Discount                `json:"discount"`
	Discounts                    []*Discount              `json:"discounts"`
	DueDate                      int64                    `json:"due_date"`
	EndingBalance                int64                    `json:"ending_balance"`
	Footer                       string                   `json:"footer"`
	HostedInvoiceURL             string                   `json:"hosted_invoice_url"`
	ID                           string                   `json:"id"`
	InvoicePDF                   string                   `json:"invoice_pdf"`
	LastFinalizationError        *Error                   `json:"last_finalization_error"`
	Lines                        *InvoiceLineList         `json:"lines"`
	Livemode                     bool                     `json:"livemode"`
	Metadata                     map[string]string        `json:"metadata"`
	NextPaymentAttempt           int64                    `json:"next_payment_attempt"`
	Number                       string                   `json:"number"`
	Object                       string                   `json:"object"`
	OnBehalfOf                   *Account                 `json:"on_behalf_of"`
	Paid                         bool                     `json:"paid"`
	PaidOutOfBand                bool                     `json:"paid_out_of_band"`
	PaymentIntent                *PaymentIntent           `json:"payment_intent"`
	PaymentSettings              *InvoicePaymentSettings  `json:"payment_settings"`
	PeriodEnd                    int64                    `json:"period_end"`
	PeriodStart                  int64                    `json:"period_start"`
	PostPaymentCreditNotesAmount int64                    `json:"post_payment_credit_notes_amount"`
	PrePaymentCreditNotesAmount  int64                    `json:"pre_payment_credit_notes_amount"`
	Quote                        *Quote                   `json:"quote"`
	ReceiptNumber                string                   `json:"receipt_number"`
	StartingBalance              int64                    `json:"starting_balance"`
	StatementDescriptor          string                   `json:"statement_descriptor"`
	Status                       InvoiceStatus            `json:"status"`
	StatusTransitions            InvoiceStatusTransitions `json:"status_transitions"`
	Subscription                 *Subscription            `json:"subscription"`
	SubscriptionProrationDate    int64                    `json:"subscription_proration_date"`
	Subtotal                     int64                    `json:"subtotal"`
	Tax                          int64                    `json:"tax"`
	ThreasholdReason             *InvoiceThresholdReason  `json:"threshold_reason"`
	Total                        int64                    `json:"total"`
	TotalDiscountAmounts         []*InvoiceDiscountAmount `json:"total_discount_amounts"`
	TotalTaxAmounts              []*InvoiceTaxAmount      `json:"total_tax_amounts"`
	TransferData                 *InvoiceTransferData     `json:"transfer_data"`
	WebhooksDeliveredAt          int64                    `json:"webhooks_delivered_at"`
}

Invoice is the resource representing a Stripe invoice. For more details see https://stripe.com/docs/api#invoice_object.

Example (Update)
package main

import (
	"log"

	stripe "github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/invoice"
)

func main() {
	stripe.Key = "sk_key"

	params := &stripe.InvoiceParams{
		Description: stripe.String("updated description"),
	}

	inv, err := invoice.Update("sub_example_id", params)

	if err != nil {
		log.Fatal(err)
	}

	log.Printf("%v\n", inv.Description)
}
Output:

func (*Invoice) UnmarshalJSON

func (i *Invoice) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an Invoice. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type InvoiceAutomaticTax added in v72.48.0

type InvoiceAutomaticTax struct {
	Enabled bool                      `json:"enabled"`
	Status  InvoiceAutomaticTaxStatus `json:"status"`
}

type InvoiceAutomaticTaxParams added in v72.48.0

type InvoiceAutomaticTaxParams struct {
	Enabled *bool `form:"enabled"`
}

Settings for automatic tax lookup for this invoice.

type InvoiceAutomaticTaxStatus added in v72.48.0

type InvoiceAutomaticTaxStatus string
const (
	InvoiceAutomaticTaxStatusComplete               InvoiceAutomaticTaxStatus = "complete"
	InvoiceAutomaticTaxStatusFailed                 InvoiceAutomaticTaxStatus = "failed"
	InvoiceAutomaticTaxStatusRequiresLocationInputs InvoiceAutomaticTaxStatus = "requires_location_inputs"
)

List of values that InvoiceAutomaticTaxStatus can take

type InvoiceBillingReason

type InvoiceBillingReason string

InvoiceBillingReason is the reason why a given invoice was created

const (
	InvoiceBillingReasonAutomaticPendingInvoiceItemInvoice InvoiceBillingReason = "automatic_pending_invoice_item_invoice"
	InvoiceBillingReasonManual                             InvoiceBillingReason = "manual"
	InvoiceBillingReasonQuoteAccept                        InvoiceBillingReason = "quote_accept"
	InvoiceBillingReasonSubscription                       InvoiceBillingReason = "subscription"
	InvoiceBillingReasonSubscriptionCreate                 InvoiceBillingReason = "subscription_create"
	InvoiceBillingReasonSubscriptionCycle                  InvoiceBillingReason = "subscription_cycle"
	InvoiceBillingReasonSubscriptionThreshold              InvoiceBillingReason = "subscription_threshold"
	InvoiceBillingReasonSubscriptionUpdate                 InvoiceBillingReason = "subscription_update"
	InvoiceBillingReasonUpcoming                           InvoiceBillingReason = "upcoming"
)

List of values that InvoiceBillingReason can take.

type InvoiceCollectionMethod

type InvoiceCollectionMethod string

InvoiceCollectionMethod is the type of collection method for this invoice.

const (
	InvoiceCollectionMethodChargeAutomatically InvoiceCollectionMethod = "charge_automatically"
	InvoiceCollectionMethodSendInvoice         InvoiceCollectionMethod = "send_invoice"
)

List of values that InvoiceCollectionMethod can take.

type InvoiceCustomField

type InvoiceCustomField struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

InvoiceCustomField is a structure representing a custom field on an invoice.

type InvoiceCustomFieldParams

type InvoiceCustomFieldParams struct {
	Name  *string `form:"name"`
	Value *string `form:"value"`
}

InvoiceCustomFieldParams represents the parameters associated with one custom field on an invoice.

type InvoiceCustomerTaxID

type InvoiceCustomerTaxID struct {
	Type  TaxIDType `json:"type"`
	Value string    `json:"value"`
}

InvoiceCustomerTaxID is a structure representing a customer tax id on an invoice.

type InvoiceDiscountAmount

type InvoiceDiscountAmount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

InvoiceDiscountAmount represents the aggregate amounts calculated per discount for all line items.

type InvoiceDiscountParams

type InvoiceDiscountParams struct {
	Coupon   *string `form:"coupon"`
	Discount *string `form:"discount"`
}

InvoiceDiscountParams represents the parameters associated with the discounts to apply to an invoice.

type InvoiceFinalizeParams

type InvoiceFinalizeParams struct {
	Params      `form:"*"`
	AutoAdvance *bool `form:"auto_advance"`
}

InvoiceFinalizeParams is the set of parameters that can be used when finalizing invoices.

type InvoiceItem

type InvoiceItem struct {
	APIResource
	Amount            int64             `json:"amount"`
	Currency          Currency          `json:"currency"`
	Customer          *Customer         `json:"customer"`
	Date              int64             `json:"date"`
	Deleted           bool              `json:"deleted"`
	Description       string            `json:"description"`
	Discountable      bool              `json:"discountable"`
	Discounts         []*Discount       `json:"discounts"`
	ID                string            `json:"id"`
	Invoice           *Invoice          `json:"invoice"`
	Livemode          bool              `json:"livemode"`
	Metadata          map[string]string `json:"metadata"`
	Object            string            `json:"object"`
	Period            *Period           `json:"period"`
	Plan              *Plan             `json:"plan"`
	Price             *Price            `json:"price"`
	Proration         bool              `json:"proration"`
	Quantity          int64             `json:"quantity"`
	Subscription      *Subscription     `json:"subscription"`
	SubscriptionItem  string            `json:"subscription_item"`
	TaxRates          []*TaxRate        `json:"tax_rates"`
	UnitAmount        int64             `json:"unit_amount"`
	UnitAmountDecimal float64           `json:"unit_amount_decimal,string"`
}

InvoiceItem is the resource represneting a Stripe invoice item. For more details see https://stripe.com/docs/api#invoiceitems.

func (*InvoiceItem) UnmarshalJSON

func (i *InvoiceItem) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an InvoiceItem. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type InvoiceItemDiscountParams

type InvoiceItemDiscountParams struct {
	Coupon   *string `form:"coupon"`
	Discount *string `form:"discount"`
}

InvoiceItemDiscountParams represents the parameters associated with the discounts to apply to an invoice item.

type InvoiceItemList

type InvoiceItemList struct {
	APIResource
	ListMeta
	Data []*InvoiceItem `json:"data"`
}

InvoiceItemList is a list of invoice items as retrieved from a list endpoint.

type InvoiceItemListParams

type InvoiceItemListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Customer     *string           `form:"customer"`
	Invoice      *string           `form:"invoice"`
	Pending      *bool             `form:"pending"`
}

InvoiceItemListParams is the set of parameters that can be used when listing invoice items. For more details see https://stripe.com/docs/api#list_invoiceitems.

type InvoiceItemParams

type InvoiceItemParams struct {
	Params            `form:"*"`
	Amount            *int64                       `form:"amount"`
	Currency          *string                      `form:"currency"`
	Customer          *string                      `form:"customer"`
	Description       *string                      `form:"description"`
	Discountable      *bool                        `form:"discountable"`
	Discounts         []*InvoiceItemDiscountParams `form:"discounts"`
	Invoice           *string                      `form:"invoice"`
	Period            *InvoiceItemPeriodParams     `form:"period"`
	Price             *string                      `form:"price"`
	PriceData         *InvoiceItemPriceDataParams  `form:"price_data"`
	Quantity          *int64                       `form:"quantity"`
	Subscription      *string                      `form:"subscription"`
	TaxRates          []*string                    `form:"tax_rates"`
	UnitAmount        *int64                       `form:"unit_amount"`
	UnitAmountDecimal *float64                     `form:"unit_amount_decimal,high_precision"`
}

InvoiceItemParams is the set of parameters that can be used when creating or updating an invoice item. For more details see https://stripe.com/docs/api#create_invoiceitem and https://stripe.com/docs/api#update_invoiceitem.

type InvoiceItemPeriodParams

type InvoiceItemPeriodParams struct {
	End   *int64 `form:"end"`
	Start *int64 `form:"start"`
}

InvoiceItemPeriodParams represents the period associated with that invoice item.

type InvoiceItemPriceDataParams

type InvoiceItemPriceDataParams struct {
	Currency          *string  `form:"currency"`
	Product           *string  `form:"product"`
	TaxBehavior       *string  `form:"tax_behavior"`
	UnitAmount        *int64   `form:"unit_amount"`
	UnitAmountDecimal *float64 `form:"unit_amount_decimal,high_precision"`
}

InvoiceItemPriceDataParams is a structure representing the parameters to create an inline price.

type InvoiceLine

type InvoiceLine struct {
	Amount           int64                        `json:"amount"`
	Currency         Currency                     `json:"currency"`
	Description      string                       `json:"description"`
	Discountable     bool                         `json:"discountable"`
	DiscountAmounts  []*InvoiceLineDiscountAmount `json:"discount_amounts"`
	Discounts        []*Discount                  `json:"discounts"`
	ID               string                       `json:"id"`
	InvoiceItem      string                       `json:"invoice_item"`
	Livemode         bool                         `json:"livemode"`
	Metadata         map[string]string            `json:"metadata"`
	Object           string                       `json:"object"`
	Period           *Period                      `json:"period"`
	Plan             *Plan                        `json:"plan"`
	Price            *Price                       `json:"price"`
	Proration        bool                         `json:"proration"`
	Quantity         int64                        `json:"quantity"`
	Subscription     string                       `json:"subscription"`
	SubscriptionItem string                       `json:"subscription_item"`
	TaxAmounts       []*InvoiceTaxAmount          `json:"tax_amounts"`
	TaxRates         []*TaxRate                   `json:"tax_rates"`
	Type             InvoiceLineType              `json:"type"`
	UnifiedProration bool                         `json:"unified_proration"`
}

type InvoiceLineDiscountAmount

type InvoiceLineDiscountAmount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

The amount of discount calculated per discount for this line item.

type InvoiceLineList

type InvoiceLineList struct {
	APIResource
	ListMeta
	Data []*InvoiceLine `json:"data"`
}

InvoiceLineList is a list of InvoiceLineItems as retrieved from a list endpoint.

type InvoiceLineListParams

type InvoiceLineListParams struct {
	ListParams `form:"*"`
	// ID is the invoice ID to list invoice lines for.
	ID           *string `form:"-"` // Included in URL
	Customer     *string `form:"customer"`
	Subscription *string `form:"subscription"`
}

InvoiceLineListParams is the set of parameters that can be used when listing invoice line items. For more details see https://stripe.com/docs/api#invoice_lines.

type InvoiceLineType

type InvoiceLineType string

A string identifying the type of the source of this line item, either an `invoiceitem` or a `subscription`.

const (
	InvoiceLineTypeInvoiceItem  InvoiceLineType = "invoiceitem"
	InvoiceLineTypeSubscription InvoiceLineType = "subscription"
)

List of values that InvoiceLineType can take

type InvoiceList

type InvoiceList struct {
	APIResource
	ListMeta
	Data []*Invoice `json:"data"`
}

InvoiceList is a list of invoices as retrieved from a list endpoint.

type InvoiceListParams

type InvoiceListParams struct {
	ListParams       `form:"*"`
	CollectionMethod *string           `form:"collection_method"`
	Created          *int64            `form:"created"`
	CreatedRange     *RangeQueryParams `form:"created"`
	Customer         *string           `form:"customer"`
	DueDate          *int64            `form:"due_date"`
	DueDateRange     *RangeQueryParams `form:"due_date"`
	Status           *string           `form:"status"`
	Subscription     *string           `form:"subscription"`
}

InvoiceListParams is the set of parameters that can be used when listing invoices. For more details see https://stripe.com/docs/api#list_customer_invoices.

type InvoiceMarkUncollectibleParams

type InvoiceMarkUncollectibleParams struct {
	Params `form:"*"`
}

InvoiceMarkUncollectibleParams is the set of parameters that can be used when marking invoices as uncollectible.

type InvoiceParams

type InvoiceParams struct {
	Params               `form:"*"`
	AccountTaxIDs        []*string                     `form:"account_tax_ids"`
	ApplicationFeeAmount *int64                        `form:"application_fee_amount"`
	AutoAdvance          *bool                         `form:"auto_advance"`
	AutomaticTax         *InvoiceAutomaticTaxParams    `form:"automatic_tax"`
	CollectionMethod     *string                       `form:"collection_method"`
	Customer             *string                       `form:"customer"`
	CustomFields         []*InvoiceCustomFieldParams   `form:"custom_fields"`
	DaysUntilDue         *int64                        `form:"days_until_due"`
	DefaultPaymentMethod *string                       `form:"default_payment_method"`
	DefaultSource        *string                       `form:"default_source"`
	DefaultTaxRates      []*string                     `form:"default_tax_rates"`
	Description          *string                       `form:"description"`
	Discounts            []*InvoiceDiscountParams      `form:"discounts"`
	DueDate              *int64                        `form:"due_date"`
	Footer               *string                       `form:"footer"`
	OnBehalfOf           *string                       `form:"on_behalf_of"`
	Paid                 *bool                         `form:"paid"`
	PaymentSettings      *InvoicePaymentSettingsParams `form:"payment_settings"`
	Schedule             *string                       `form:"schedule"`
	StatementDescriptor  *string                       `form:"statement_descriptor"`
	Subscription         *string                       `form:"subscription"`
	TransferData         *InvoiceTransferDataParams    `form:"transfer_data"`
	// These are all for exclusive use by GetNext.
	Coupon                                  *string                               `form:"coupon"`
	CustomerDetails                         *InvoiceUpcomingCustomerDetailsParams `form:"customer_details"`
	InvoiceItems                            []*InvoiceUpcomingInvoiceItemParams   `form:"invoice_items"`
	SubscriptionBillingCycleAnchor          *int64                                `form:"subscription_billing_cycle_anchor"`
	SubscriptionBillingCycleAnchorNow       *bool                                 `form:"-"` // See custom AppendTo
	SubscriptionBillingCycleAnchorUnchanged *bool                                 `form:"-"` // See custom AppendTo
	SubscriptionCancelAt                    *int64                                `form:"subscription_cancel_at"`
	SubscriptionCancelAtPeriodEnd           *bool                                 `form:"subscription_cancel_at_period_end"`
	SubscriptionCancelNow                   *bool                                 `form:"subscription_cancel_now"`
	SubscriptionDefaultTaxRates             []*string                             `form:"subscription_default_tax_rates"`
	SubscriptionItems                       []*SubscriptionItemsParams            `form:"subscription_items"`
	SubscriptionPlan                        *string                               `form:"subscription_plan"`
	SubscriptionProrationBehavior           *string                               `form:"subscription_proration_behavior"`
	SubscriptionProrationDate               *int64                                `form:"subscription_proration_date"`
	SubscriptionQuantity                    *int64                                `form:"subscription_quantity"`
	SubscriptionStartDate                   *int64                                `form:"subscription_start_date"`
	SubscriptionTrialEnd                    *int64                                `form:"subscription_trial_end"`
	SubscriptionTrialEndNow                 *bool                                 `form:"-"` // See custom AppendTo
	SubscriptionTrialFromPlan               *bool                                 `form:"subscription_trial_from_plan"`
}

InvoiceParams is the set of parameters that can be used when creating or updating an invoice. For more details see https://stripe.com/docs/api#create_invoice, https://stripe.com/docs/api#update_invoice.

func (*InvoiceParams) AppendTo

func (i *InvoiceParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for InvoiceParams.

type InvoicePayParams

type InvoicePayParams struct {
	Params        `form:"*"`
	Forgive       *bool   `form:"forgive"`
	OffSession    *bool   `form:"off_session"`
	PaidOutOfBand *bool   `form:"paid_out_of_band"`
	PaymentMethod *string `form:"payment_method"`
	Source        *string `form:"source"`
}

InvoicePayParams is the set of parameters that can be used when paying invoices. For more details, see: https://stripe.com/docs/api#pay_invoice.

type InvoicePaymentSettings added in v72.33.0

type InvoicePaymentSettings struct {
	PaymentMethodOptions *InvoicePaymentSettingsPaymentMethodOptions `json:"payment_method_options"`
	PaymentMethodTypes   []InvoicePaymentSettingsPaymentMethodType   `json:"payment_method_types"`
}

InvoicePaymentSettings represents configuration settings to provide to the invoice's PaymentIntent.

type InvoicePaymentSettingsParams added in v72.33.0

type InvoicePaymentSettingsParams struct {
	PaymentMethodOptions *InvoicePaymentSettingsPaymentMethodOptionsParams `form:"payment_method_options"`
	PaymentMethodTypes   []*string                                         `form:"payment_method_types"`
}

InvoicePaymentSettingsParams is the set of parameters allowed for the payment_settings on an invoice.

type InvoicePaymentSettingsPaymentMethodOptions added in v72.33.0

type InvoicePaymentSettingsPaymentMethodOptions struct {
	ACSSDebit  *InvoicePaymentSettingsPaymentMethodOptionsACSSDebit  `json:"acss_debit"`
	Bancontact *InvoicePaymentSettingsPaymentMethodOptionsBancontact `json:"bancontact"`
	Card       *InvoicePaymentSettingsPaymentMethodOptionsCard       `json:"card"`
}

InvoicePaymentSettingsPaymentMethodOptions represents payment-method-specific configuration to provide to the invoice's PaymentIntent.

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebit added in v72.65.0

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebit struct {
	MandateOptions     *InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptions    `json:"mandate_options"`
	VerificationMethod InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod `json:"verification_method"`
}

If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent.

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptions added in v72.65.0

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptions struct {
	TransactionType InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType `json:"transaction_type"`
}

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsParams added in v72.65.0

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsParams struct {
	TransactionType *string `form:"transaction_type"`
}

Additional fields for Mandate creation

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType added in v72.65.0

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType string

Transaction type of the mandate.

const (
	InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypeBusiness InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "business"
	InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypePersonal InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "personal"
)

List of values that InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType can take

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitParams added in v72.65.0

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitParams struct {
	MandateOptions     *InvoicePaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsParams `form:"mandate_options"`
	VerificationMethod *string                                                                  `form:"verification_method"`
}

If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent.

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod added in v72.65.0

type InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod string

Bank account verification method.

const (
	InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethodAutomatic     InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod = "automatic"
	InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethodInstant       InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod = "instant"
	InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethodMicrodeposits InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod = "microdeposits"
)

List of values that InvoicePaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod can take

type InvoicePaymentSettingsPaymentMethodOptionsBancontact added in v72.33.0

type InvoicePaymentSettingsPaymentMethodOptionsBancontact struct {
	PreferredLanguage string `json:"preferred_language"`
}

InvoicePaymentSettingsPaymentMethodOptionsBancontact contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent.

type InvoicePaymentSettingsPaymentMethodOptionsBancontactParams added in v72.33.0

type InvoicePaymentSettingsPaymentMethodOptionsBancontactParams struct {
	PreferredLanguage *string `form:"preferred_language"`
}

InvoicePaymentSettingsPaymentMethodOptionsBancontactParams is the set of parameters allowed for bancontact on payment_method_options on payment_settings on an invoice.

type InvoicePaymentSettingsPaymentMethodOptionsCard added in v72.33.0

type InvoicePaymentSettingsPaymentMethodOptionsCard struct {
	RequestThreeDSecure InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure `json:"request_three_d_secure"`
}

InvoicePaymentSettingsPaymentMethodOptionsCard contains details about the Card payment method options to pass to the invoice's PaymentIntent.

type InvoicePaymentSettingsPaymentMethodOptionsCardParams added in v72.33.0

type InvoicePaymentSettingsPaymentMethodOptionsCardParams struct {
	RequestThreeDSecure *string `form:"request_three_d_secure"`
}

InvoicePaymentSettingsPaymentMethodOptionsCardParams is the set of parameters allowed for payment method options when using the card payment method.

type InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure added in v72.33.0

type InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure string

InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure represents the options for requesting 3D Secure.

const (
	InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecureAny       InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure = "any"
	InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecureAutomatic InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure = "automatic"
)

List of values that InvoicePaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure can take.

type InvoicePaymentSettingsPaymentMethodOptionsParams added in v72.33.0

type InvoicePaymentSettingsPaymentMethodOptionsParams struct {
	ACSSDebit  *InvoicePaymentSettingsPaymentMethodOptionsACSSDebitParams  `form:"acss_debit"`
	Bancontact *InvoicePaymentSettingsPaymentMethodOptionsBancontactParams `form:"bancontact"`
	Card       *InvoicePaymentSettingsPaymentMethodOptionsCardParams       `form:"card"`
}

InvoicePaymentSettingsPaymentMethodOptionsParams is the set of parameters allowed for specific payment methods on an invoice's payment settings.

type InvoicePaymentSettingsPaymentMethodType added in v72.33.0

type InvoicePaymentSettingsPaymentMethodType string

InvoicePaymentSettingsPaymentMethodType represents the payment method type to provide to the invoice's PaymentIntent.

const (
	InvoicePaymentSettingsPaymentMethodTypeAchCreditTransfer  InvoicePaymentSettingsPaymentMethodType = "ach_credit_transfer"
	InvoicePaymentSettingsPaymentMethodTypeAchDebit           InvoicePaymentSettingsPaymentMethodType = "ach_debit"
	InvoicePaymentSettingsPaymentMethodTypeACSSDebit          InvoicePaymentSettingsPaymentMethodType = "acss_debit"
	InvoicePaymentSettingsPaymentMethodTypeAUBECSDebit        InvoicePaymentSettingsPaymentMethodType = "au_becs_debit"
	InvoicePaymentSettingsPaymentMethodTypeBACSDebit          InvoicePaymentSettingsPaymentMethodType = "bacs_debit"
	InvoicePaymentSettingsPaymentMethodTypeBancontact         InvoicePaymentSettingsPaymentMethodType = "bancontact"
	InvoicePaymentSettingsPaymentMethodTypeBoleto             InvoicePaymentSettingsPaymentMethodType = "boleto"
	InvoicePaymentSettingsPaymentMethodTypeCard               InvoicePaymentSettingsPaymentMethodType = "card"
	InvoicePaymentSettingsPaymentMethodTypeFPX                InvoicePaymentSettingsPaymentMethodType = "fpx"
	InvoicePaymentSettingsPaymentMethodTypeGiropay            InvoicePaymentSettingsPaymentMethodType = "giropay"
	InvoicePaymentSettingsPaymentMethodTypeIdeal              InvoicePaymentSettingsPaymentMethodType = "ideal"
	InvoicePaymentSettingsPaymentMethodTypeSepaCreditTransfer InvoicePaymentSettingsPaymentMethodType = "sepa_credit_transfer"
	InvoicePaymentSettingsPaymentMethodTypeSepaDebit          InvoicePaymentSettingsPaymentMethodType = "sepa_debit"
	InvoicePaymentSettingsPaymentMethodTypeSofort             InvoicePaymentSettingsPaymentMethodType = "sofort"
	InvoicePaymentSettingsPaymentMethodTypeWechatPay          InvoicePaymentSettingsPaymentMethodType = "wechat_pay"
)

List of values that InvoicePaymentSettingsPaymentMethodType can take.

type InvoiceSendParams

type InvoiceSendParams struct {
	Params `form:"*"`
}

InvoiceSendParams is the set of parameters that can be used when sending invoices.

type InvoiceStatus

type InvoiceStatus string

InvoiceStatus is the reason why a given invoice was created

const (
	InvoiceStatusDeleted       InvoiceStatus = "deleted"
	InvoiceStatusDraft         InvoiceStatus = "draft"
	InvoiceStatusOpen          InvoiceStatus = "open"
	InvoiceStatusPaid          InvoiceStatus = "paid"
	InvoiceStatusUncollectible InvoiceStatus = "uncollectible"
	InvoiceStatusVoid          InvoiceStatus = "void"
)

List of values that InvoiceStatus can take.

type InvoiceStatusTransitions

type InvoiceStatusTransitions struct {
	FinalizedAt           int64 `json:"finalized_at"`
	MarkedUncollectibleAt int64 `json:"marked_uncollectible_at"`
	PaidAt                int64 `json:"paid_at"`
	VoidedAt              int64 `json:"voided_at"`
}

InvoiceStatusTransitions are the timestamps at which the invoice status was updated.

type InvoiceTaxAmount

type InvoiceTaxAmount struct {
	Amount    int64    `json:"amount"`
	Inclusive bool     `json:"inclusive"`
	TaxRate   *TaxRate `json:"tax_rate"`
}

InvoiceTaxAmount is a structure representing one of the tax amounts on an invoice.

type InvoiceThresholdReason

type InvoiceThresholdReason struct {
	AmountGTE   int64                               `json:"amount_gte"`
	ItemReasons []*InvoiceThresholdReasonItemReason `json:"item_reasons"`
}

InvoiceThresholdReason is a structure representing a reason for a billing threshold.

type InvoiceThresholdReasonItemReason

type InvoiceThresholdReasonItemReason struct {
	LineItemIDs []string `json:"line_item_ids"`
	UsageGTE    int64    `json:"usage_gte"`
}

InvoiceThresholdReasonItemReason is a structure representing the line items that triggered an invoice.

type InvoiceTransferData

type InvoiceTransferData struct {
	Amount      int64    `json:"amount"`
	Destination *Account `json:"destination"`
}

InvoiceTransferData represents the information for the transfer_data associated with an invoice.

type InvoiceTransferDataParams

type InvoiceTransferDataParams struct {
	Amount      *int64  `form:"amount"`
	Destination *string `form:"destination"`
}

InvoiceTransferDataParams is the set of parameters allowed for the transfer_data hash.

type InvoiceUpcomingAutomaticTaxParams added in v72.48.0

type InvoiceUpcomingAutomaticTaxParams struct {
	Enabled *bool `form:"enabled"`
}

type InvoiceUpcomingCustomerDetailsParams added in v72.48.0

type InvoiceUpcomingCustomerDetailsParams struct {
	Address   *AddressParams                                `form:"address"`
	Shipping  *InvoiceUpcomingCustomerDetailsShippingParams `form:"shipping"`
	Tax       *InvoiceUpcomingCustomerDetailsTaxParams      `form:"tax"`
	TaxExempt *string                                       `form:"tax_exempt"`
	TaxIDs    []*InvoiceUpcomingCustomerDetailsTaxIDParams  `form:"tax_ids"`
}

Details about the customer you want to invoice or overrides for an existing customer.

type InvoiceUpcomingCustomerDetailsShippingParams added in v72.48.0

type InvoiceUpcomingCustomerDetailsShippingParams struct {
	Address *AddressParams `form:"address"`
	Name    *string        `form:"name"`
	Phone   *string        `form:"phone"`
}

The customer's shipping information. Appears on invoices emailed to this customer.

type InvoiceUpcomingCustomerDetailsTaxIDParams added in v72.48.0

type InvoiceUpcomingCustomerDetailsTaxIDParams struct {
	Type  *string `form:"type"`
	Value *string `form:"value"`
}

The customer's tax IDs.

type InvoiceUpcomingCustomerDetailsTaxParams added in v72.48.0

type InvoiceUpcomingCustomerDetailsTaxParams struct {
	IPAddress *string `form:"ip_address"`
}

Tax details about the customer.

type InvoiceUpcomingInvoiceItemParams

type InvoiceUpcomingInvoiceItemParams struct {
	Amount            *int64                                  `form:"amount"`
	Currency          *string                                 `form:"currency"`
	Description       *string                                 `form:"description"`
	Discountable      *bool                                   `form:"discountable"`
	Discounts         []*InvoiceItemDiscountParams            `form:"discounts"`
	InvoiceItem       *string                                 `form:"invoiceitem"`
	Metadata          map[string]string                       `form:"metadata"`
	Period            *InvoiceUpcomingInvoiceItemPeriodParams `form:"period"`
	Price             *string                                 `form:"price"`
	PriceData         *InvoiceItemPriceDataParams             `form:"price_data"`
	Quantity          *int64                                  `form:"quantity"`
	Schedule          *string                                 `form:"schedule"`
	TaxRates          []*string                               `form:"tax_rates"`
	UnitAmount        *int64                                  `form:"unit_amount"`
	UnitAmountDecimal *float64                                `form:"unit_amount_decimal,high_precision"`
}

InvoiceUpcomingInvoiceItemParams is the set of parameters that can be used when adding or modifying invoice items on an upcoming invoice. For more details see https://stripe.com/docs/api#upcoming_invoice-invoice_items.

type InvoiceUpcomingInvoiceItemPeriodParams

type InvoiceUpcomingInvoiceItemPeriodParams struct {
	End   *int64 `form:"end"`
	Start *int64 `form:"start"`
}

InvoiceUpcomingInvoiceItemPeriodParams represents the period associated with that invoice item

type InvoiceVoidParams

type InvoiceVoidParams struct {
	Params `form:"*"`
}

InvoiceVoidParams is the set of parameters that can be used when voiding invoices.

type IssuingAuthorization

type IssuingAuthorization struct {
	APIResource
	Amount              int64                                   `json:"amount"`
	AmountDetails       *IssuingAuthorizationAmountDetails      `json:"amount_details"`
	Approved            bool                                    `json:"approved"`
	AuthorizationMethod IssuingAuthorizationAuthorizationMethod `json:"authorization_method"`
	BalanceTransactions []*BalanceTransaction                   `json:"balance_transactions"`
	Card                *IssuingCard                            `json:"card"`
	Cardholder          *IssuingCardholder                      `json:"cardholder"`
	Created             int64                                   `json:"created"`
	Currency            Currency                                `json:"currency"`
	ID                  string                                  `json:"id"`
	Livemode            bool                                    `json:"livemode"`
	MerchantAmount      int64                                   `json:"merchant_amount"`
	MerchantCurrency    Currency                                `json:"merchant_currency"`
	MerchantData        *IssuingAuthorizationMerchantData       `json:"merchant_data"`
	Metadata            map[string]string                       `json:"metadata"`
	Object              string                                  `json:"object"`
	PendingRequest      *IssuingAuthorizationPendingRequest     `json:"pending_request"`
	RequestHistory      []*IssuingAuthorizationRequestHistory   `json:"request_history"`
	Status              IssuingAuthorizationStatus              `json:"status"`
	Transactions        []*IssuingTransaction                   `json:"transactions"`
	VerificationData    *IssuingAuthorizationVerificationData   `json:"verification_data"`
	Wallet              IssuingAuthorizationWalletType          `json:"wallet"`
}

IssuingAuthorization is the resource representing a Stripe issuing authorization.

func (*IssuingAuthorization) UnmarshalJSON

func (i *IssuingAuthorization) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an IssuingAuthorization. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type IssuingAuthorizationAmountDetails

type IssuingAuthorizationAmountDetails struct {
	ATMFee int64 `json:"atm_fee"`
}

IssuingAuthorizationAmountDetails is the resource representing the breakdown of the amount.

type IssuingAuthorizationApproveParams

type IssuingAuthorizationApproveParams struct {
	Params `form:"*"`
	Amount *int64 `form:"amount"`
}

IssuingAuthorizationApproveParams is the set of parameters that can be used when approving an issuing authorization.

type IssuingAuthorizationAuthorizationMethod

type IssuingAuthorizationAuthorizationMethod string

IssuingAuthorizationAuthorizationMethod is the list of possible values for the authorization method on an issuing authorization.

const (
	IssuingAuthorizationAuthorizationMethodChip        IssuingAuthorizationAuthorizationMethod = "chip"
	IssuingAuthorizationAuthorizationMethodContactless IssuingAuthorizationAuthorizationMethod = "contactless"
	IssuingAuthorizationAuthorizationMethodKeyedIn     IssuingAuthorizationAuthorizationMethod = "keyed_in"
	IssuingAuthorizationAuthorizationMethodOnline      IssuingAuthorizationAuthorizationMethod = "online"
	IssuingAuthorizationAuthorizationMethodSwipe       IssuingAuthorizationAuthorizationMethod = "swipe"
)

List of values that IssuingAuthorizationAuthorizationMethod can take.

type IssuingAuthorizationDeclineParams

type IssuingAuthorizationDeclineParams struct {
	Params `form:"*"`
}

IssuingAuthorizationDeclineParams is the set of parameters that can be used when declining an issuing authorization.

type IssuingAuthorizationList

type IssuingAuthorizationList struct {
	APIResource
	ListMeta
	Data []*IssuingAuthorization `json:"data"`
}

IssuingAuthorizationList is a list of issuing authorizations as retrieved from a list endpoint.

type IssuingAuthorizationListParams

type IssuingAuthorizationListParams struct {
	ListParams   `form:"*"`
	Card         *string           `form:"card"`
	Cardholder   *string           `form:"cardholder"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Status       *string           `form:"status"`
}

IssuingAuthorizationListParams is the set of parameters that can be used when listing issuing authorizations.

type IssuingAuthorizationMerchantData

type IssuingAuthorizationMerchantData struct {
	Category     string `json:"category"`
	CategoryCode string `json:"category_code"`
	City         string `json:"city"`
	Country      string `json:"country"`
	Name         string `json:"name"`
	NetworkID    string `json:"network_id"`
	PostalCode   string `json:"postal_code"`
	State        string `json:"state"`
}

IssuingAuthorizationMerchantData is the resource representing merchant data on Issuing APIs.

type IssuingAuthorizationParams

type IssuingAuthorizationParams struct {
	Params `form:"*"`
}

IssuingAuthorizationParams is the set of parameters that can be used when updating an issuing authorization.

type IssuingAuthorizationPendingRequest

type IssuingAuthorizationPendingRequest struct {
	Amount               int64                              `json:"amount"`
	AmountDetails        *IssuingAuthorizationAmountDetails `json:"amount_details"`
	Currency             Currency                           `json:"currency"`
	IsAmountControllable bool                               `json:"is_amount_controllable"`
	MerchantAmount       int64                              `json:"merchant_amount"`
	MerchantCurrency     Currency                           `json:"merchant_currency"`
}

IssuingAuthorizationPendingRequest is the resource representing details about the pending authorization request.

type IssuingAuthorizationRequestHistory

type IssuingAuthorizationRequestHistory struct {
	Amount           int64                                    `json:"amount"`
	AmountDetails    *IssuingAuthorizationAmountDetails       `json:"amount_details"`
	Approved         bool                                     `json:"approved"`
	Created          int64                                    `json:"created"`
	Currency         Currency                                 `json:"currency"`
	MerchantAmount   int64                                    `json:"merchant_amount"`
	MerchantCurrency Currency                                 `json:"merchant_currency"`
	Reason           IssuingAuthorizationRequestHistoryReason `json:"reason"`
}

IssuingAuthorizationRequestHistory is the resource representing a request history on an issuing authorization.

type IssuingAuthorizationRequestHistoryReason

type IssuingAuthorizationRequestHistoryReason string

IssuingAuthorizationRequestHistoryReason is the list of possible values for the request history reason on an issuing authorization.

const (
	IssuingAuthorizationRequestHistoryReasonAccountDisabled                IssuingAuthorizationRequestHistoryReason = "account_disabled"
	IssuingAuthorizationRequestHistoryReasonCardActive                     IssuingAuthorizationRequestHistoryReason = "card_active"
	IssuingAuthorizationRequestHistoryReasonCardInactive                   IssuingAuthorizationRequestHistoryReason = "card_inactive"
	IssuingAuthorizationRequestHistoryReasonCardholderInactive             IssuingAuthorizationRequestHistoryReason = "cardholder_inactive"
	IssuingAuthorizationRequestHistoryReasonCardholderVerificationRequired IssuingAuthorizationRequestHistoryReason = "cardholder_verification_required"
	IssuingAuthorizationRequestHistoryReasonInsufficientFunds              IssuingAuthorizationRequestHistoryReason = "insufficient_funds"
	IssuingAuthorizationRequestHistoryReasonNotAllowed                     IssuingAuthorizationRequestHistoryReason = "not_allowed"
	IssuingAuthorizationRequestHistoryReasonSpendingControls               IssuingAuthorizationRequestHistoryReason = "spending_controls"
	IssuingAuthorizationRequestHistoryReasonSuspectedFraud                 IssuingAuthorizationRequestHistoryReason = "suspected_fraud"
	IssuingAuthorizationRequestHistoryReasonVerificationFailed             IssuingAuthorizationRequestHistoryReason = "verification_failed"
	IssuingAuthorizationRequestHistoryReasonWebhookApproved                IssuingAuthorizationRequestHistoryReason = "webhook_approved"
	IssuingAuthorizationRequestHistoryReasonWebhookDeclined                IssuingAuthorizationRequestHistoryReason = "webhook_declined"
	IssuingAuthorizationRequestHistoryReasonWebhookTimeout                 IssuingAuthorizationRequestHistoryReason = "webhook_timeout"
)

List of values that IssuingAuthorizationRequestHistoryReason can take.

type IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntity

type IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntity string

IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntity is the list of possible values for the entity that owns the authorization control.

const (
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntityAccount    IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntity = "account"
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntityCard       IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntity = "card"
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntityCardholder IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntity = "cardholder"
)

List of values that IssuingAuthorizationRequestHistoryViolatedAuthorizationControlEntity can take.

type IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName

type IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName string

IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName is the list of possible values for the name associated with the authorization control.

const (
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlNameAllowedCategories IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName = "allowed_categories"
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlNameBlockedCategories IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName = "blocked_categories"
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlNameMaxAmount         IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName = "max_amount"
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlNameMaxApprovals      IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName = "max_approvals"
	IssuingAuthorizationRequestHistoryViolatedAuthorizationControlNameSpendingLimits    IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName = "spending_limits"
)

List of values that IssuingAuthorizationRequestHistoryViolatedAuthorizationControlName can take.

type IssuingAuthorizationStatus

type IssuingAuthorizationStatus string

IssuingAuthorizationStatus is the possible values for status for an issuing authorization.

const (
	IssuingAuthorizationStatusClosed   IssuingAuthorizationStatus = "closed"
	IssuingAuthorizationStatusPending  IssuingAuthorizationStatus = "pending"
	IssuingAuthorizationStatusReversed IssuingAuthorizationStatus = "reversed"
)

List of values that IssuingAuthorizationStatus can take.

type IssuingAuthorizationVerificationData

type IssuingAuthorizationVerificationData struct {
	AddressLine1Check      IssuingAuthorizationVerificationDataCheck `json:"address_line1_check"`
	AddressPostalCodeCheck IssuingAuthorizationVerificationDataCheck `json:"address_postal_code_check"`
	CVCCheck               IssuingAuthorizationVerificationDataCheck `json:"cvc_check"`
	ExpiryCheck            IssuingAuthorizationVerificationDataCheck `json:"expiry_check"`
}

IssuingAuthorizationVerificationData is the resource representing verification data on an issuing authorization.

type IssuingAuthorizationVerificationDataCheck

type IssuingAuthorizationVerificationDataCheck string

IssuingAuthorizationVerificationDataCheck is the list of possible values for result of a check for verification data on an issuing authorization.

const (
	IssuingAuthorizationVerificationDataCheckMatch       IssuingAuthorizationVerificationDataCheck = "match"
	IssuingAuthorizationVerificationDataCheckMismatch    IssuingAuthorizationVerificationDataCheck = "mismatch"
	IssuingAuthorizationVerificationDataCheckNotProvided IssuingAuthorizationVerificationDataCheck = "not_provided"
)

List of values that IssuingAuthorizationVerificationDataCheck can take.

type IssuingAuthorizationWalletType

type IssuingAuthorizationWalletType string

IssuingAuthorizationWalletType is the list of possible values for the authorization's wallet provider.

const (
	IssuingAuthorizationWalletTypeApplePay   IssuingAuthorizationWalletType = "apple_pay"
	IssuingAuthorizationWalletTypeGooglePay  IssuingAuthorizationWalletType = "google_pay"
	IssuingAuthorizationWalletTypeSamsungPay IssuingAuthorizationWalletType = "samsung_pay"
)

List of values that IssuingAuthorizationWalletType can take.

type IssuingCard

type IssuingCard struct {
	APIResource
	Brand              string                        `json:"brand"`
	CancellationReason IssuingCardCancellationReason `json:"cancellation_reason"`
	Cardholder         *IssuingCardholder            `json:"cardholder"`
	Created            int64                         `json:"created"`
	Currency           Currency                      `json:"currency"`
	CVC                string                        `json:"cvc"`
	ExpMonth           int64                         `json:"exp_month"`
	ExpYear            int64                         `json:"exp_year"`
	ID                 string                        `json:"id"`
	Last4              string                        `json:"last4"`
	Livemode           bool                          `json:"livemode"`
	Metadata           map[string]string             `json:"metadata"`
	Number             string                        `json:"number"`
	Object             string                        `json:"object"`
	ReplacedBy         *IssuingCard                  `json:"replaced_by"`
	ReplacementFor     *IssuingCard                  `json:"replacement_for"`
	ReplacementReason  IssuingCardReplacementReason  `json:"replacement_reason"`
	Shipping           *IssuingCardShipping          `json:"shipping"`
	SpendingControls   *IssuingCardSpendingControls  `json:"spending_controls"`
	Status             IssuingCardStatus             `json:"status"`
	Type               IssuingCardType               `json:"type"`
	Wallets            *IssuingCardWallets           `json:"wallets"`
}

IssuingCard is the resource representing a Stripe issuing card.

func (*IssuingCard) UnmarshalJSON

func (i *IssuingCard) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an IssuingCard. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type IssuingCardCancellationReason

type IssuingCardCancellationReason string

IssuingCardCancellationReason is the list of possible values for the cancellation reason on an issuing card.

const (
	IssuingCardCancellationReasonLost   IssuingCardCancellationReason = "lost"
	IssuingCardCancellationReasonStolen IssuingCardCancellationReason = "stolen"
)

List of values that IssuingCardReplacementReason can take.

type IssuingCardList

type IssuingCardList struct {
	APIResource
	ListMeta
	Data []*IssuingCard `json:"data"`
}

IssuingCardList is a list of issuing cards as retrieved from a list endpoint.

type IssuingCardListParams

type IssuingCardListParams struct {
	ListParams   `form:"*"`
	Cardholder   *string           `form:"cardholder"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	ExpMonth     *int64            `form:"exp_month"`
	ExpYear      *int64            `form:"exp_year"`
	Last4        *string           `form:"last4"`
	Status       *string           `form:"status"`
	Type         *string           `form:"type"`
}

IssuingCardListParams is the set of parameters that can be used when listing issuing cards.

type IssuingCardParams

type IssuingCardParams struct {
	Params            `form:"*"`
	Cardholder        *string                            `form:"cardholder"`
	Currency          *string                            `form:"currency"`
	ReplacementFor    *string                            `form:"replacement_for"`
	ReplacementReason *string                            `form:"replacement_reason"`
	Shipping          *IssuingCardShippingParams         `form:"shipping"`
	SpendingControls  *IssuingCardSpendingControlsParams `form:"spending_controls"`
	Status            *string                            `form:"status"`
	Type              *string                            `form:"type"`
	// The following parameter is only supported when updating a card
	CancellationReason *string `form:"cancellation_reason"`
}

IssuingCardParams is the set of parameters that can be used when creating or updating an issuing card.

type IssuingCardReplacementReason

type IssuingCardReplacementReason string

IssuingCardReplacementReason is the list of possible values for the replacement reason on an issuing card.

const (
	IssuingCardReplacementReasonDamaged IssuingCardReplacementReason = "damaged"
	IssuingCardReplacementReasonExpired IssuingCardReplacementReason = "expired"
	IssuingCardReplacementReasonLost    IssuingCardReplacementReason = "lost"
	IssuingCardReplacementReasonStolen  IssuingCardReplacementReason = "stolen"
)

List of values that IssuingCardReplacementReason can take.

type IssuingCardShipping

type IssuingCardShipping struct {
	Address        *Address                   `json:"address"`
	Carrier        IssuingCardShippingCarrier `json:"carrier"`
	ETA            int64                      `json:"eta"`
	Name           string                     `json:"name"`
	Service        IssuingCardShippingService `json:"service"`
	Status         IssuingCardShippingStatus  `json:"status"`
	TrackingNumber string                     `json:"tracking_number"`
	TrackingURL    string                     `json:"tracking_url"`
	Type           IssuingCardShippingType    `json:"type"`
}

IssuingCardShipping is the resource representing shipping on an issuing card.

type IssuingCardShippingCarrier

type IssuingCardShippingCarrier string

IssuingCardShippingCarrier is the list of possible values for the shipping carrier on an issuing card.

const (
	IssuingCardShippingCarrierDHL       IssuingCardShippingCarrier = "dhl"
	IssuingCardShippingCarrierFEDEX     IssuingCardShippingCarrier = "fedex"
	IssuingCardShippingCarrierRoyalMail IssuingCardShippingCarrier = "royal_mail"
	IssuingCardShippingCarrierUSPS      IssuingCardShippingCarrier = "usps"
)

List of values that IssuingCardShippingCarrier can take.

type IssuingCardShippingParams

type IssuingCardShippingParams struct {
	Address *AddressParams `form:"address"`
	Name    string         `form:"name"`
	Service *string        `form:"service"`
	Type    *string        `form:"type"`
}

IssuingCardShippingParams is the set of parameters that can be used for the shipping parameter.

type IssuingCardShippingService

type IssuingCardShippingService string

IssuingCardShippingService is the shipment service for a card.

const (
	IssuingCardShippingServiceExpress  IssuingCardShippingService = "express"
	IssuingCardShippingServicePriority IssuingCardShippingService = "priority"
	IssuingCardShippingServiceStandard IssuingCardShippingService = "standard"
)

List of values that IssuingCardShippingService can take.

type IssuingCardShippingStatus

type IssuingCardShippingStatus string

IssuingCardShippingStatus is the list of possible values for the shipping status on an issuing card.

const (
	IssuingCardShippingStatusCanceled  IssuingCardShippingStatus = "canceled"
	IssuingCardShippingStatusDelivered IssuingCardShippingStatus = "delivered"
	IssuingCardShippingStatusFailure   IssuingCardShippingStatus = "failure"
	IssuingCardShippingStatusPending   IssuingCardShippingStatus = "pending"
	IssuingCardShippingStatusReturned  IssuingCardShippingStatus = "returned"
	IssuingCardShippingStatusShipped   IssuingCardShippingStatus = "shipped"
)

List of values that IssuingCardShippingStatus can take.

type IssuingCardShippingType

type IssuingCardShippingType string

IssuingCardShippingType is the list of possible values for the shipping type on an issuing card.

const (
	IssuingCardShippingTypeBulk       IssuingCardShippingType = "bulk"
	IssuingCardShippingTypeIndividual IssuingCardShippingType = "individual"
)

List of values that IssuingCardShippingType can take.

type IssuingCardSpendingControls

type IssuingCardSpendingControls struct {
	AllowedCategories      []string                                    `json:"allowed_categories"`
	BlockedCategories      []string                                    `json:"blocked_categories"`
	SpendingLimits         []*IssuingCardSpendingControlsSpendingLimit `json:"spending_limits"`
	SpendingLimitsCurrency Currency                                    `json:"spending_limits_currency"`
}

IssuingCardSpendingControls is the resource representing spending controls for an issuing card.

type IssuingCardSpendingControlsParams

type IssuingCardSpendingControlsParams struct {
	AllowedCategories      []*string                                         `form:"allowed_categories"`
	BlockedCategories      []*string                                         `form:"blocked_categories"`
	SpendingLimits         []*IssuingCardSpendingControlsSpendingLimitParams `form:"spending_limits"`
	SpendingLimitsCurrency *string                                           `form:"spending_limits_currency"`
}

IssuingCardSpendingControlsParams is the set of parameters that can be used to configure the spending controls for an issuing card

type IssuingCardSpendingControlsSpendingLimit

type IssuingCardSpendingControlsSpendingLimit struct {
	Amount     int64                                            `json:"amount"`
	Categories []string                                         `json:"categories"`
	Interval   IssuingCardSpendingControlsSpendingLimitInterval `json:"interval"`
}

IssuingCardSpendingControlsSpendingLimit is the resource representing a spending limit for an issuing card.

type IssuingCardSpendingControlsSpendingLimitInterval

type IssuingCardSpendingControlsSpendingLimitInterval string

IssuingCardSpendingControlsSpendingLimitInterval is the list of possible values for the interval for a spending limit on an issuing card.

const (
	IssuingCardSpendingControlsSpendingLimitIntervalAllTime          IssuingCardSpendingControlsSpendingLimitInterval = "all_time"
	IssuingCardSpendingControlsSpendingLimitIntervalDaily            IssuingCardSpendingControlsSpendingLimitInterval = "daily"
	IssuingCardSpendingControlsSpendingLimitIntervalMonthly          IssuingCardSpendingControlsSpendingLimitInterval = "monthly"
	IssuingCardSpendingControlsSpendingLimitIntervalPerAuthorization IssuingCardSpendingControlsSpendingLimitInterval = "per_authorization"
	IssuingCardSpendingControlsSpendingLimitIntervalWeekly           IssuingCardSpendingControlsSpendingLimitInterval = "weekly"
	IssuingCardSpendingControlsSpendingLimitIntervalYearly           IssuingCardSpendingControlsSpendingLimitInterval = "yearly"
)

List of values that IssuingCardShippingStatus can take.

type IssuingCardSpendingControlsSpendingLimitParams

type IssuingCardSpendingControlsSpendingLimitParams struct {
	Amount     *int64    `form:"amount"`
	Categories []*string `form:"categories"`
	Interval   *string   `form:"interval"`
}

IssuingCardSpendingControlsSpendingLimitParams is the set of parameters that can be used to represent a given spending limit for an issuing card.

type IssuingCardStatus

type IssuingCardStatus string

IssuingCardStatus is the list of possible values for status on an issuing card.

const (
	IssuingCardStatusActive   IssuingCardStatus = "active"
	IssuingCardStatusCanceled IssuingCardStatus = "canceled"
	IssuingCardStatusInactive IssuingCardStatus = "inactive"
)

List of values that IssuingCardStatus can take.

type IssuingCardType

type IssuingCardType string

IssuingCardType is the type of an issuing card.

const (
	IssuingCardTypePhysical IssuingCardType = "physical"
	IssuingCardTypeVirtual  IssuingCardType = "virtual"
)

List of values that IssuingCardType can take.

type IssuingCardWallets added in v72.77.0

type IssuingCardWallets struct {
	ApplePay                 *IssuingCardWalletsApplePay  `json:"apple_pay"`
	GooglePay                *IssuingCardWalletsGooglePay `json:"google_pay"`
	PrimaryAccountIdentifier string                       `json:"primary_account_identifier"`
}

Information relating to digital wallets (like Apple Pay and Google Pay).

type IssuingCardWalletsApplePay added in v72.77.0

type IssuingCardWalletsApplePay struct {
	Eligible         bool                                       `json:"eligible"`
	IneligibleReason IssuingCardWalletsApplePayIneligibleReason `json:"ineligible_reason"`
}

type IssuingCardWalletsApplePayIneligibleReason added in v72.77.0

type IssuingCardWalletsApplePayIneligibleReason string

Reason the card is ineligible for Apple Pay

const (
	IssuingCardWalletsApplePayIneligibleReasonMissingAgreement         IssuingCardWalletsApplePayIneligibleReason = "missing_agreement"
	IssuingCardWalletsApplePayIneligibleReasonMissingCardholderContact IssuingCardWalletsApplePayIneligibleReason = "missing_cardholder_contact"
	IssuingCardWalletsApplePayIneligibleReasonUnsupportedRegion        IssuingCardWalletsApplePayIneligibleReason = "unsupported_region"
)

List of values that IssuingCardWalletsApplePayIneligibleReason can take

type IssuingCardWalletsGooglePay added in v72.77.0

type IssuingCardWalletsGooglePay struct {
	Eligible         bool                                        `json:"eligible"`
	IneligibleReason IssuingCardWalletsGooglePayIneligibleReason `json:"ineligible_reason"`
}

type IssuingCardWalletsGooglePayIneligibleReason added in v72.77.0

type IssuingCardWalletsGooglePayIneligibleReason string

Reason the card is ineligible for Google Pay

const (
	IssuingCardWalletsGooglePayIneligibleReasonMissingAgreement         IssuingCardWalletsGooglePayIneligibleReason = "missing_agreement"
	IssuingCardWalletsGooglePayIneligibleReasonMissingCardholderContact IssuingCardWalletsGooglePayIneligibleReason = "missing_cardholder_contact"
	IssuingCardWalletsGooglePayIneligibleReasonUnsupportedRegion        IssuingCardWalletsGooglePayIneligibleReason = "unsupported_region"
)

List of values that IssuingCardWalletsGooglePayIneligibleReason can take

type IssuingCardholder

type IssuingCardholder struct {
	APIResource
	Billing          *IssuingCardholderBilling          `json:"billing"`
	Company          *IssuingCardholderCompany          `json:"company"`
	Created          int64                              `json:"created"`
	Email            string                             `json:"email"`
	ID               string                             `json:"id"`
	Individual       *IssuingCardholderIndividual       `json:"individual"`
	Livemode         bool                               `json:"livemode"`
	Metadata         map[string]string                  `json:"metadata"`
	Name             string                             `json:"name"`
	Object           string                             `json:"object"`
	PhoneNumber      string                             `json:"phone_number"`
	Requirements     *IssuingCardholderRequirements     `json:"requirements"`
	SpendingControls *IssuingCardholderSpendingControls `json:"spending_controls"`
	Status           IssuingCardholderStatus            `json:"status"`
	Type             IssuingCardholderType              `json:"type"`
}

IssuingCardholder is the resource representing a Stripe issuing cardholder.

func (*IssuingCardholder) UnmarshalJSON

func (i *IssuingCardholder) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an IssuingCardholder. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type IssuingCardholderBilling

type IssuingCardholderBilling struct {
	Address *Address `json:"address"`
}

IssuingCardholderBilling is the resource representing the billing hash with the Issuing APIs.

type IssuingCardholderBillingParams

type IssuingCardholderBillingParams struct {
	Address *AddressParams `form:"address"`
}

IssuingCardholderBillingParams is the set of parameters that can be used for billing with the Issuing APIs.

type IssuingCardholderCompany

type IssuingCardholderCompany struct {
	TaxIDProvided bool `json:"tax_id_provided"`
}

IssuingCardholderCompany represents additional information about a company cardholder.

type IssuingCardholderCompanyParams

type IssuingCardholderCompanyParams struct {
	TaxID *string `form:"tax_id"`
}

IssuingCardholderCompanyParams represents additional information about a company cardholder.

type IssuingCardholderIndividual

type IssuingCardholderIndividual struct {
	DOB          *IssuingCardholderIndividualDOB          `json:"dob"`
	FirstName    string                                   `json:"first_name"`
	LastName     string                                   `json:"last_name"`
	Verification *IssuingCardholderIndividualVerification `json:"verification"`
}

IssuingCardholderIndividual represents additional information about an individual cardholder.

type IssuingCardholderIndividualDOB

type IssuingCardholderIndividualDOB struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

IssuingCardholderIndividualDOB represents the date of birth of the issuing card hoder individual.

type IssuingCardholderIndividualDOBParams

type IssuingCardholderIndividualDOBParams struct {
	Day   *int64 `form:"day"`
	Month *int64 `form:"month"`
	Year  *int64 `form:"year"`
}

IssuingCardholderIndividualDOBParams represents the date of birth of the cardholder individual.

type IssuingCardholderIndividualParams

type IssuingCardholderIndividualParams struct {
	DOB          *IssuingCardholderIndividualDOBParams          `form:"dob"`
	FirstName    *string                                        `form:"first_name"`
	LastName     *string                                        `form:"last_name"`
	Verification *IssuingCardholderIndividualVerificationParams `form:"verification"`
}

IssuingCardholderIndividualParams represents additional information about an `individual` cardholder.

type IssuingCardholderIndividualVerification

type IssuingCardholderIndividualVerification struct {
	Document *IssuingCardholderIndividualVerificationDocument `json:"document"`
}

IssuingCardholderIndividualVerification represents the Government-issued ID document for this cardholder

type IssuingCardholderIndividualVerificationDocument

type IssuingCardholderIndividualVerificationDocument struct {
	Back  *File `json:"back"`
	Front *File `json:"front"`
}

IssuingCardholderIndividualVerificationDocument represents an identifying document, either a passport or local ID card.

type IssuingCardholderIndividualVerificationDocumentParams

type IssuingCardholderIndividualVerificationDocumentParams struct {
	Back  *string `form:"back"`
	Front *string `form:"front"`
}

IssuingCardholderIndividualVerificationDocumentParams represents an identifying document, either a passport or local ID card.

type IssuingCardholderIndividualVerificationParams

type IssuingCardholderIndividualVerificationParams struct {
	Document *IssuingCardholderIndividualVerificationDocumentParams `form:"document"`
}

IssuingCardholderIndividualVerificationParams represents government-issued ID document for this cardholder.

type IssuingCardholderList

type IssuingCardholderList struct {
	APIResource
	ListMeta
	Data []*IssuingCardholder `json:"data"`
}

IssuingCardholderList is a list of issuing cardholders as retrieved from a list endpoint.

type IssuingCardholderListParams

type IssuingCardholderListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Email        *string           `form:"email"`
	PhoneNumber  *string           `form:"phone_number"`
	Status       *string           `form:"status"`
	Type         *string           `form:"type"`
}

IssuingCardholderListParams is the set of parameters that can be used when listing issuing cardholders.

type IssuingCardholderParams

type IssuingCardholderParams struct {
	Params           `form:"*"`
	Billing          *IssuingCardholderBillingParams          `form:"billing"`
	Company          *IssuingCardholderCompanyParams          `form:"company"`
	Email            *string                                  `form:"email"`
	Individual       *IssuingCardholderIndividualParams       `form:"individual"`
	Name             *string                                  `form:"name"`
	PhoneNumber      *string                                  `form:"phone_number"`
	SpendingControls *IssuingCardholderSpendingControlsParams `form:"spending_controls"`
	Status           *string                                  `form:"status"`
	Type             *string                                  `form:"type"`
}

IssuingCardholderParams is the set of parameters that can be used when creating or updating an issuing cardholder.

type IssuingCardholderRequirements

type IssuingCardholderRequirements struct {
	DisabledReason IssuingCardholderRequirementsDisabledReason `json:"disabled_reason"`
	PastDue        []string                                    `json:"past_due"`
}

IssuingCardholderRequirements contains the verification requirements for the cardholder.

type IssuingCardholderRequirementsDisabledReason

type IssuingCardholderRequirementsDisabledReason string

IssuingCardholderRequirementsDisabledReason is the possible values for the disabled reason on an issuing cardholder.

const (
	IssuingCardholderRequirementsDisabledReasonListed         IssuingCardholderRequirementsDisabledReason = "listed"
	IssuingCardholderRequirementsDisabledReasonRejectedListed IssuingCardholderRequirementsDisabledReason = "rejected.listed"
	IssuingCardholderRequirementsDisabledReasonUnderReview    IssuingCardholderRequirementsDisabledReason = "under_review"
)

List of values that IssuingCardholderRequirementsDisabledReason can take.

type IssuingCardholderSpendingControls

type IssuingCardholderSpendingControls struct {
	AllowedCategories      []string                                          `json:"allowed_categories"`
	BlockedCategories      []string                                          `json:"blocked_categories"`
	SpendingLimits         []*IssuingCardholderSpendingControlsSpendingLimit `json:"spending_limits"`
	SpendingLimitsCurrency Currency                                          `json:"spending_limits_currency"`
}

IssuingCardholderSpendingControls is the resource representing spending controls for an issuing cardholder.

type IssuingCardholderSpendingControlsParams

type IssuingCardholderSpendingControlsParams struct {
	AllowedCategories      []*string                                               `form:"allowed_categories"`
	BlockedCategories      []*string                                               `form:"blocked_categories"`
	SpendingLimits         []*IssuingCardholderSpendingControlsSpendingLimitParams `form:"spending_limits"`
	SpendingLimitsCurrency *string                                                 `form:"spending_limits_currency"`
}

IssuingCardholderSpendingControlsParams is the set of parameters that can be used to configure the spending controls for an issuing cardholder

type IssuingCardholderSpendingControlsSpendingLimit

type IssuingCardholderSpendingControlsSpendingLimit struct {
	Amount     int64                                                  `json:"amount"`
	Categories []string                                               `json:"categories"`
	Interval   IssuingCardholderSpendingControlsSpendingLimitInterval `json:"interval"`
}

IssuingCardholderSpendingControlsSpendingLimit is the resource representing a spending limit for an issuing cardholder.

type IssuingCardholderSpendingControlsSpendingLimitInterval

type IssuingCardholderSpendingControlsSpendingLimitInterval string

IssuingCardholderSpendingControlsSpendingLimitInterval is the list of possible values for the interval for a spending limit on an issuing cardholder.

const (
	IssuingCardholderSpendingControlsSpendingLimitIntervalAllTime          IssuingCardholderSpendingControlsSpendingLimitInterval = "all_time"
	IssuingCardholderSpendingControlsSpendingLimitIntervalDaily            IssuingCardholderSpendingControlsSpendingLimitInterval = "daily"
	IssuingCardholderSpendingControlsSpendingLimitIntervalMonthly          IssuingCardholderSpendingControlsSpendingLimitInterval = "monthly"
	IssuingCardholderSpendingControlsSpendingLimitIntervalPerAuthorization IssuingCardholderSpendingControlsSpendingLimitInterval = "per_authorization"
	IssuingCardholderSpendingControlsSpendingLimitIntervalWeekly           IssuingCardholderSpendingControlsSpendingLimitInterval = "weekly"
	IssuingCardholderSpendingControlsSpendingLimitIntervalYearly           IssuingCardholderSpendingControlsSpendingLimitInterval = "yearly"
)

List of values that IssuingCardShippingStatus can take.

type IssuingCardholderSpendingControlsSpendingLimitParams

type IssuingCardholderSpendingControlsSpendingLimitParams struct {
	Amount     *int64    `form:"amount"`
	Categories []*string `form:"categories"`
	Interval   *string   `form:"interval"`
}

IssuingCardholderSpendingControlsSpendingLimitParams is the set of parameters that can be used to represent a given spending limit for an issuing cardholder.

type IssuingCardholderStatus

type IssuingCardholderStatus string

IssuingCardholderStatus is the possible values for status on an issuing cardholder.

const (
	IssuingCardholderStatusActive   IssuingCardholderStatus = "active"
	IssuingCardholderStatusBlocked  IssuingCardholderStatus = "blocked"
	IssuingCardholderStatusInactive IssuingCardholderStatus = "inactive"
)

List of values that IssuingCardholderStatus can take.

type IssuingCardholderType

type IssuingCardholderType string

IssuingCardholderType is the type of an issuing cardholder.

const (
	IssuingCardholderTypeCompany    IssuingCardholderType = "company"
	IssuingCardholderTypeIndividual IssuingCardholderType = "individual"
)

List of values that IssuingCardholderType can take.

type IssuingDispute

type IssuingDispute struct {
	APIResource
	Amount              int64                   `json:"amount"`
	BalanceTransactions []*BalanceTransaction   `json:"balance_transactions"`
	Created             int64                   `json:"created"`
	Currency            Currency                `json:"currency"`
	Evidence            *IssuingDisputeEvidence `json:"evidence"`
	ID                  string                  `json:"id"`
	Livemode            bool                    `json:"livemode"`
	Metadata            map[string]string       `json:"metadata"`
	Object              string                  `json:"object"`
	Status              *IssuingDisputeStatus   `json:"status"`
	Transaction         *IssuingTransaction     `json:"transaction"`
}

IssuingDispute is the resource representing an issuing dispute.

func (*IssuingDispute) UnmarshalJSON

func (i *IssuingDispute) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an IssuingDispute. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type IssuingDisputeEvidence added in v72.1.0

type IssuingDisputeEvidence struct {
	Canceled                  *IssuingDisputeEvidenceCanceled                  `json:"canceled"`
	Duplicate                 *IssuingDisputeEvidenceDuplicate                 `json:"duplicate"`
	Fraudulent                *IssuingDisputeEvidenceFraudulent                `json:"fraudulent"`
	MerchandiseNotAsDescribed *IssuingDisputeEvidenceMerchandiseNotAsDescribed `json:"merchandise_not_as_described"`
	NotReceived               *IssuingDisputeEvidenceNotReceived               `json:"not_received"`
	Other                     *IssuingDisputeEvidenceOther                     `json:"other"`
	Reason                    IssuingDisputeEvidenceReason                     `json:"reason"`
	ServiceNotAsDescribed     *IssuingDisputeEvidenceServiceNotAsDescribed     `json:"service_not_as_described"`
}

IssuingDisputeEvidence is the resource representing the evidence of an issuing dispute.

type IssuingDisputeEvidenceCanceled added in v72.1.0

type IssuingDisputeEvidenceCanceled struct {
	AdditionalDocumentation    *File                                      `json:"additional_documentation"`
	CanceledAt                 int64                                      `json:"canceled_at"`
	CancellationPolicyProvided bool                                       `json:"cancellation_policy_provided"`
	CancellationReason         string                                     `json:"cancellation_reason"`
	ExpectedAt                 int64                                      `json:"expected_at"`
	Explanation                string                                     `json:"explanation"`
	ProductDescription         string                                     `json:"product_description"`
	ProductType                IssuingDisputeEvidenceCanceledProductType  `json:"product_type"`
	ReturnedAt                 int64                                      `json:"returned_at"`
	ReturnStatus               IssuingDisputeEvidenceCanceledReturnStatus `json:"return_status"`
}

IssuingDisputeEvidenceCanceled is the resource representing the evidence of an issuing dispute with a reason set to canceled.

type IssuingDisputeEvidenceCanceledParams added in v72.1.0

type IssuingDisputeEvidenceCanceledParams struct {
	AdditionalDocumentation    *string `form:"additional_documentation"`
	CanceledAt                 *int64  `form:"canceled_at"`
	CancellationPolicyProvided *bool   `form:"cancellation_policy_provided"`
	CancellationReason         *string `form:"cancellation_reason"`
	ExpectedAt                 *int64  `form:"expected_at"`
	Explanation                *string `form:"explanation"`
	ProductDescription         *string `form:"product_description"`
	ProductType                *string `form:"product_type"`
	ReturnedAt                 *int64  `form:"returned_at"`
	ReturnStatus               *string `form:"return_status"`
}

IssuingDisputeEvidenceCanceledParams is the resource representing the evidence of an issuing dispute with a reason set to canceled.

type IssuingDisputeEvidenceCanceledProductType added in v72.1.0

type IssuingDisputeEvidenceCanceledProductType string

IssuingDisputeEvidenceCanceledProductType is the list of allowed product types on an issuing dispute of type canceled.

const (
	IssuingDisputeEvidenceCanceledProductTypeMerchandise IssuingDisputeEvidenceCanceledProductType = "merchandise"
	IssuingDisputeEvidenceCanceledProductTypeService     IssuingDisputeEvidenceCanceledProductType = "service"
)

List of values that IssuingDisputeEvidenceProductType can take.

type IssuingDisputeEvidenceCanceledReturnStatus added in v72.1.0

type IssuingDisputeEvidenceCanceledReturnStatus string

IssuingDisputeEvidenceCanceledReturnStatus is the list of allowed return status on an issuing dispute of type canceled.

const (
	IssuingDisputeEvidenceCanceledReturnStatusMerchantRejected IssuingDisputeEvidenceCanceledReturnStatus = "merchant_rejected"
	IssuingDisputeEvidenceCanceledReturnStatusSuccessful       IssuingDisputeEvidenceCanceledReturnStatus = "successful"
)

List of values that IssuingDisputeEvidenceCanceledReturnStatus can take.

type IssuingDisputeEvidenceDuplicate added in v72.1.0

type IssuingDisputeEvidenceDuplicate struct {
	AdditionalDocumentation *File  `json:"additional_documentation"`
	CardStatement           *File  `json:"card_statement"`
	CashReceipt             *File  `json:"cash_receipt"`
	CheckImage              *File  `json:"check_image"`
	Explanation             string `json:"explanation"`
	OriginalTransaction     string `json:"original_transaction"`
}

IssuingDisputeEvidenceDuplicate is the resource representing the evidence of an issuing dispute with a reason set to duplicate.

type IssuingDisputeEvidenceDuplicateParams added in v72.1.0

type IssuingDisputeEvidenceDuplicateParams struct {
	AdditionalDocumentation *string `form:"additional_documentation"`
	CardStatement           *string `form:"card_statement"`
	CashReceipt             *string `form:"cash_receipt"`
	CheckImage              *string `form:"check_image"`
	Explanation             *string `form:"explanation"`
	OriginalTransaction     *string `form:"original_transaction"`
}

IssuingDisputeEvidenceDuplicateParams is the resource representing the evidence of an issuing dispute with a reason set to duplicate.

type IssuingDisputeEvidenceFraudulent added in v72.1.0

type IssuingDisputeEvidenceFraudulent struct {
	AdditionalDocumentation *File  `json:"additional_documentation"`
	Explanation             string `json:"explanation"`
}

IssuingDisputeEvidenceFraudulent is the resource representing the evidence of an issuing dispute with a reason set to fraudulent.

type IssuingDisputeEvidenceFraudulentParams added in v72.1.0

type IssuingDisputeEvidenceFraudulentParams struct {
	AdditionalDocumentation *string `form:"additional_documentation"`
	Explanation             *string `form:"explanation"`
}

IssuingDisputeEvidenceFraudulentParams is the resource representing the evidence of an issuing dispute with a reason set to fraudulent.

type IssuingDisputeEvidenceMerchandiseNotAsDescribed added in v72.1.0

type IssuingDisputeEvidenceMerchandiseNotAsDescribed struct {
	AdditionalDocumentation *File                                                       `json:"additional_documentation"`
	Explanation             string                                                      `json:"explanation"`
	ReceivedAt              int64                                                       `json:"received_at"`
	ReturnDescription       string                                                      `json:"return_description"`
	ReturnedAt              int64                                                       `json:"returned_at"`
	ReturnStatus            IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatus `json:"return_status"`
}

IssuingDisputeEvidenceMerchandiseNotAsDescribed is the resource representing the evidence of an issuing dispute with a reason set to merchandise not as described.

type IssuingDisputeEvidenceMerchandiseNotAsDescribedParams added in v72.1.0

type IssuingDisputeEvidenceMerchandiseNotAsDescribedParams struct {
	AdditionalDocumentation *string `form:"additional_documentation"`
	Explanation             *string `form:"explanation"`
	ReceivedAt              *int64  `form:"received_at"`
	ReturnDescription       *string `form:"return_description"`
	ReturnedAt              *int64  `form:"returned_at"`
	ReturnStatus            *string `form:"return_status"`
}

IssuingDisputeEvidenceMerchandiseNotAsDescribedParams is the resource representing the evidence of an issuing dispute with a reason set to merchandise not as described.

type IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatus added in v72.1.0

type IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatus string

IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatus is the list of allowed return status on an issuing dispute of type merchandise not as described.

const (
	IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatusMerchantRejected IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatus = "merchant_rejected"
	IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatusSuccessful       IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatus = "successful"
)

List of values that IssuingDisputeEvidenceMerchandiseNotAsDescribedReturnStatus can take.

type IssuingDisputeEvidenceNotReceived added in v72.1.0

type IssuingDisputeEvidenceNotReceived struct {
	AdditionalDocumentation *File                                        `json:"additional_documentation"`
	ExpectedAt              int64                                        `json:"expected_at"`
	Explanation             string                                       `json:"explanation"`
	ProductDescription      string                                       `json:"product_description"`
	ProductType             IssuingDisputeEvidenceNotReceivedProductType `json:"product_type"`
}

IssuingDisputeEvidenceNotReceived is the resource representing the evidence of an issuing dispute with a reason set to not received.

type IssuingDisputeEvidenceNotReceivedParams added in v72.1.0

type IssuingDisputeEvidenceNotReceivedParams struct {
	AdditionalDocumentation *string `form:"additional_documentation"`
	ExpectedAt              *int64  `form:"expected_at"`
	Explanation             *string `form:"explanation"`
	ProductDescription      *string `form:"product_description"`
	ProductType             *string `form:"product_type"`
}

IssuingDisputeEvidenceNotReceivedParams is the resource representing the evidence of an issuing dispute with a reason set to not received.

type IssuingDisputeEvidenceNotReceivedProductType added in v72.1.0

type IssuingDisputeEvidenceNotReceivedProductType string

IssuingDisputeEvidenceNotReceivedProductType is the list of allowed product types on an issuing dispute of type not received.

const (
	IssuingDisputeEvidenceNotReceivedProductTypeMerchandise IssuingDisputeEvidenceNotReceivedProductType = "merchandise"
	IssuingDisputeEvidenceNotReceivedProductTypeService     IssuingDisputeEvidenceNotReceivedProductType = "service"
)

List of values that IssuingDisputeEvidenceNotReceivedProductType can take.

type IssuingDisputeEvidenceOther added in v72.1.0

type IssuingDisputeEvidenceOther struct {
	AdditionalDocumentation *File                                  `json:"additional_documentation"`
	Explanation             string                                 `json:"explanation"`
	ProductDescription      string                                 `json:"product_description"`
	ProductType             IssuingDisputeEvidenceOtherProductType `json:"product_type"`
}

IssuingDisputeEvidenceOther is the resource representing the evidence of an issuing dispute with a reason set to other.

type IssuingDisputeEvidenceOtherParams added in v72.1.0

type IssuingDisputeEvidenceOtherParams struct {
	AdditionalDocumentation *string `form:"additional_documentation"`
	Explanation             *string `form:"explanation"`
	ProductDescription      *string `form:"product_description"`
	ProductType             *string `form:"product_type"`
}

IssuingDisputeEvidenceOtherParams is the resource representing the evidence of an issuing dispute with a reason set to other.

type IssuingDisputeEvidenceOtherProductType added in v72.1.0

type IssuingDisputeEvidenceOtherProductType string

IssuingDisputeEvidenceOtherProductType is the list of allowed product types on an issuing dispute of type other.

const (
	IssuingDisputeEvidenceOtherProductTypeMerchandise IssuingDisputeEvidenceOtherProductType = "merchandise"
	IssuingDisputeEvidenceOtherProductTypeService     IssuingDisputeEvidenceOtherProductType = "service"
)

List of values that IssuingDisputeEvidenceNotReceivedProductType can take.

type IssuingDisputeEvidenceParams added in v72.1.0

type IssuingDisputeEvidenceParams struct {
	Canceled                  *IssuingDisputeEvidenceCanceledParams                  `form:"canceled"`
	Duplicate                 *IssuingDisputeEvidenceDuplicateParams                 `form:"duplicate"`
	Fraudulent                *IssuingDisputeEvidenceFraudulentParams                `form:"fraudulent"`
	MerchandiseNotAsDescribed *IssuingDisputeEvidenceMerchandiseNotAsDescribedParams `form:"merchandise_not_as_described"`
	NotReceived               *IssuingDisputeEvidenceNotReceivedParams               `form:"not_received"`
	Other                     *IssuingDisputeEvidenceOtherParams                     `form:"other"`
	Reason                    *string                                                `form:"reason"`
	ServiceNotAsDescribed     *IssuingDisputeEvidenceServiceNotAsDescribedParams     `form:"service_not_as_described"`
}

IssuingDisputeEvidenceParams is the set of parameters for the evidence on an issuing dispute

type IssuingDisputeEvidenceReason added in v72.1.0

type IssuingDisputeEvidenceReason string

IssuingDisputeEvidenceReason is the list of allowed reasons for the evidence on an issuing dispute.

const (
	IssuingDisputeEvidenceReasonCanceled                  IssuingDisputeEvidenceReason = "canceled"
	IssuingDisputeEvidenceReasonDuplicate                 IssuingDisputeEvidenceReason = "duplicate"
	IssuingDisputeEvidenceReasonFraudulent                IssuingDisputeEvidenceReason = "fraudulent"
	IssuingDisputeEvidenceReasonMerchandiseNotAsDescribed IssuingDisputeEvidenceReason = "merchandise_not_as_described"
	IssuingDisputeEvidenceReasonNotReceived               IssuingDisputeEvidenceReason = "not_received"
	IssuingDisputeEvidenceReasonOther                     IssuingDisputeEvidenceReason = "other"
	IssuingDisputeEvidenceReasonServiceNotAsDescribed     IssuingDisputeEvidenceReason = "service_not_as_described"
)

List of values that IssuingDisputeEvidenceReason can take.

type IssuingDisputeEvidenceServiceNotAsDescribed added in v72.1.0

type IssuingDisputeEvidenceServiceNotAsDescribed struct {
	AdditionalDocumentation *File                                                  `json:"additional_documentation"`
	CanceledAt              int64                                                  `json:"canceled_at"`
	CancellationReason      string                                                 `json:"cancellation_reason"`
	Explanation             string                                                 `json:"explanation"`
	ProductDescription      string                                                 `json:"product_description"`
	ProductType             IssuingDisputeEvidenceServiceNotAsDescribedProductType `json:"product_type"`
	ReceivedAt              int64                                                  `json:"received_at"`
}

IssuingDisputeEvidenceServiceNotAsDescribed is the resource representing the evidence of an issuing dispute with a reason set to service not as described.

type IssuingDisputeEvidenceServiceNotAsDescribedParams added in v72.1.0

type IssuingDisputeEvidenceServiceNotAsDescribedParams struct {
	AdditionalDocumentation *string `form:"additional_documentation"`
	CanceledAt              *int64  `form:"canceled_at"`
	CancellationReason      *string `form:"cancellation_reason"`
	Explanation             *string `form:"explanation"`
	ProductDescription      *string `form:"product_description"`
	ProductType             *string `form:"product_type"`
	ReceivedAt              *int64  `form:"received_at"`
}

IssuingDisputeEvidenceServiceNotAsDescribedParams is the resource representing the evidence of an issuing dispute with a reason set to service not as described.

type IssuingDisputeEvidenceServiceNotAsDescribedProductType added in v72.1.0

type IssuingDisputeEvidenceServiceNotAsDescribedProductType string

IssuingDisputeEvidenceServiceNotAsDescribedProductType is the list of allowed product types on an issuing dispute of type service not as described.

const (
	IssuingDisputeEvidenceServiceNotAsDescribedProductTypeMerchandise IssuingDisputeEvidenceServiceNotAsDescribedProductType = "merchandise"
	IssuingDisputeEvidenceServiceNotAsDescribedProductTypeService     IssuingDisputeEvidenceServiceNotAsDescribedProductType = "service"
)

List of values that IssuingDisputeEvidenceServiceNotAsDescribedProductType can take.

type IssuingDisputeList

type IssuingDisputeList struct {
	APIResource
	ListMeta
	Data []*IssuingDispute `json:"data"`
}

IssuingDisputeList is a list of issuing disputes as retrieved from a list endpoint.

type IssuingDisputeListParams

type IssuingDisputeListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Status       *string           `form:"status"`
	Transaction  *string           `form:"transaction"`
}

IssuingDisputeListParams is the set of parameters that can be used when listing issuing dispute.

type IssuingDisputeParams

type IssuingDisputeParams struct {
	Params      `form:"*"`
	Evidence    *IssuingDisputeEvidenceParams `form:"evidence"`
	Transaction *string                       `form:"transaction"`
}

IssuingDisputeParams is the set of parameters that can be used when creating or updating an issuing dispute.

type IssuingDisputeStatus added in v72.1.0

type IssuingDisputeStatus string

IssuingDisputeStatus is the list of allowed values for status on an issuing dispute.

const (
	IssuingDisputeStatusExpired     IssuingDisputeStatus = "expired"
	IssuingDisputeStatusLost        IssuingDisputeStatus = "lost"
	IssuingDisputeStatusSubmitted   IssuingDisputeStatus = "submitted"
	IssuingDisputeStatusUnsubmitted IssuingDisputeStatus = "unsubmitted"
	IssuingDisputeStatusWon         IssuingDisputeStatus = "won"
)

List of values that IssuingDisputeStatus can take.

type IssuingDisputeSubmitParams added in v72.1.0

type IssuingDisputeSubmitParams struct {
	Params `form:"*"`
}

IssuingDisputeSubmitParams is the set of parameters that can be used when submitting an issuing dispute.

type IssuingTransaction

type IssuingTransaction struct {
	APIResource
	Amount             int64                              `json:"amount"`
	AmountDetails      *IssuingTransactionAmountDetails   `json:"amount_details"`
	Authorization      *IssuingAuthorization              `json:"authorization"`
	BalanceTransaction *BalanceTransaction                `json:"balance_transaction"`
	Card               *IssuingCard                       `json:"card"`
	Cardholder         *IssuingCardholder                 `json:"cardholder"`
	Created            int64                              `json:"created"`
	Currency           Currency                           `json:"currency"`
	Dispute            *IssuingDispute                    `json:"dispute"`
	ID                 string                             `json:"id"`
	Livemode           bool                               `json:"livemode"`
	MerchantAmount     int64                              `json:"merchant_amount"`
	MerchantCurrency   Currency                           `json:"merchant_currency"`
	MerchantData       *IssuingAuthorizationMerchantData  `json:"merchant_data"`
	Metadata           map[string]string                  `json:"metadata"`
	Object             string                             `json:"object"`
	PurchaseDetails    *IssuingTransactionPurchaseDetails `json:"purchase_details"`
	Type               IssuingTransactionType             `json:"type"`
	Wallet             IssuingTransactionWallet           `json:"wallet"`
}

IssuingTransaction is the resource representing a Stripe issuing transaction.

func (*IssuingTransaction) UnmarshalJSON

func (i *IssuingTransaction) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an IssuingTransaction. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type IssuingTransactionAmountDetails

type IssuingTransactionAmountDetails struct {
	ATMFee int64 `json:"atm_fee"`
}

IssuingTransactionAmountDetails is the resource representing the breakdown of the amount.

type IssuingTransactionList

type IssuingTransactionList struct {
	APIResource
	ListMeta
	Data []*IssuingTransaction `json:"data"`
}

IssuingTransactionList is a list of issuing transactions as retrieved from a list endpoint.

type IssuingTransactionListParams

type IssuingTransactionListParams struct {
	ListParams   `form:"*"`
	Card         *string           `form:"card"`
	Cardholder   *string           `form:"cardholder"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Type         *string           `form:"type"`
}

IssuingTransactionListParams is the set of parameters that can be used when listing issuing transactions.

type IssuingTransactionParams

type IssuingTransactionParams struct {
	Params `form:"*"`
}

IssuingTransactionParams is the set of parameters that can be used when creating or updating an issuing transaction.

type IssuingTransactionPurchaseDetails

type IssuingTransactionPurchaseDetails struct {
	Flight    *IssuingTransactionPurchaseDetailsFlight    `json:"flight"`
	Fuel      *IssuingTransactionPurchaseDetailsFuel      `json:"fuel"`
	Lodging   *IssuingTransactionPurchaseDetailsLodging   `json:"lodging"`
	Receipt   []*IssuingTransactionPurchaseDetailsReceipt `json:"receipt"`
	Reference string                                      `json:"reference"`
}

IssuingTransactionPurchaseDetails contains extra information provided by the merchant.

type IssuingTransactionPurchaseDetailsFlight

type IssuingTransactionPurchaseDetailsFlight struct {
	DepartureAt   int64                                             `json:"departure_at"`
	PassengerName string                                            `json:"passenger_name"`
	Refundable    bool                                              `json:"refundable"`
	Segments      []*IssuingTransactionPurchaseDetailsFlightSegment `json:"segments"`
	TravelAgency  string                                            `json:"travel_agency"`
}

IssuingTransactionPurchaseDetailsFlight contains extra information about the flight in this transaction.

type IssuingTransactionPurchaseDetailsFlightSegment

type IssuingTransactionPurchaseDetailsFlightSegment struct {
	ArrivalAirportCode   string `json:"arrival_airport_code"`
	Carrier              string `json:"carrier"`
	DepartureAirportCode string `json:"departure_airport_code"`
	FlightNumber         string `json:"flight_number"`
	ServiceClass         string `json:"service_class"`
	StopoverAllowed      bool   `json:"stopover_allowed"`
}

IssuingTransactionPurchaseDetailsFlightSegment contains extra information about the flight in this transaction.

type IssuingTransactionPurchaseDetailsFuel

type IssuingTransactionPurchaseDetailsFuel struct {
	Type            IssuingTransactionPurchaseDetailsFuelType `json:"type"`
	Unit            IssuingTransactionPurchaseDetailsFuelUnit `json:"unit"`
	UnitCostDecimal float64                                   `json:"unit_cost_decimal,string"`
	VolumeDecimal   float64                                   `json:"volume_decimal,string"`
}

IssuingTransactionPurchaseDetailsFuel contains extra information about the fuel purchase in this transaction.

type IssuingTransactionPurchaseDetailsFuelType

type IssuingTransactionPurchaseDetailsFuelType string

IssuingTransactionPurchaseDetailsFuelType is the type of fuel purchased in a transaction.

const (
	IssuingTransactionPurchaseDetailsFuelTypeDiesel          IssuingTransactionPurchaseDetailsFuelType = "diesel"
	IssuingTransactionPurchaseDetailsFuelTypeOther           IssuingTransactionPurchaseDetailsFuelType = "other"
	IssuingTransactionPurchaseDetailsFuelTypeUnleadedPlus    IssuingTransactionPurchaseDetailsFuelType = "unleaded_plus"
	IssuingTransactionPurchaseDetailsFuelTypeUnleadedRegular IssuingTransactionPurchaseDetailsFuelType = "unleaded_regular"
	IssuingTransactionPurchaseDetailsFuelTypeUnleadedSuper   IssuingTransactionPurchaseDetailsFuelType = "unleaded_super"
)

List of values that IssuingTransactionType can take.

type IssuingTransactionPurchaseDetailsFuelUnit

type IssuingTransactionPurchaseDetailsFuelUnit string

IssuingTransactionPurchaseDetailsFuelUnit is the unit of fuel purchased in a transaction.

const (
	IssuingTransactionPurchaseDetailsFuelUnitLiter    IssuingTransactionPurchaseDetailsFuelUnit = "liter"
	IssuingTransactionPurchaseDetailsFuelUnitUSGallon IssuingTransactionPurchaseDetailsFuelUnit = "us_gallon"
)

List of values that IssuingTransactionPurchaseDetailsFuelUnit can take.

type IssuingTransactionPurchaseDetailsLodging

type IssuingTransactionPurchaseDetailsLodging struct {
	CheckInAt int64 `json:"check_in_at"`
	Nights    int64 `json:"nights"`
}

IssuingTransactionPurchaseDetailsLodging contains extra information about the lodging purchase in this transaction.

type IssuingTransactionPurchaseDetailsReceipt

type IssuingTransactionPurchaseDetailsReceipt struct {
	Description string  `json:"description"`
	Quantity    float64 `json:"quantity"`
	Total       int64   `json:"total"`
	UnitCost    int64   `json:"unit_cost"`
}

IssuingTransactionPurchaseDetailsReceipt contains extra information about the line items this transaction.

type IssuingTransactionType

type IssuingTransactionType string

IssuingTransactionType is the type of an issuing transaction.

const (
	IssuingTransactionTypeCapture IssuingTransactionType = "capture"
	IssuingTransactionTypeRefund  IssuingTransactionType = "refund"
)

List of values that IssuingTransactionType can take.

type IssuingTransactionWallet added in v72.58.0

type IssuingTransactionWallet string

The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`.

const (
	IssuingTransactionWalletApplePay   IssuingTransactionWallet = "apple_pay"
	IssuingTransactionWalletGooglePay  IssuingTransactionWallet = "google_pay"
	IssuingTransactionWalletSamsungPay IssuingTransactionWallet = "samsung_pay"
)

List of values that IssuingTransactionWallet can take

type Iter

type Iter struct {
	// contains filtered or unexported fields
}

Iter provides a convenient interface for iterating over the elements returned from paginated list API calls. Successive calls to the Next method will step through each item in the list, fetching pages of items as needed. Iterators are not thread-safe, so they should not be consumed across multiple goroutines.

func GetIter

func GetIter(container ListParamsContainer, query Query) *Iter

GetIter returns a new Iter for a given query and its options.

func (*Iter) Current

func (it *Iter) Current() interface{}

Current returns the most recent item visited by a call to Next.

func (*Iter) Err

func (it *Iter) Err() error

Err returns the error, if any, that caused the Iter to stop. It must be inspected after Next returns false.

func (*Iter) List

func (it *Iter) List() ListContainer

List returns the current list object which the iterator is currently using. List objects will change as new API calls are made to continue pagination.

func (*Iter) Meta

func (it *Iter) Meta() *ListMeta

Meta returns the list metadata.

func (*Iter) Next

func (it *Iter) Next() bool

Next advances the Iter to the next item in the list, which will then be available through the Current method. It returns false when the iterator stops at the end of the list.

type LastResponseSetter

type LastResponseSetter interface {
	SetLastResponse(response *APIResponse)
}

LastResponseSetter defines a type that contains an HTTP response from a Stripe API endpoint.

type Level

type Level uint32

Level represents a logging level.

const (
	// LevelNull sets a logger to show no messages at all.
	LevelNull Level = 0

	// LevelError sets a logger to show error messages only.
	LevelError Level = 1

	// LevelWarn sets a logger to show warning messages or anything more
	// severe.
	LevelWarn Level = 2

	// LevelInfo sets a logger to show informational messages or anything more
	// severe.
	LevelInfo Level = 3

	// LevelDebug sets a logger to show informational messages or anything more
	// severe.
	LevelDebug Level = 4
)

type LeveledLogger

type LeveledLogger struct {
	// Level is the minimum logging level that will be emitted by this logger.
	//
	// For example, a Level set to LevelWarn will emit warnings and errors, but
	// not informational or debug messages.
	//
	// Always set this with a constant like LevelWarn because the individual
	// values are not guaranteed to be stable.
	Level Level
	// contains filtered or unexported fields
}

LeveledLogger is a leveled logger implementation.

It prints warnings and errors to `os.Stderr` and other messages to `os.Stdout`.

func (*LeveledLogger) Debugf

func (l *LeveledLogger) Debugf(format string, v ...interface{})

Debugf logs a debug message using Printf conventions.

func (*LeveledLogger) Errorf

func (l *LeveledLogger) Errorf(format string, v ...interface{})

Errorf logs a warning message using Printf conventions.

func (*LeveledLogger) Infof

func (l *LeveledLogger) Infof(format string, v ...interface{})

Infof logs an informational message using Printf conventions.

func (*LeveledLogger) Warnf

func (l *LeveledLogger) Warnf(format string, v ...interface{})

Warnf logs a warning message using Printf conventions.

type LeveledLoggerInterface

type LeveledLoggerInterface interface {
	// Debugf logs a debug message using Printf conventions.
	Debugf(format string, v ...interface{})

	// Errorf logs a warning message using Printf conventions.
	Errorf(format string, v ...interface{})

	// Infof logs an informational message using Printf conventions.
	Infof(format string, v ...interface{})

	// Warnf logs a warning message using Printf conventions.
	Warnf(format string, v ...interface{})
}

LeveledLoggerInterface provides a basic leveled logging interface for printing debug, informational, warning, and error messages.

It's implemented by LeveledLogger and also provides out-of-the-box compatibility with a Logrus Logger, but may require a thin shim for use with other logging libraries that you use less standard conventions like Zap.

var DefaultLeveledLogger LeveledLoggerInterface = &LeveledLogger{
	Level: LevelError,
}

DefaultLeveledLogger is the default logger that the library will use to log errors, warnings, and informational messages.

LeveledLoggerInterface is implemented by LeveledLogger, and one can be initialized at the desired level of logging. LeveledLoggerInterface also provides out-of-the-box compatibility with a Logrus Logger, but may require a thin shim for use with other logging libraries that use less standard conventions like Zap.

This Logger will be inherited by any backends created by default, but will be overridden if a backend is created with GetBackendWithConfig with a custom LeveledLogger set.

type LineItem

type LineItem struct {
	APIResource
	AmountSubtotal int64               `json:"amount_subtotal"`
	AmountTotal    int64               `json:"amount_total"`
	Currency       Currency            `json:"currency"`
	Deleted        bool                `json:"deleted"`
	Description    string              `json:"description"`
	Discounts      []*LineItemDiscount `json:"discounts"`
	ID             string              `json:"id"`
	Object         string              `json:"object"`
	Price          *Price              `json:"price"`
	Quantity       int64               `json:"quantity"`
	Taxes          []*LineItemTax      `json:"taxes"`
}

LineItem is the resource representing a line item.

func (*LineItem) UnmarshalJSON

func (l *LineItem) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a LineItem. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type LineItemDiscount

type LineItemDiscount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

LineItemDiscount represent the details of one discount applied to a line item.

type LineItemList

type LineItemList struct {
	APIResource
	ListMeta
	Data []*LineItem `json:"data"`
}

LineItemList is a list of prices as returned from a list endpoint.

type LineItemTax

type LineItemTax struct {
	Amount int64    `json:"amount"`
	Rate   *TaxRate `json:"rate"`

	// This property never worked. Use Rate instead.
	// TODO: Remove in the next major version
	TaxRate *TaxRate `json:"tax_rate"`
}

LineItemTax represent the details of one tax rate applied to a line item.

type ListContainer

type ListContainer interface {
	GetListMeta() *ListMeta
}

ListContainer is a general interface for which all list object structs should comply. They achieve this by embedding a ListMeta struct and inheriting its implementation of this interface.

type ListMeta

type ListMeta struct {
	HasMore bool   `json:"has_more"`
	URL     string `json:"url"`

	// TotalCount is the total number of objects in the collection (beyond just
	// on the current page). This is not returned in most list calls.
	//
	// Deprecated: TotalCount is only included in some legacy situations and
	// not generally available anymore.
	TotalCount uint32 `json:"total_count"`
}

ListMeta is the structure that contains the common properties of List iterators. The Count property is only populated if the total_count include option is passed in (see tests for example).

func (*ListMeta) GetListMeta

func (l *ListMeta) GetListMeta() *ListMeta

GetListMeta returns a ListMeta struct (itself). It exists because any structs that embed ListMeta will inherit it, and thus implement the ListContainer interface.

type ListParams

type ListParams struct {
	// Context used for request. It may carry deadlines, cancelation signals,
	// and other request-scoped values across API boundaries and between
	// processes.
	//
	// Note that a cancelled or timed out context does not provide any
	// guarantee whether the operation was or was not completed on Stripe's API
	// servers. For certainty, you must either retry with the same idempotency
	// key or query the state of the API.
	Context context.Context `form:"-"`

	EndingBefore *string   `form:"ending_before"`
	Expand       []*string `form:"expand"`
	Filters      Filters   `form:"*"`
	Limit        *int64    `form:"limit"`

	// Single specifies whether this is a single page iterator. By default,
	// listing through an iterator will automatically grab additional pages as
	// the query progresses. To change this behavior and just load a single
	// page, set this to true.
	Single bool `form:"-"` // Not an API parameter

	StartingAfter *string `form:"starting_after"`

	// StripeAccount may contain the ID of a connected account. By including
	// this field, the request is made as if it originated from the connected
	// account instead of under the account of the owner of the configured
	// Stripe key.
	StripeAccount *string `form:"-"` // Passed as header
}

ListParams is the structure that contains the common properties of any *ListParams structure.

func (*ListParams) AddExpand

func (p *ListParams) AddExpand(f string)

AddExpand appends a new field to expand.

func (*ListParams) GetListParams

func (p *ListParams) GetListParams() *ListParams

GetListParams returns a ListParams struct (itself). It exists because any structs that embed ListParams will inherit it, and thus implement the ListParamsContainer interface.

func (*ListParams) GetParams

func (p *ListParams) GetParams() *Params

GetParams returns ListParams as a Params struct. It exists because any structs that embed Params will inherit it, and thus implement the ParamsContainer interface.

func (*ListParams) SetStripeAccount

func (p *ListParams) SetStripeAccount(val string)

SetStripeAccount sets a value for the Stripe-Account header.

func (*ListParams) ToParams

func (p *ListParams) ToParams() *Params

ToParams converts a ListParams to a Params by moving over any fields that have valid targets in the new type. This is useful because fields in Params can be injected directly into an http.Request while generally ListParams is only used to build a set of parameters.

type ListParamsContainer

type ListParamsContainer interface {
	GetListParams() *ListParams
}

ListParamsContainer is a general interface for which all list parameter structs should comply. They achieve this by embedding a ListParams struct and inheriting its implementation of this interface.

type LoginLink struct {
	APIResource
	Created int64  `json:"created"`
	Object  string `json:"object"`
	URL     string `json:"url"`
}

LoginLink is the resource representing a login link for Express accounts. For more details see https://stripe.com/docs/api#login_link_object

type LoginLinkParams

type LoginLinkParams struct {
	Params      `form:"*"`
	Account     *string `form:"-"` // Included in URL
	RedirectURL *string `form:"redirect_url"`
}

LoginLinkParams is the set of parameters that can be used when creating a login_link. For more details see https://stripe.com/docs/api#create_login_link.

type Mandate

type Mandate struct {
	APIResource
	CustomerAcceptance   *MandateCustomerAcceptance   `json:"customer_acceptance"`
	ID                   string                       `json:"id"`
	Livemode             bool                         `json:"livemode"`
	MultiUse             *MandateMultiUse             `json:"multi_use"`
	Object               string                       `json:"object"`
	PaymentMethod        *PaymentMethod               `json:"payment_method"`
	PaymentMethodDetails *MandatePaymentMethodDetails `json:"payment_method_details"`
	SingleUse            *MandateSingleUse            `json:"single_use"`
	Status               MandateStatus                `json:"status"`
	Type                 MandateType                  `json:"type"`
}

Mandate is the resource representing a Mandate.

func (*Mandate) UnmarshalJSON

func (m *Mandate) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Mandate. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type MandateCustomerAcceptance

type MandateCustomerAcceptance struct {
	AcceptedAt int64                             `json:"accepted_at"`
	Offline    *MandateCustomerAcceptanceOffline `json:"offline"`
	Online     *MandateCustomerAcceptanceOnline  `json:"online"`
	Type       MandateCustomerAcceptanceType     `json:"type"`
}

MandateCustomerAcceptance represents details about the customer acceptance for a mandate.

type MandateCustomerAcceptanceOffline

type MandateCustomerAcceptanceOffline struct{}

MandateCustomerAcceptanceOffline represents details about the customer acceptance of an offline mandate.

type MandateCustomerAcceptanceOnline

type MandateCustomerAcceptanceOnline struct {
	IPAddress string `json:"ip_address"`
	UserAgent string `json:"user_agent"`
}

MandateCustomerAcceptanceOnline represents details about the customer acceptance of an online mandate.

type MandateCustomerAcceptanceType

type MandateCustomerAcceptanceType string

MandateCustomerAcceptanceType is the list of allowed values for the type of customer acceptance for a given mandate.

const (
	MandateCustomerAcceptanceTypeOffline MandateCustomerAcceptanceType = "offline"
	MandateCustomerAcceptanceTypeOnline  MandateCustomerAcceptanceType = "online"
)

List of values that MandateStatus can take.

type MandateMultiUse

type MandateMultiUse struct{}

MandateMultiUse represents details about a multi-use mandate.

type MandateParams

type MandateParams struct {
	Params `form:"*"`
}

MandateParams is the set of parameters that can be used when retrieving a mandate.

type MandatePaymentMethodDetails

type MandatePaymentMethodDetails struct {
	ACSSDebit   *MandatePaymentMethodDetailsACSSDebit   `json:"acss_debit"`
	AUBECSDebit *MandatePaymentMethodDetailsAUBECSDebit `json:"au_becs_debit"`
	BACSDebit   *MandatePaymentMethodDetailsBACSDebit   `json:"bacs_debit"`
	Card        *MandatePaymentMethodDetailsCard        `json:"card"`
	SepaDebit   *MandatePaymentMethodDetailsSepaDebit   `json:"sepa_debit"`
	Type        PaymentMethodType                       `json:"type"`
}

MandatePaymentMethodDetails represents details about the payment method associated with this mandate.

type MandatePaymentMethodDetailsACSSDebit added in v72.42.0

type MandatePaymentMethodDetailsACSSDebit struct {
	DefaultFor          []MandatePaymentMethodDetailsACSSDebitDefaultFor    `json:"default_for"`
	IntervalDescription string                                              `json:"interval_description"`
	PaymentSchedule     MandatePaymentMethodDetailsACSSDebitPaymentSchedule `json:"payment_schedule"`
	TransactionType     MandatePaymentMethodDetailsACSSDebitTransactionType `json:"transaction_type"`
}

MandatePaymentMethodDetailsACSSDebit represent details about the acss debit associated with this mandate.

type MandatePaymentMethodDetailsACSSDebitDefaultFor added in v72.65.0

type MandatePaymentMethodDetailsACSSDebitDefaultFor string

List of Stripe products where this mandate can be selected automatically.

const (
	MandatePaymentMethodDetailsACSSDebitDefaultForInvoice      MandatePaymentMethodDetailsACSSDebitDefaultFor = "invoice"
	MandatePaymentMethodDetailsACSSDebitDefaultForSubscription MandatePaymentMethodDetailsACSSDebitDefaultFor = "subscription"
)

List of values that MandatePaymentMethodDetailsACSSDebitDefaultFor can take

type MandatePaymentMethodDetailsACSSDebitPaymentSchedule added in v72.42.0

type MandatePaymentMethodDetailsACSSDebitPaymentSchedule string

MandatePaymentMethodDetailsACSSDebitPaymentSchedule is the list of allowed values for an acss debit payment_schedule on payment_method_details

const (
	MandatePaymentMethodDetailsACSSDebitPaymentScheduleCombined MandatePaymentMethodDetailsACSSDebitPaymentSchedule = "combined"
	MandatePaymentMethodDetailsACSSDebitPaymentScheduleInterval MandatePaymentMethodDetailsACSSDebitPaymentSchedule = "interval"
	MandatePaymentMethodDetailsACSSDebitPaymentScheduleSporadic MandatePaymentMethodDetailsACSSDebitPaymentSchedule = "sporadic"
)

List of values that MandatePaymentMethodDetailsACSSDebitPaymentSchedule can take

type MandatePaymentMethodDetailsACSSDebitTransactionType added in v72.42.0

type MandatePaymentMethodDetailsACSSDebitTransactionType string

MandatePaymentMethodDetailsACSSDebitTransactionType is the list of allowed values for an acss debit transaction type

const (
	MandatePaymentMethodDetailsACSSDebitTransactionTypeBusiness MandatePaymentMethodDetailsACSSDebitTransactionType = "business"
	MandatePaymentMethodDetailsACSSDebitTransactionTypePersonal MandatePaymentMethodDetailsACSSDebitTransactionType = "personal"
)

List of values that MandatePaymentMethodDetailsACSSDebitTransactionType can take

type MandatePaymentMethodDetailsAUBECSDebit

type MandatePaymentMethodDetailsAUBECSDebit struct {
	URL string `json:"url"`
}

MandatePaymentMethodDetailsAUBECSDebit represents details about the Australia BECS debit account associated with this mandate.

type MandatePaymentMethodDetailsBACSDebit

type MandatePaymentMethodDetailsBACSDebit struct {
	NetworkStatus MandatePaymentMethodDetailsBACSDebitNetworkStatus `json:"network_status"`
	Reference     string                                            `json:"reference"`
	URL           string                                            `json:"url"`
}

MandatePaymentMethodDetailsBACSDebit represents details about the BACS debit account associated with this mandate.

type MandatePaymentMethodDetailsBACSDebitNetworkStatus

type MandatePaymentMethodDetailsBACSDebitNetworkStatus string

MandatePaymentMethodDetailsBACSDebitNetworkStatus is the list of allowed values for the status with the network for a given mandate.

const (
	MandatePaymentMethodDetailsBACSDebitNetworkStatusAccepted MandatePaymentMethodDetailsBACSDebitNetworkStatus = "accepted"
	MandatePaymentMethodDetailsBACSDebitNetworkStatusPending  MandatePaymentMethodDetailsBACSDebitNetworkStatus = "pending"
	MandatePaymentMethodDetailsBACSDebitNetworkStatusRefused  MandatePaymentMethodDetailsBACSDebitNetworkStatus = "refused"
	MandatePaymentMethodDetailsBACSDebitNetworkStatusRevoked  MandatePaymentMethodDetailsBACSDebitNetworkStatus = "revoked"
)

List of values that MandateStatus can take.

type MandatePaymentMethodDetailsCard

type MandatePaymentMethodDetailsCard struct{}

MandatePaymentMethodDetailsCard represents details about the card associated with this mandate.

type MandatePaymentMethodDetailsSepaDebit

type MandatePaymentMethodDetailsSepaDebit struct {
	Reference string `json:"reference"`
	URL       string `json:"url"`
}

MandatePaymentMethodDetailsSepaDebit represents details about the SEPA debit bank account associated with this mandate.

type MandateSingleUse

type MandateSingleUse struct {
	Amount   int64    `json:"amount"`
	Currency Currency `json:"currency"`
}

MandateSingleUse represents details about a single-use mandate.

type MandateStatus

type MandateStatus string

MandateStatus is the list of allowed values for the mandate status.

const (
	MandateStatusActive   MandateStatus = "active"
	MandateStatusInactive MandateStatus = "inactive"
	MandateStatusPending  MandateStatus = "pending"
)

List of values that MandateStatus can take.

type MandateType

type MandateType string

MandateType is the list of allowed values for the mandate type.

const (
	MandateTypeMultiUse  MandateType = "multi_use"
	MandateTypeSingleUse MandateType = "single_use"
)

List of values that MandateType can take.

type OAuthScopeType

type OAuthScopeType string

OAuthScopeType is the type of OAuth scope.

const (
	OAuthScopeTypeReadOnly  OAuthScopeType = "read_only"
	OAuthScopeTypeReadWrite OAuthScopeType = "read_write"
)

List of possible values for OAuth scopes.

type OAuthStripeUserBusinessType

type OAuthStripeUserBusinessType string

OAuthStripeUserBusinessType is the business type for the Stripe oauth user.

const (
	OAuthStripeUserBusinessTypeCorporation OAuthStripeUserBusinessType = "corporation"
	OAuthStripeUserBusinessTypeLLC         OAuthStripeUserBusinessType = "llc"
	OAuthStripeUserBusinessTypeNonProfit   OAuthStripeUserBusinessType = "non_profit"
	OAuthStripeUserBusinessTypePartnership OAuthStripeUserBusinessType = "partnership"
	OAuthStripeUserBusinessTypeSoleProp    OAuthStripeUserBusinessType = "sole_prop"
)

List of supported values for business type.

type OAuthStripeUserGender

type OAuthStripeUserGender string

OAuthStripeUserGender of the person who will be filling out a Stripe application. (International regulations require either male or female.)

const (
	OAuthStripeUserGenderFemale OAuthStripeUserGender = "female"
	OAuthStripeUserGenderMale   OAuthStripeUserGender = "male"
)

The gender of the person who will be filling out a Stripe application. (International regulations require either male or female.)

type OAuthStripeUserParams

type OAuthStripeUserParams struct {
	BlockKana          *string `form:"block_kana"`
	BlockKanji         *string `form:"block_kanji"`
	BuildingKana       *string `form:"building_kana"`
	BuildingKanji      *string `form:"building_kanji"`
	BusinessName       *string `form:"business_name"`
	BusinessType       *string `form:"business_type"`
	City               *string `form:"city"`
	Country            *string `form:"country"`
	Currency           *string `form:"currency"`
	DOBDay             *int64  `form:"dob_day"`
	DOBMonth           *int64  `form:"dob_month"`
	DOBYear            *int64  `form:"dob_year"`
	Email              *string `form:"email"`
	FirstName          *string `form:"first_name"`
	FirstNameKana      *string `form:"first_name_kana"`
	FirstNameKanji     *string `form:"first_name_kanji"`
	Gender             *string `form:"gender"`
	LastName           *string `form:"last_name"`
	LastNameKana       *string `form:"last_name_kana"`
	LastNameKanji      *string `form:"last_name_kanji"`
	PhoneNumber        *string `form:"phone_number"`
	PhysicalProduct    *bool   `form:"physical_product"`
	ProductDescription *string `form:"product_description"`
	State              *string `form:"state"`
	StreetAddress      *string `form:"street_address"`
	URL                *string `form:"url"`
	Zip                *string `form:"zip"`
}

OAuthStripeUserParams for the stripe_user OAuth Authorize params.

type OAuthToken

type OAuthToken struct {
	APIResource

	Livemode     bool           `json:"livemode"`
	Scope        OAuthScopeType `json:"scope"`
	StripeUserID string         `json:"stripe_user_id"`
	TokenType    OAuthTokenType `json:"token_type"`

	// Deprecated, please use StripeUserID
	AccessToken          string `json:"access_token"`
	RefreshToken         string `json:"refresh_token"`
	StripePublishableKey string `json:"stripe_publishable_key"`
}

OAuthToken is the value of the OAuthToken from OAuth flow. https://stripe.com/docs/connect/oauth-reference#post-token

type OAuthTokenParams

type OAuthTokenParams struct {
	Params             `form:"*"`
	AssertCapabilities []*string `form:"assert_capabilities"`
	ClientSecret       *string   `form:"client_secret"`
	Code               *string   `form:"code"`
	GrantType          *string   `form:"grant_type"`
	RefreshToken       *string   `form:"refresh_token"`
	Scope              *string   `form:"scope"`
}

OAuthTokenParams is the set of paramaters that can be used to request OAuthTokens.

type OAuthTokenType

type OAuthTokenType string

OAuthTokenType is the type of token. This will always be "bearer."

const (
	OAuthTokenTypeBearer OAuthTokenType = "bearer"
)

List of possible OAuthTokenType values.

type Order

type Order struct {
	APIResource
	Amount                 int64             `json:"amount"`
	AmountReturned         int64             `json:"amount_returned"`
	Application            string            `json:"application"`
	ApplicationFee         int64             `json:"application_fee"`
	Charge                 *Charge           `json:"charge"`
	Created                int64             `json:"created"`
	Currency               Currency          `json:"currency"`
	Customer               Customer          `json:"customer"`
	Email                  string            `json:"email"`
	ExternalCouponCode     string            `json:"external_coupon_code"`
	ID                     string            `json:"id"`
	Items                  []*OrderItem      `json:"items"`
	Livemode               bool              `json:"livemode"`
	Metadata               map[string]string `json:"metadata"`
	Object                 string            `json:"object"`
	Returns                *OrderReturnList  `json:"returns"`
	SelectedShippingMethod *string           `json:"selected_shipping_method"`
	Shipping               *Shipping         `json:"shipping"`
	ShippingMethods        []*ShippingMethod `json:"shipping_methods"`
	Status                 string            `json:"status"`
	StatusTransitions      StatusTransitions `json:"status_transitions"`
	Updated                int64             `json:"updated"`
	UpstreamID             string            `json:"upstream_id"`
}

Order is the resource representing a Stripe charge. For more details see https://stripe.com/docs/api#orders_legacy.

func (*Order) UnmarshalJSON

func (o *Order) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an Order. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type OrderDeliveryEstimateType

type OrderDeliveryEstimateType string

OrderDeliveryEstimateType represents the type of delivery estimate for shipping methods

const (
	OrderDeliveryEstimateTypeExact OrderDeliveryEstimateType = "exact"
	OrderDeliveryEstimateTypeRange OrderDeliveryEstimateType = "range"
)

List of values that OrderDeliveryEstimateType can take.

type OrderItem

type OrderItem struct {
	Amount      int64            `json:"amount"`
	Currency    Currency         `json:"currency"`
	Description string           `json:"description"`
	Object      string           `json:"object"`
	Parent      *OrderItemParent `json:"parent"`
	Quantity    int64            `json:"quantity"`
	Type        OrderItemType    `json:"type"`
}

A representation of the constituent items of any given order. Can be used to represent [SKUs](https://stripe.com/docs/api#skus), shipping costs, or taxes owed on the order.

Related guide: [Orders](https://stripe.com/docs/orders/guide).

type OrderItemParams

type OrderItemParams struct {
	Amount      *int64  `form:"amount"`
	Currency    *string `form:"currency"`
	Description *string `form:"description"`
	Parent      *string `form:"parent"`
	Quantity    *int64  `form:"quantity"`
	Type        *string `form:"type"`
}

OrderItemParams is the set of parameters describing an order item on order creation or update.

type OrderItemParent

type OrderItemParent struct {
	ID   string              `json:"id"`
	SKU  *SKU                `json:"-"`
	Type OrderItemParentType `json:"object"`
}

OrderItemParent describes the parent of an order item.

func (*OrderItemParent) UnmarshalJSON

func (p *OrderItemParent) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an OrderItemParent. This custom unmarshaling is needed because the resulting property may be an id or a full SKU struct if it was expanded.

type OrderItemParentType

type OrderItemParentType string

OrderItemParentType represents the type of order item parent

const (
	OrderItemParentTypeCoupon   OrderItemParentType = "coupon"
	OrderItemParentTypeDiscount OrderItemParentType = "discount"
	OrderItemParentTypeSKU      OrderItemParentType = "sku"
	OrderItemParentTypeShipping OrderItemParentType = "shipping"
	OrderItemParentTypeTax      OrderItemParentType = "tax"
)

List of values that OrderItemParentType can take.

type OrderItemType

type OrderItemType string

The type of line item. One of `sku`, `tax`, `shipping`, or `discount`.

const (
	OrderItemTypeCoupon   OrderItemType = "coupon"
	OrderItemTypeDiscount OrderItemType = "discount"
	OrderItemTypeSKU      OrderItemType = "sku"
	OrderItemTypeShipping OrderItemType = "shipping"
	OrderItemTypeTax      OrderItemType = "tax"
)

List of values that OrderItemType can take

type OrderList

type OrderList struct {
	APIResource
	ListMeta
	Data []*Order `json:"data"`
}

OrderList is a list of orders as retrieved from a list endpoint.

type OrderListParams

type OrderListParams struct {
	ListParams        `form:"*"`
	Created           *int64                         `form:"created"`
	CreatedRange      *RangeQueryParams              `form:"created"`
	Customer          *string                        `form:"customer"`
	IDs               []*string                      `form:"ids"`
	Status            *string                        `form:"status"`
	StatusTransitions *StatusTransitionsFilterParams `form:"status_transitions"`
	UpstreamIDs       []*string                      `form:"upstream_ids"`
}

OrderListParams is the set of parameters that can be used when listing orders.

type OrderParams

type OrderParams struct {
	Params                 `form:"*"`
	Coupon                 *string            `form:"coupon"`
	Currency               *string            `form:"currency"`
	Customer               *string            `form:"customer"`
	Email                  *string            `form:"email"`
	Items                  []*OrderItemParams `form:"items"`
	SelectedShippingMethod *string            `form:"selected_shipping_method"`
	Shipping               *ShippingParams    `form:"shipping"`
	Status                 *string            `form:"status"`
}

OrderParams is the set of parameters that can be used when creating an order.

type OrderPayParams

type OrderPayParams struct {
	Params         `form:"*"`
	ApplicationFee *int64        `form:"application_fee"`
	Customer       *string       `form:"customer"`
	Email          *string       `form:"email"`
	Source         *SourceParams `form:"*"` // SourceParams has custom encoding so brought to top level with "*"
}

OrderPayParams is the set of parameters that can be used when paying orders.

func (*OrderPayParams) SetSource

func (p *OrderPayParams) SetSource(sp interface{}) error

SetSource adds valid sources to a OrderPayParams object, returning an error for unsupported sources.

type OrderReturn

type OrderReturn struct {
	APIResource
	Amount   int64        `json:"amount"`
	Created  int64        `json:"created"`
	Currency Currency     `json:"currency"`
	ID       string       `json:"id"`
	Items    []*OrderItem `json:"items"`
	Livemode bool         `json:"livemode"`
	Object   string       `json:"object"`
	Order    *Order       `json:"order"`
	Refund   *Refund      `json:"refund"`
}

OrderReturn is the resource representing an order return. For more details see https://stripe.com/docs/api#order_returns.

func (*OrderReturn) UnmarshalJSON

func (o *OrderReturn) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of an OrderReturn. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type OrderReturnList

type OrderReturnList struct {
	APIResource
	ListMeta
	Data []*OrderReturn `json:"data"`
}

OrderReturnList is a list of order returns as retrieved from a list endpoint.

type OrderReturnListParams

type OrderReturnListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Order        *string           `form:"order"`
}

OrderReturnListParams is the set of parameters that can be used when listing order returns.

type OrderReturnParams

type OrderReturnParams struct {
	Params `form:"*"`
	Items  []*OrderItemParams `form:"items"`
	Order  *string            `form:"-"` // Included in the URL
}

OrderReturnParams is the set of parameters that can be used when returning orders.

type OrderStatus

type OrderStatus string

OrderStatus represents the statuses of an order object.

const (
	OrderStatusCanceled  OrderStatus = "canceled"
	OrderStatusCreated   OrderStatus = "created"
	OrderStatusFulfilled OrderStatus = "fulfilled"
	OrderStatusPaid      OrderStatus = "paid"
	OrderStatusReturned  OrderStatus = "returned"
)

List of values that OrderStatus can take.

type OrderUpdateParams

type OrderUpdateParams struct {
	Params                 `form:"*"`
	Coupon                 *string                    `form:"coupon"`
	SelectedShippingMethod *string                    `form:"selected_shipping_method"`
	Shipping               *OrderUpdateShippingParams `form:"shipping"`
	Status                 *string                    `form:"status"`
}

OrderUpdateParams is the set of parameters that can be used when updating an order.

type OrderUpdateShippingParams

type OrderUpdateShippingParams struct {
	Carrier        *string `form:"carrier"`
	TrackingNumber *string `form:"tracking_number"`
}

OrderUpdateShippingParams is the set of parameters that can be used for the shipping hash on order update.

type PIIParams

type PIIParams struct {
	Params   `form:"*"`
	IDNumber *string `form:"id_number"`
}

PIIParams are parameters for personal identifiable information (PII).

type PackageDimensions

type PackageDimensions struct {
	Height float64 `json:"height"`
	Length float64 `json:"length"`
	Weight float64 `json:"weight"`
	Width  float64 `json:"width"`
}

PackageDimensions represents the dimension of a product or a SKU from the perspective of shipping.

type PackageDimensionsParams

type PackageDimensionsParams struct {
	Height *float64 `form:"height"`
	Length *float64 `form:"length"`
	Weight *float64 `form:"weight"`
	Width  *float64 `form:"width"`
}

PackageDimensionsParams represents the set of parameters for the the dimension of a product or a SKU from the perspective of shipping .

type Params

type Params struct {
	// Context used for request. It may carry deadlines, cancelation signals,
	// and other request-scoped values across API boundaries and between
	// processes.
	//
	// Note that a cancelled or timed out context does not provide any
	// guarantee whether the operation was or was not completed on Stripe's API
	// servers. For certainty, you must either retry with the same idempotency
	// key or query the state of the API.
	Context context.Context `form:"-"`

	Expand []*string    `form:"expand"`
	Extra  *ExtraValues `form:"*"`

	// Headers may be used to provide extra header lines on the HTTP request.
	Headers http.Header `form:"-"`

	IdempotencyKey *string           `form:"-"` // Passed as header
	Metadata       map[string]string `form:"metadata"`

	// StripeAccount may contain the ID of a connected account. By including
	// this field, the request is made as if it originated from the connected
	// account instead of under the account of the owner of the configured
	// Stripe key.
	StripeAccount *string `form:"-"` // Passed as header
}

Params is the structure that contains the common properties of any *Params structure.

func (*Params) AddExpand

func (p *Params) AddExpand(f string)

AddExpand appends a new field to expand.

func (*Params) AddExtra

func (p *Params) AddExtra(key, value string)

AddExtra adds a new arbitrary key-value pair to the request data

func (*Params) AddMetadata

func (p *Params) AddMetadata(key, value string)

AddMetadata adds a new key-value pair to the Metadata.

func (*Params) GetParams

func (p *Params) GetParams() *Params

GetParams returns a Params struct (itself). It exists because any structs that embed Params will inherit it, and thus implement the ParamsContainer interface.

func (*Params) SetIdempotencyKey

func (p *Params) SetIdempotencyKey(val string)

SetIdempotencyKey sets a value for the Idempotency-Key header.

func (*Params) SetStripeAccount

func (p *Params) SetStripeAccount(val string)

SetStripeAccount sets a value for the Stripe-Account header.

type ParamsContainer

type ParamsContainer interface {
	GetParams() *Params
}

ParamsContainer is a general interface for which all parameter structs should comply. They achieve this by embedding a Params struct and inheriting its implementation of this interface.

type PaymentIntent

type PaymentIntent struct {
	APIResource
	Amount                    int64                                 `json:"amount"`
	AmountCapturable          int64                                 `json:"amount_capturable"`
	AmountReceived            int64                                 `json:"amount_received"`
	Application               *Application                          `json:"application"`
	ApplicationFeeAmount      int64                                 `json:"application_fee_amount"`
	AutomaticPaymentMethods   *PaymentIntentAutomaticPaymentMethods `json:"automatic_payment_methods"`
	CanceledAt                int64                                 `json:"canceled_at"`
	CancellationReason        PaymentIntentCancellationReason       `json:"cancellation_reason"`
	CaptureMethod             PaymentIntentCaptureMethod            `json:"capture_method"`
	Charges                   *ChargeList                           `json:"charges"`
	ClientSecret              string                                `json:"client_secret"`
	ConfirmationMethod        PaymentIntentConfirmationMethod       `json:"confirmation_method"`
	Created                   int64                                 `json:"created"`
	Currency                  string                                `json:"currency"`
	Customer                  *Customer                             `json:"customer"`
	Description               string                                `json:"description"`
	ID                        string                                `json:"id"`
	Invoice                   *Invoice                              `json:"invoice"`
	LastPaymentError          *Error                                `json:"last_payment_error"`
	Livemode                  bool                                  `json:"livemode"`
	Metadata                  map[string]string                     `json:"metadata"`
	NextAction                *PaymentIntentNextAction              `json:"next_action"`
	Object                    string                                `json:"object"`
	OnBehalfOf                *Account                              `json:"on_behalf_of"`
	PaymentMethod             *PaymentMethod                        `json:"payment_method"`
	PaymentMethodOptions      *PaymentIntentPaymentMethodOptions    `json:"payment_method_options"`
	PaymentMethodTypes        []string                              `json:"payment_method_types"`
	Processing                *PaymentIntentProcessing              `json:"processing"`
	ReceiptEmail              string                                `json:"receipt_email"`
	Review                    *Review                               `json:"review"`
	SetupFutureUsage          PaymentIntentSetupFutureUsage         `json:"setup_future_usage"`
	Shipping                  ShippingDetails                       `json:"shipping"`
	Source                    *PaymentSource                        `json:"source"`
	StatementDescriptor       string                                `json:"statement_descriptor"`
	StatementDescriptorSuffix string                                `json:"statement_descriptor_suffix"`
	Status                    PaymentIntentStatus                   `json:"status"`
	TransferData              *PaymentIntentTransferData            `json:"transfer_data"`
	TransferGroup             string                                `json:"transfer_group"`
}

PaymentIntent is the resource representing a Stripe payout. For more details see https://stripe.com/docs/api#payment_intents.

func (*PaymentIntent) UnmarshalJSON

func (p *PaymentIntent) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a PaymentIntent. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type PaymentIntentAutomaticPaymentMethods added in v72.76.0

type PaymentIntentAutomaticPaymentMethods struct {
	Enabled bool `json:"enabled"`
}

Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods)

type PaymentIntentAutomaticPaymentMethodsParams added in v72.76.0

type PaymentIntentAutomaticPaymentMethodsParams struct {
	Enabled *bool `form:"enabled"`
}

When enabled, this PaymentIntent will accept payment methods that you have enabled in the Dashboard and are compatible with this PaymentIntent's other parameters.

type PaymentIntentCancelParams

type PaymentIntentCancelParams struct {
	Params             `form:"*"`
	CancellationReason *string `form:"cancellation_reason"`
}

PaymentIntentCancelParams is the set of parameters that can be used when canceling a payment intent.

type PaymentIntentCancellationReason

type PaymentIntentCancellationReason string

PaymentIntentCancellationReason is the list of allowed values for the cancelation reason.

const (
	PaymentIntentCancellationReasonAbandoned           PaymentIntentCancellationReason = "abandoned"
	PaymentIntentCancellationReasonAutomatic           PaymentIntentCancellationReason = "automatic"
	PaymentIntentCancellationReasonDuplicate           PaymentIntentCancellationReason = "duplicate"
	PaymentIntentCancellationReasonFailedInvoice       PaymentIntentCancellationReason = "failed_invoice"
	PaymentIntentCancellationReasonFraudulent          PaymentIntentCancellationReason = "fraudulent"
	PaymentIntentCancellationReasonRequestedByCustomer PaymentIntentCancellationReason = "requested_by_customer"
	PaymentIntentCancellationReasonVoidInvoice         PaymentIntentCancellationReason = "void_invoice"
)

List of values that PaymentIntentCancellationReason can take.

type PaymentIntentCaptureMethod

type PaymentIntentCaptureMethod string

PaymentIntentCaptureMethod is the list of allowed values for the capture method.

const (
	PaymentIntentCaptureMethodAutomatic PaymentIntentCaptureMethod = "automatic"
	PaymentIntentCaptureMethodManual    PaymentIntentCaptureMethod = "manual"
)

List of values that PaymentIntentCaptureMethod can take.

type PaymentIntentCaptureParams

type PaymentIntentCaptureParams struct {
	Params                    `form:"*"`
	AmountToCapture           *int64                           `form:"amount_to_capture"`
	ApplicationFeeAmount      *int64                           `form:"application_fee_amount"`
	StatementDescriptor       *string                          `form:"statement_descriptor"`
	StatementDescriptorSuffix *string                          `form:"statement_descriptor_suffix"`
	TransferData              *PaymentIntentTransferDataParams `form:"transfer_data"`
}

PaymentIntentCaptureParams is the set of parameters that can be used when capturing a payment intent.

type PaymentIntentConfirmParams

type PaymentIntentConfirmParams struct {
	Params                `form:"*"`
	ErrorOnRequiresAction *bool                                    `form:"error_on_requires_action"`
	Mandate               *string                                  `form:"mandate"`
	MandateData           *PaymentIntentMandateDataParams          `form:"mandate_data"`
	OffSession            *bool                                    `form:"off_session"`
	PaymentMethod         *string                                  `form:"payment_method"`
	PaymentMethodData     *PaymentIntentPaymentMethodDataParams    `form:"payment_method_data"`
	PaymentMethodOptions  *PaymentIntentPaymentMethodOptionsParams `form:"payment_method_options"`
	PaymentMethodTypes    []*string                                `form:"payment_method_types"`
	ReceiptEmail          *string                                  `form:"receipt_email"`
	ReturnURL             *string                                  `form:"return_url"`
	SetupFutureUsage      *string                                  `form:"setup_future_usage"`
	Shipping              *ShippingDetailsParams                   `form:"shipping"`
	UseStripeSDK          *bool                                    `form:"use_stripe_sdk"`
}

PaymentIntentConfirmParams is the set of parameters that can be used when confirming a payment intent.

type PaymentIntentConfirmationMethod

type PaymentIntentConfirmationMethod string

PaymentIntentConfirmationMethod is the list of allowed values for the confirmation method.

const (
	PaymentIntentConfirmationMethodAutomatic PaymentIntentConfirmationMethod = "automatic"
	PaymentIntentConfirmationMethodManual    PaymentIntentConfirmationMethod = "manual"
)

List of values that PaymentIntentConfirmationMethod can take.

type PaymentIntentList

type PaymentIntentList struct {
	APIResource
	ListMeta
	Data []*PaymentIntent `json:"data"`
}

PaymentIntentList is a list of payment intents as retrieved from a list endpoint.

type PaymentIntentListParams

type PaymentIntentListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Customer     *string           `form:"customer"`
}

PaymentIntentListParams is the set of parameters that can be used when listing payment intents. For more details see https://stripe.com/docs/api#list_payouts.

type PaymentIntentMandateDataCustomerAcceptanceOfflineParams

type PaymentIntentMandateDataCustomerAcceptanceOfflineParams struct{}

PaymentIntentMandateDataCustomerAcceptanceOfflineParams is the set of parameters for the customer acceptance of an offline mandate.

type PaymentIntentMandateDataCustomerAcceptanceOnlineParams

type PaymentIntentMandateDataCustomerAcceptanceOnlineParams struct {
	IPAddress *string `form:"ip_address"`
	UserAgent *string `form:"user_agent"`
}

PaymentIntentMandateDataCustomerAcceptanceOnlineParams is the set of parameters for the customer acceptance of an online mandate.

type PaymentIntentMandateDataCustomerAcceptanceParams

type PaymentIntentMandateDataCustomerAcceptanceParams struct {
	AcceptedAt int64                                                    `form:"accepted_at"`
	Offline    *PaymentIntentMandateDataCustomerAcceptanceOfflineParams `form:"offline"`
	Online     *PaymentIntentMandateDataCustomerAcceptanceOnlineParams  `form:"online"`
	Type       MandateCustomerAcceptanceType                            `form:"type"`
}

PaymentIntentMandateDataCustomerAcceptanceParams is the set of parameters for the customer acceptance of a mandate.

type PaymentIntentMandateDataParams

type PaymentIntentMandateDataParams struct {
	CustomerAcceptance *PaymentIntentMandateDataCustomerAcceptanceParams `form:"customer_acceptance"`
}

PaymentIntentMandateDataParams is the set of parameters controlling the creation of the mandate associated with this PaymentIntent.

type PaymentIntentNextAction

type PaymentIntentNextAction struct {
	AlipayHandleRedirect          *PaymentIntentNextActionAlipayHandleRedirect          `json:"alipay_handle_redirect"`
	BoletoDisplayDetails          *PaymentIntentNextActionBoletoDisplayDetails          `json:"boleto_display_details"`
	OXXODisplayDetails            *PaymentIntentNextActionOXXODisplayDetails            `json:"oxxo_display_details"`
	RedirectToURL                 *PaymentIntentNextActionRedirectToURL                 `json:"redirect_to_url"`
	Type                          PaymentIntentNextActionType                           `json:"type"`
	UseStripeSDK                  *PaymentIntentNextActionUseStripeSDK                  `json:"use_stripe_sdk"`
	VerifyWithMicrodeposits       *PaymentIntentNextActionVerifyWithMicrodeposits       `json:"verify_with_microdeposits"`
	WechatPayDisplayQRCode        *PaymentIntentNextActionWechatPayDisplayQRCode        `json:"wechat_pay_display_qr_code"`
	WechatPayRedirectToAndroidApp *PaymentIntentNextActionWechatPayRedirectToAndroidApp `json:"wechat_pay_redirect_to_android_app"`
	WechatPayRedirectToIOSApp     *PaymentIntentNextActionWechatPayRedirectToIOSApp     `json:"wechat_pay_redirect_to_ios_app"`
}

PaymentIntentNextAction represents the type of action to take on a payment intent.

type PaymentIntentNextActionAlipayHandleRedirect

type PaymentIntentNextActionAlipayHandleRedirect struct {
	NativeData string `json:"native_data"`
	NativeURL  string `json:"native_url"`
	ReturnURL  string `json:"return_url"`
	URL        string `json:"url"`
}

PaymentIntentNextActionAlipayHandleRedirect represents the resource for the next action of type "handle_alipay_redirect".

type PaymentIntentNextActionBoletoDisplayDetails added in v72.52.0

type PaymentIntentNextActionBoletoDisplayDetails struct {
	ExpiresAt        int64  `json:"expires_at"`
	HostedVoucherURL string `json:"hosted_voucher_url"`
	Number           string `json:"number"`
	PDF              string `json:"pdf"`
}

PaymentIntentNextActionBoletoDisplayDetails represents the resource for the next action of type "boleto_display_details".

type PaymentIntentNextActionOXXODisplayDetails added in v72.7.0

type PaymentIntentNextActionOXXODisplayDetails struct {
	ExpiresAfter     int64  `json:"expires_after"`
	HostedVoucherURL string `json:"hosted_voucher_url"`
	Number           string `json:"number"`
}

PaymentIntentNextActionOXXODisplayDetails represents the resource for the next action of type "oxxo_display_details".

type PaymentIntentNextActionRedirectToURL

type PaymentIntentNextActionRedirectToURL struct {
	ReturnURL string `json:"return_url"`
	URL       string `json:"url"`
}

PaymentIntentNextActionRedirectToURL represents the resource for the next action of type "redirect_to_url".

type PaymentIntentNextActionType

type PaymentIntentNextActionType string

PaymentIntentNextActionType is the list of allowed values for the next action's type.

const (
	PaymentIntentNextActionTypeAlipayHandleRedirect PaymentIntentNextActionType = "alipay_handle_redirect"
	PaymentIntentNextActionTypeOXXODisplayDetails   PaymentIntentNextActionType = "oxxo_display_details"
	PaymentIntentNextActionTypeRedirectToURL        PaymentIntentNextActionType = "redirect_to_url"
)

List of values that PaymentIntentNextActionType can take.

type PaymentIntentNextActionUseStripeSDK added in v72.42.0

type PaymentIntentNextActionUseStripeSDK struct{}

PaymentIntentNextActionUseStripeSDK represents the resource for the next action of typee "use_stripe_sdk".

type PaymentIntentNextActionVerifyWithMicrodeposits added in v72.42.0

type PaymentIntentNextActionVerifyWithMicrodeposits struct {
	ArrivalDate           int64  `json:"arrival_date"`
	HostedVerificationURL string `json:"hosted_verification_url"`
}

PaymentIntentNextActionVerifyWithMicrodeposits represents the resource for the next action of type "verify_with_microdeposits".

type PaymentIntentNextActionWechatPayDisplayQRCode added in v72.54.0

type PaymentIntentNextActionWechatPayDisplayQRCode struct {
	Data         string `json:"data"`
	ImageDataURL string `json:"image_data_url"`
}

PaymentIntentNextActionWechatPayDisplayQRCode represents the resource for the next action of type "wechat_pay_display_qr_code"

type PaymentIntentNextActionWechatPayRedirectToAndroidApp added in v72.54.0

type PaymentIntentNextActionWechatPayRedirectToAndroidApp struct {
	AppID     string `json:"app_id"`
	NonceStr  string `json:"nonce_str"`
	Package   string `json:"package"`
	PartnerID string `json:"partner_id"`
	PrepayID  string `json:"prepay_id"`
	Sign      string `json:"sign"`
	Timestamp string `json:"timestamp"`
}

PaymentIntentNextActionWechatPayRedirectToAndroidApp represents the resource for the next action of type "wechat_pay_redirect_to_android_app"

type PaymentIntentNextActionWechatPayRedirectToIOSApp added in v72.54.0

type PaymentIntentNextActionWechatPayRedirectToIOSApp struct {
	NativeURL string `json:"native_url"`
}

PaymentIntentNextActionWechatPayRedirectToIOSApp represents the resource for the next action of type "wechat_pay_redirect_to_ios_app"

type PaymentIntentOffSession

type PaymentIntentOffSession string

PaymentIntentOffSession is the list of allowed values for types of off-session.

const (
	PaymentIntentOffSessionOneOff    PaymentIntentOffSession = "one_off"
	PaymentIntentOffSessionRecurring PaymentIntentOffSession = "recurring"
)

List of values that PaymentIntentOffSession can take.

type PaymentIntentParams

type PaymentIntentParams struct {
	Params                    `form:"*"`
	Amount                    *int64                                      `form:"amount"`
	ApplicationFeeAmount      *int64                                      `form:"application_fee_amount"`
	AutomaticPaymentMethods   *PaymentIntentAutomaticPaymentMethodsParams `form:"automatic_payment_methods"`
	CaptureMethod             *string                                     `form:"capture_method"`
	ClientSecret              *string                                     `form:"client_secret"`
	Confirm                   *bool                                       `form:"confirm"`
	ConfirmationMethod        *string                                     `form:"confirmation_method"`
	Currency                  *string                                     `form:"currency"`
	Customer                  *string                                     `form:"customer"`
	Description               *string                                     `form:"description"`
	Mandate                   *string                                     `form:"mandate"`
	MandateData               *PaymentIntentMandateDataParams             `form:"mandate_data"`
	OnBehalfOf                *string                                     `form:"on_behalf_of"`
	PaymentMethod             *string                                     `form:"payment_method"`
	PaymentMethodData         *PaymentIntentPaymentMethodDataParams       `form:"payment_method_data"`
	PaymentMethodOptions      *PaymentIntentPaymentMethodOptionsParams    `form:"payment_method_options"`
	PaymentMethodTypes        []*string                                   `form:"payment_method_types"`
	ReceiptEmail              *string                                     `form:"receipt_email"`
	ReturnURL                 *string                                     `form:"return_url"`
	SetupFutureUsage          *string                                     `form:"setup_future_usage"`
	Shipping                  *ShippingDetailsParams                      `form:"shipping"`
	StatementDescriptor       *string                                     `form:"statement_descriptor"`
	StatementDescriptorSuffix *string                                     `form:"statement_descriptor_suffix"`
	TransferData              *PaymentIntentTransferDataParams            `form:"transfer_data"`
	TransferGroup             *string                                     `form:"transfer_group"`
	// These parameters apply only for paymentIntent.New with `confirm=true`
	ErrorOnRequiresAction *bool `form:"error_on_requires_action"`
	OffSession            *bool `form:"off_session"`
	UseStripeSDK          *bool `form:"use_stripe_sdk"`
}

PaymentIntentParams is the set of parameters that can be used when handling a payment intent.

type PaymentIntentPaymentMethodDataParams

type PaymentIntentPaymentMethodDataParams struct {
	ACSSDebit        *PaymentMethodACSSDebitParams        `form:"acss_debit"`
	AfterpayClearpay *PaymentMethodAfterpayClearpayParams `form:"afterpay_clearpay"`
	Alipay           *PaymentMethodAlipayParams           `form:"alipay"`
	AUBECSDebit      *PaymentMethodAUBECSDebitParams      `form:"au_becs_debit"`
	BACSDebit        *PaymentMethodBACSDebitParams        `form:"bacs_debit"`
	Bancontact       *PaymentMethodBancontactParams       `form:"bancontact"`
	BillingDetails   *BillingDetailsParams                `form:"billing_details"`
	Boleto           *PaymentMethodBoletoParams           `form:"boleto"`
	Card             *PaymentMethodCardParams             `form:"card"`
	EPS              *PaymentMethodEPSParams              `form:"eps"`
	FPX              *PaymentMethodFPXParams              `form:"fpx"`
	Giropay          *PaymentMethodGiropayParams          `form:"giropay"`
	Grabpay          *PaymentMethodGrabpayParams          `form:"grabpay"`
	Ideal            *PaymentMethodIdealParams            `form:"ideal"`
	InteracPresent   *PaymentMethodInteracPresentParams   `form:"interac_present"`
	Klarna           *PaymentMethodKlarnaParams           `form:"klarna"`
	Metadata         map[string]string                    `form:"metadata"`
	OXXO             *PaymentMethodOXXOParams             `form:"oxxo"`
	P24              *PaymentMethodP24Params              `form:"p24"`
	SepaDebit        *PaymentMethodSepaDebitParams        `form:"sepa_debit"`
	Sofort           *PaymentMethodSofortParams           `form:"sofort"`
	Type             *string                              `form:"type"`
	WechatPay        *PaymentMethodWechatPayParams        `form:"wechat_pay"`
}

PaymentIntentPaymentMethodDataParams represents the type-specific parameters associated with a payment method on payment intent.

type PaymentIntentPaymentMethodOptions

type PaymentIntentPaymentMethodOptions struct {
	ACSSDebit        *PaymentIntentPaymentMethodOptionsACSSDebit        `json:"acss_debit"`
	AfterpayClearpay *PaymentIntentPaymentMethodOptionsAfterpayClearpay `json:"afterpay_clearpay"`
	Alipay           *PaymentIntentPaymentMethodOptionsAlipay           `json:"alipay"`
	AUBECSDebit      *PaymentIntentPaymentMethodOptionsAUBECSDebit      `json:"au_becs_debit"`
	Bancontact       *PaymentIntentPaymentMethodOptionsBancontact       `json:"bancontact"`
	Boleto           *PaymentIntentPaymentMethodOptionsBoleto           `json:"boleto"`
	Card             *PaymentIntentPaymentMethodOptionsCard             `json:"card"`
	CardPresent      *PaymentIntentPaymentMethodOptionsCardPresent      `json:"card_present"`
	FPX              *PaymentIntentPaymentMethodOptionsFPX              `json:"fpx"`
	Giropay          *PaymentIntentPaymentMethodOptionsGiropay          `json:"giropay"`
	Grabpay          *PaymentIntentPaymentMethodOptionsGrabpay          `json:"grabpay"`
	Ideal            *PaymentIntentPaymentMethodOptionsIdeal            `json:"ideal"`
	InteracPresent   *PaymentIntentPaymentMethodOptionsInteracPresent   `json:"interac_present"`
	Klarna           *PaymentIntentPaymentMethodOptionsKlarna           `json:"klarna"`
	OXXO             *PaymentIntentPaymentMethodOptionsOXXO             `json:"oxxo"`
	P24              *PaymentIntentPaymentMethodOptionsP24              `json:"p24"`
	SepaDebit        *PaymentIntentPaymentMethodOptionsSepaDebit        `json:"sepa_debit"`
	Sofort           *PaymentIntentPaymentMethodOptionsSofort           `json:"sofort"`
	WechatPay        *PaymentIntentPaymentMethodOptionsWechatPay        `json:"wechat_pay"`
}

PaymentIntentPaymentMethodOptions is the set of payment method-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsACSSDebit added in v72.42.0

type PaymentIntentPaymentMethodOptionsACSSDebit struct {
	MandateOptions     *PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions    `json:"mandate_options"`
	VerificationMethod PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod `json:"verification_method"`
}

PaymentIntentPaymentMethodOptionsACSSDebit describes the ACSS debit-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions added in v72.42.0

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions struct {
	CustomMandateURL    string                                                                  `json:"custom_mandate_url"`
	IntervalDescription string                                                                  `json:"interval_description"`
	PaymentSchedule     PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule `json:"payment_schedule"`
	TransactionType     PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType `json:"transaction_type"`
}

PaymentIntentPaymentMethodOptionsACSSDebitMandateOptions describe the mandate options for acss debit associated with that payment intent.

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams added in v72.42.0

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams struct {
	CustomMandateURL    *string `form:"custom_mandate_url"`
	IntervalDescription *string `form:"interval_description"`
	PaymentSchedule     *string `form:"payment_schedule"`
	TransactionType     *string `form:"transaction_type"`
}

PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams represents the mandate options for ACSS on the payment intent.

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule added in v72.42.0

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule string

PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule is the list of allowed values for payment_schedule.

const (
	PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleCombined PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "combined"
	PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleInterval PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "interval"
	PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleSporadic PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "sporadic"
)

List of values that PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule can take

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType added in v72.42.0

type PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType string

PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType is the list of allowed values for transaction_type.

const (
	PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypeBusiness PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "business"
	PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypePersonal PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "personal"
)

List of values that PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType can take

type PaymentIntentPaymentMethodOptionsACSSDebitParams added in v72.42.0

type PaymentIntentPaymentMethodOptionsACSSDebitParams struct {
	MandateOptions     *PaymentIntentPaymentMethodOptionsACSSDebitMandateOptionsParams `form:"mandate_options"`
	VerificationMethod *string                                                         `form:"verification_method"`
}

PaymentIntentPaymentMethodOptionsACSSDebitParams represents the ACSS debit-specific options applieed to a PaymentIntent

type PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod added in v72.42.0

type PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod string

PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod is the list of allowed values for verification_method.

const (
	PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodAutomatic     PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "automatic"
	PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodInstant       PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "instant"
	PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethodMicrodeposits PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod = "microdeposits"
)

List of values that PaymentIntentPaymentMethodOptionsACSSDebitVerificationMethod can take

type PaymentIntentPaymentMethodOptionsAUBECSDebit added in v72.81.0

type PaymentIntentPaymentMethodOptionsAUBECSDebit struct{}

type PaymentIntentPaymentMethodOptionsAUBECSDebitParams added in v72.81.0

type PaymentIntentPaymentMethodOptionsAUBECSDebitParams struct{}

If this is a `au_becs_debit` PaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options.

type PaymentIntentPaymentMethodOptionsAfterpayClearpay added in v72.45.0

type PaymentIntentPaymentMethodOptionsAfterpayClearpay struct {
	Reference string `json:"reference"`
}

PaymentIntentPaymentMethodOptionsAfterpayClearpay describes the AfterpayClearpay-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsAfterpayClearpayParams added in v72.45.0

type PaymentIntentPaymentMethodOptionsAfterpayClearpayParams struct {
	Reference *string `form:"reference"`
}

PaymentIntentPaymentMethodOptionsAfterpayClearpayParams represents the AfterpayClearpay-specific options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsAlipay

type PaymentIntentPaymentMethodOptionsAlipay struct{}

PaymentIntentPaymentMethodOptionsAlipay is the set of Alipay-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsAlipayParams

type PaymentIntentPaymentMethodOptionsAlipayParams struct{}

PaymentIntentPaymentMethodOptionsAlipayParams represents the Alipay-specific options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsBancontact

type PaymentIntentPaymentMethodOptionsBancontact struct {
	PreferredLanguage string `json:"preferred_language"`
}

PaymentIntentPaymentMethodOptionsBancontact is the set of bancontact-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsBancontactParams

type PaymentIntentPaymentMethodOptionsBancontactParams struct {
	PreferredLanguage *string `form:"preferred_language"`
}

PaymentIntentPaymentMethodOptionsBancontactParams represents the bancontact-specific options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsBoleto added in v72.52.0

type PaymentIntentPaymentMethodOptionsBoleto struct {
	ExpiresAfterDays int64 `json:"expires_after_days"`
}

type PaymentIntentPaymentMethodOptionsBoletoParams added in v72.52.0

type PaymentIntentPaymentMethodOptionsBoletoParams struct {
	ExpiresAfterDays *int64 `form:"expires_after_days"`
}

PaymentIntentPaymentMethodOptionsBoletoParams represents the boleto-specific options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsCard

type PaymentIntentPaymentMethodOptionsCard struct {
	Installments        *PaymentIntentPaymentMethodOptionsCardInstallments       `json:"installments"`
	Network             PaymentMethodCardNetwork                                 `json:"network"`
	RequestThreeDSecure PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure `json:"request_three_d_secure"`
	SetupFutureUsage    PaymentIntentPaymentMethodOptionsCardSetupFutureUsage    `json:"setup_future_usage"`
}

PaymentIntentPaymentMethodOptionsCard is the set of card-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsCardInstallments

type PaymentIntentPaymentMethodOptionsCardInstallments struct {
	AvailablePlans []*PaymentIntentPaymentMethodOptionsCardInstallmentsPlan `json:"available_plans"`
	Enabled        bool                                                     `json:"enabled"`
	Plan           *PaymentIntentPaymentMethodOptionsCardInstallmentsPlan   `json:"plan"`
}

PaymentIntentPaymentMethodOptionsCardInstallments describe the installment options available for a card associated with that payment intent.

type PaymentIntentPaymentMethodOptionsCardInstallmentsParams

type PaymentIntentPaymentMethodOptionsCardInstallmentsParams struct {
	Enabled *bool                                                        `form:"enabled"`
	Plan    *PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams `form:"plan"`
}

PaymentIntentPaymentMethodOptionsCardInstallmentsParams controls whether to enable installment plans for this payment intent.

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlan

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlan struct {
	Count    int64                                                         `json:"count"`
	Interval PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval `json:"interval"`
	Type     PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType     `json:"type"`
}

PaymentIntentPaymentMethodOptionsCardInstallmentsPlan describe a specific card installment plan.

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval string

PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval is the interval of a card installment plan.

const (
	PaymentIntentPaymentMethodOptionsCardInstallmentsPlanIntervalMonth PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval = "month"
)

List of values that PaymentIntentPaymentMethodOptionsCardInstallmentsPlanInterval can take.

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams struct {
	Count    *int64  `form:"count"`
	Interval *string `form:"interval"`
	Type     *string `form:"type"`
}

PaymentIntentPaymentMethodOptionsCardInstallmentsPlanParams represents details about the installment plan chosen for this payment intent.

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType

type PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType string

PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType is the type of a card installment plan.

const (
	PaymentIntentPaymentMethodOptionsCardInstallmentsPlanTypeFixedCount PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType = "fixed_count"
)

List of values that PaymentIntentPaymentMethodOptionsCardInstallmentsPlanType can take.

type PaymentIntentPaymentMethodOptionsCardParams

type PaymentIntentPaymentMethodOptionsCardParams struct {
	CVCToken            *string                                                  `form:"cvc_token"`
	Installments        *PaymentIntentPaymentMethodOptionsCardInstallmentsParams `form:"installments"`
	MOTO                *bool                                                    `form:"moto"`
	Network             *string                                                  `form:"network"`
	RequestThreeDSecure *string                                                  `form:"request_three_d_secure"`
	SetupFutureUsage    *string                                                  `form:"setup_future_usage"`
}

PaymentIntentPaymentMethodOptionsCardParams represents the card-specific options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsCardPresent added in v72.73.0

type PaymentIntentPaymentMethodOptionsCardPresent struct{}

PaymentIntentPaymentMethodOptionsCardPresent is the set of Card Present-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsCardPresentParams added in v72.73.0

type PaymentIntentPaymentMethodOptionsCardPresentParams struct{}

If this is a `card_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.

type PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure

type PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure string

PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure is the list of allowed values controlling when to request 3D Secure on a PaymentIntent.

const (
	PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureAny           PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "any"
	PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureAutomatic     PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "automatic"
	PaymentIntentPaymentMethodOptionsCardRequestThreeDSecureChallengeOnly PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure = "challenge_only"
)

List of values that PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure can take.

type PaymentIntentPaymentMethodOptionsCardSetupFutureUsage added in v72.80.0

type PaymentIntentPaymentMethodOptionsCardSetupFutureUsage string

Indicates that you intend to make future payments with this PaymentIntent's payment method.

Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.

When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).

const (
	PaymentIntentPaymentMethodOptionsCardSetupFutureUsageNone       PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "none"
	PaymentIntentPaymentMethodOptionsCardSetupFutureUsageOffSession PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "off_session"
	PaymentIntentPaymentMethodOptionsCardSetupFutureUsageOnSession  PaymentIntentPaymentMethodOptionsCardSetupFutureUsage = "on_session"
)

List of values that PaymentIntentPaymentMethodOptionsCardSetupFutureUsage can take

type PaymentIntentPaymentMethodOptionsFPX added in v72.82.0

type PaymentIntentPaymentMethodOptionsFPX struct{}

type PaymentIntentPaymentMethodOptionsFPXParams added in v72.82.0

type PaymentIntentPaymentMethodOptionsFPXParams struct{}

If this is a `fpx` PaymentMethod, this sub-hash contains details about the FPX payment method options.

type PaymentIntentPaymentMethodOptionsGiropay added in v72.78.0

type PaymentIntentPaymentMethodOptionsGiropay struct{}

type PaymentIntentPaymentMethodOptionsGiropayParams added in v72.78.0

type PaymentIntentPaymentMethodOptionsGiropayParams struct{}

If this is a `giropay` PaymentMethod, this sub-hash contains details about the Giropay payment method options.

type PaymentIntentPaymentMethodOptionsGrabpay added in v72.82.0

type PaymentIntentPaymentMethodOptionsGrabpay struct{}

type PaymentIntentPaymentMethodOptionsGrabpayParams added in v72.82.0

type PaymentIntentPaymentMethodOptionsGrabpayParams struct{}

If this is a `grabpay` PaymentMethod, this sub-hash contains details about the Grabpay payment method options.

type PaymentIntentPaymentMethodOptionsIdeal added in v72.73.0

type PaymentIntentPaymentMethodOptionsIdeal struct{}

PaymentIntentPaymentMethodOptionsIdeal is the set of Ideal-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsIdealParams added in v72.73.0

type PaymentIntentPaymentMethodOptionsIdealParams struct{}

If this is a `ideal` PaymentMethod, this sub-hash contains details about the Ideal payment method options.

type PaymentIntentPaymentMethodOptionsInteracPresent added in v72.77.0

type PaymentIntentPaymentMethodOptionsInteracPresent struct{}

type PaymentIntentPaymentMethodOptionsInteracPresentParams added in v72.77.0

type PaymentIntentPaymentMethodOptionsInteracPresentParams struct{}

If this is a `interac_present` PaymentMethod, this sub-hash contains details about the Card Present payment method options.

type PaymentIntentPaymentMethodOptionsKlarna added in v72.70.0

type PaymentIntentPaymentMethodOptionsKlarna struct {
	PreferredLocale string `json:"preferred_locale"`
}

PaymentIntentPaymentMethodOptionsKlarna is the set of Klarna-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsKlarnaParams added in v72.70.0

type PaymentIntentPaymentMethodOptionsKlarnaParams struct {
	PreferredLocale *string `form:"preferred_locale"`
}

If this is a `klarna` PaymentMethod, this sub-hash contains details about the Klarna payment method options.

type PaymentIntentPaymentMethodOptionsOXXO added in v72.7.0

type PaymentIntentPaymentMethodOptionsOXXO struct {
	ExpiresAfterDays int64 `json:"expires_after_days"`
}

PaymentIntentPaymentMethodOptionsOXXO is the set of OXXO-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsOXXOParams added in v72.7.0

type PaymentIntentPaymentMethodOptionsOXXOParams struct {
	ExpiresAfterDays *int64 `form:"expires_after_days"`
}

PaymentIntentPaymentMethodOptionsOXXOParams represents the OXXO-specific options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsP24 added in v72.73.0

type PaymentIntentPaymentMethodOptionsP24 struct{}

PaymentIntentPaymentMethodOptionsP24 is the set of P24-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsP24Params added in v72.73.0

type PaymentIntentPaymentMethodOptionsP24Params struct {
	TOSShownAndAccepted *bool `form:"tos_shown_and_accepted"`
}

If this is a `p24` PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options.

type PaymentIntentPaymentMethodOptionsParams

type PaymentIntentPaymentMethodOptionsParams struct {
	ACSSDebit        *PaymentIntentPaymentMethodOptionsACSSDebitParams        `form:"acss_debit"`
	AfterpayClearpay *PaymentIntentPaymentMethodOptionsAfterpayClearpayParams `form:"afterpay_clearpay"`
	Alipay           *PaymentIntentPaymentMethodOptionsAlipayParams           `form:"alipay"`
	AUBECSDebit      *PaymentIntentPaymentMethodOptionsAUBECSDebitParams      `form:"au_becs_debit"`
	Bancontact       *PaymentIntentPaymentMethodOptionsBancontactParams       `form:"bancontact"`
	Boleto           *PaymentIntentPaymentMethodOptionsBoletoParams           `form:"boleto"`
	Card             *PaymentIntentPaymentMethodOptionsCardParams             `form:"card"`
	CardPresent      *PaymentIntentPaymentMethodOptionsCardPresentParams      `form:"card_present"`
	FPX              *PaymentIntentPaymentMethodOptionsFPXParams              `form:"fpx"`
	Giropay          *PaymentIntentPaymentMethodOptionsGiropayParams          `form:"giropay"`
	Grabpay          *PaymentIntentPaymentMethodOptionsGrabpayParams          `form:"grabpay"`
	Ideal            *PaymentIntentPaymentMethodOptionsIdealParams            `form:"ideal"`
	InteracPresent   *PaymentIntentPaymentMethodOptionsInteracPresentParams   `form:"interac_present"`
	Klarna           *PaymentIntentPaymentMethodOptionsKlarnaParams           `form:"klarna"`
	OXXO             *PaymentIntentPaymentMethodOptionsOXXOParams             `form:"oxxo"`
	P24              *PaymentIntentPaymentMethodOptionsP24Params              `form:"p24"`
	SepaDebit        *PaymentIntentPaymentMethodOptionsSepaDebitParams        `form:"sepa_debit"`
	Sofort           *PaymentIntentPaymentMethodOptionsSofortParams           `form:"sofort"`
	WechatPay        *PaymentIntentPaymentMethodOptionsWechatPayParams        `form:"wechat_pay"`
}

PaymentIntentPaymentMethodOptionsParams represents the type-specific payment method options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsSepaDebit added in v72.73.0

type PaymentIntentPaymentMethodOptionsSepaDebit struct {
	MandateOptions *PaymentIntentPaymentMethodOptionsSepaDebitMandateOptions `json:"mandate_options"`
}

PaymentIntentPaymentMethodOptionsSepaDebit is the set of SEPA Debit-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsSepaDebitMandateOptions added in v72.73.0

type PaymentIntentPaymentMethodOptionsSepaDebitMandateOptions struct{}

type PaymentIntentPaymentMethodOptionsSepaDebitMandateOptionsParams added in v72.73.0

type PaymentIntentPaymentMethodOptionsSepaDebitMandateOptionsParams struct{}

Additional fields for Mandate creation

type PaymentIntentPaymentMethodOptionsSepaDebitParams added in v72.73.0

type PaymentIntentPaymentMethodOptionsSepaDebitParams struct {
	MandateOptions *PaymentIntentPaymentMethodOptionsSepaDebitMandateOptionsParams `form:"mandate_options"`
}

If this is a `sepa_debit` PaymentIntent, this sub-hash contains details about the SEPA Debit payment method options.

type PaymentIntentPaymentMethodOptionsSofort added in v72.2.0

type PaymentIntentPaymentMethodOptionsSofort struct {
	PreferredLanguage string `json:"preferred_language"`
}

PaymentIntentPaymentMethodOptionsSofort is the set of sofort-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsSofortParams added in v72.2.0

type PaymentIntentPaymentMethodOptionsSofortParams struct {
	PreferredLanguage *string `form:"preferred_language"`
}

PaymentIntentPaymentMethodOptionsSofortParams represents the sofort-specific options applied to a PaymentIntent.

type PaymentIntentPaymentMethodOptionsWechatPay added in v72.54.0

type PaymentIntentPaymentMethodOptionsWechatPay struct {
	AppID  string                                           `json:"app_id"`
	Client PaymentIntentPaymentMethodOptionsWechatPayClient `json:"client"`
}

PaymentIntentPaymentMethodOptionsWechatPay is the set of wechat_pay-specific options associated with that payment intent.

type PaymentIntentPaymentMethodOptionsWechatPayClient added in v72.54.0

type PaymentIntentPaymentMethodOptionsWechatPayClient string
const (
	PaymentIntentPaymentMethodOptionsWechatPayClientAndroid PaymentIntentPaymentMethodOptionsWechatPayClient = "android"
	PaymentIntentPaymentMethodOptionsWechatPayClientIOS     PaymentIntentPaymentMethodOptionsWechatPayClient = "ios"
	PaymentIntentPaymentMethodOptionsWechatPayClientWeb     PaymentIntentPaymentMethodOptionsWechatPayClient = "web"
)

List of values that PaymentIntentPaymentMethodOptionsWechatPayClient can take

type PaymentIntentPaymentMethodOptionsWechatPayParams added in v72.54.0

type PaymentIntentPaymentMethodOptionsWechatPayParams struct {
	AppID  *string `form:"app_id"`
	Client *string `form:"client"`
}

PaymentIntentPaymentMethodOptionsWechatPayParams represents the wechat_pay-specific options applied to a PaymentIntent.

type PaymentIntentProcessing added in v72.81.0

type PaymentIntentProcessing struct {
	Card *PaymentIntentProcessingCard `json:"card"`
	Type PaymentIntentProcessingType  `json:"type"`
}

If present, this property tells you about the processing state of the payment.

type PaymentIntentProcessingCard added in v72.81.0

type PaymentIntentProcessingCard struct{}

type PaymentIntentProcessingType added in v72.81.0

type PaymentIntentProcessingType string

Type of the payment method for which payment is in `processing` state, one of `card`.

const (
	PaymentIntentProcessingTypeCard PaymentIntentProcessingType = "card"
)

List of values that PaymentIntentProcessingType can take

type PaymentIntentSetupFutureUsage

type PaymentIntentSetupFutureUsage string

PaymentIntentSetupFutureUsage is the list of allowed values for SetupFutureUsage.

const (
	PaymentIntentSetupFutureUsageOffSession PaymentIntentSetupFutureUsage = "off_session"
	PaymentIntentSetupFutureUsageOnSession  PaymentIntentSetupFutureUsage = "on_session"
)

List of values that PaymentIntentSetupFutureUsage can take.

type PaymentIntentStatus

type PaymentIntentStatus string

PaymentIntentStatus is the list of allowed values for the payment intent's status.

const (
	PaymentIntentStatusCanceled              PaymentIntentStatus = "canceled"
	PaymentIntentStatusProcessing            PaymentIntentStatus = "processing"
	PaymentIntentStatusRequiresAction        PaymentIntentStatus = "requires_action"
	PaymentIntentStatusRequiresCapture       PaymentIntentStatus = "requires_capture"
	PaymentIntentStatusRequiresConfirmation  PaymentIntentStatus = "requires_confirmation"
	PaymentIntentStatusRequiresPaymentMethod PaymentIntentStatus = "requires_payment_method"
	PaymentIntentStatusSucceeded             PaymentIntentStatus = "succeeded"
)

List of values that PaymentIntentStatus can take.

type PaymentIntentTransferData

type PaymentIntentTransferData struct {
	Amount      int64    `json:"amount"`
	Destination *Account `json:"destination"`
}

PaymentIntentTransferData represents the information for the transfer associated with a payment intent.

type PaymentIntentTransferDataParams

type PaymentIntentTransferDataParams struct {
	Amount      *int64  `form:"amount"`
	Destination *string `form:"destination"`
}

PaymentIntentTransferDataParams is the set of parameters allowed for the transfer hash.

type PaymentMethod

type PaymentMethod struct {
	APIResource
	ACSSDebit        *PaymentMethodACSSDebit        `json:"acss_debit"`
	AfterpayClearpay *PaymentMethodAfterpayClearpay `json:"afterpay_clearpay"`
	Alipay           *PaymentMethodAlipay           `json:"alipay"`
	AUBECSDebit      *PaymentMethodAUBECSDebit      `json:"au_becs_debit"`
	BACSDebit        *PaymentMethodBACSDebit        `json:"bacs_debit"`
	Bancontact       *PaymentMethodBancontact       `json:"bancontact"`
	BillingDetails   *BillingDetails                `json:"billing_details"`
	Boleto           *PaymentMethodBoleto           `json:"boleto"`
	Card             *PaymentMethodCard             `json:"card"`
	CardPresent      *PaymentMethodCardPresent      `json:"card_present"`
	Created          int64                          `json:"created"`
	Customer         *Customer                      `json:"customer"`
	EPS              *PaymentMethodEPS              `json:"eps"`
	FPX              *PaymentMethodFPX              `json:"fpx"`
	Giropay          *PaymentMethodGiropay          `json:"giropay"`
	Grabpay          *PaymentMethodGrabpay          `json:"grabpay"`
	ID               string                         `json:"id"`
	Ideal            *PaymentMethodIdeal            `json:"ideal"`
	InteracPresent   *PaymentMethodInteracPresent   `json:"interac_present"`
	Klarna           *PaymentMethodKlarna           `json:"klarna"`
	Livemode         bool                           `json:"livemode"`
	Metadata         map[string]string              `json:"metadata"`
	Object           string                         `json:"object"`
	OXXO             *PaymentMethodOXXO             `json:"oxxo"`
	P24              *PaymentMethodP24              `json:"p24"`
	SepaDebit        *PaymentMethodSepaDebit        `json:"sepa_debit"`
	Sofort           *PaymentMethodSofort           `json:"sofort"`
	Type             PaymentMethodType              `json:"type"`
	WechatPay        *PaymentMethodWechatPay        `json:"wechat_pay"`
}

PaymentMethod is the resource representing a PaymentMethod.

func (*PaymentMethod) UnmarshalJSON

func (p *PaymentMethod) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a PaymentMethod. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type PaymentMethodACSSDebit added in v72.42.0

type PaymentMethodACSSDebit struct {
	BankName          string `json:"bank_name"`
	Fingerprint       string `json:"fingerprint"`
	InstitutionNumber string `json:"institution_number"`
	Last4             string `json:"last4"`
	TransitNumber     string `json:"transit_number"`
}

PaymentMethodACSSDebit TODO

type PaymentMethodACSSDebitParams added in v72.42.0

type PaymentMethodACSSDebitParams struct {
	AccountNumber     *string `form:"account_number"`
	InstitutionNumber *string `form:"institution_number"`
	TransitNumber     *string `form:"transit_number"`
}

PaymentMethodACSSDebitParams TODO

type PaymentMethodAUBECSDebit

type PaymentMethodAUBECSDebit struct {
	BSBNumber   string `json:"bsb_number"`
	Fingerprint string `json:"fingerprint"`
	Last4       string `json:"last4"`
}

PaymentMethodAUBECSDebit represents AUBECSDebit-specific properties (Australia Only).

type PaymentMethodAUBECSDebitParams

type PaymentMethodAUBECSDebitParams struct {
	AccountNumber *string `form:"account_number"`
	BSBNumber     *string `form:"bsb_number"`
}

PaymentMethodAUBECSDebitParams is the set of parameters allowed for the `AUBECSDebit` hash when creating a PaymentMethod of type AUBECSDebit.

type PaymentMethodAfterpayClearpay added in v72.34.0

type PaymentMethodAfterpayClearpay struct{}

PaymentMethodAfterpayClearpay represents the AfterpayClearpay properties.

type PaymentMethodAfterpayClearpayParams added in v72.34.0

type PaymentMethodAfterpayClearpayParams struct{}

PaymentMethodAfterpayClearpayParams is the set of parameters allowed for the `afterpay_clearpay` hash when creating a PaymentMethod of type AfterpayClearpay.

type PaymentMethodAlipay

type PaymentMethodAlipay struct{}

PaymentMethodAlipay represents the Alipay properties.

type PaymentMethodAlipayParams

type PaymentMethodAlipayParams struct{}

PaymentMethodAlipayParams is the set of parameters allowed for the `alipay` hash when creating a PaymentMethod of type Alipay.

type PaymentMethodAttachParams

type PaymentMethodAttachParams struct {
	Params   `form:"*"`
	Customer *string `form:"customer"`
}

PaymentMethodAttachParams is the set of parameters that can be used when attaching a PaymentMethod to a Customer.

type PaymentMethodBACSDebit

type PaymentMethodBACSDebit struct {
	Fingerprint string `json:"fingerprint"`
	Last4       string `json:"last4"`
	SortCode    string `json:"sort_code"`
}

PaymentMethodBACSDebit represents the BACS Debit properties.

type PaymentMethodBACSDebitParams

type PaymentMethodBACSDebitParams struct {
	AccountNumber *string `form:"account_number"`
	SortCode      *string `form:"sort_code"`
}

PaymentMethodBACSDebitParams is the set of parameters allowed for BACS Debit payment method.

type PaymentMethodBancontact

type PaymentMethodBancontact struct{}

PaymentMethodBancontact represents the Bancontact properties.

type PaymentMethodBancontactParams

type PaymentMethodBancontactParams struct{}

PaymentMethodBancontactParams is the set of parameters allowed for the `bancontact` hash when creating a PaymentMethod of type Bancontact.

type PaymentMethodBoleto added in v72.52.0

type PaymentMethodBoleto struct {
	TaxID string `json:"tax_id"`
}

PaymentMethodBoleto represents the Boleto properties.

type PaymentMethodBoletoParams added in v72.52.0

type PaymentMethodBoletoParams struct {
	TaxID *string `form:"tax_id"`
}

PaymentMethodBoletoParams is the set of parameters allowed for the `boleto` hash when creating a PaymentMethod of type Boleto

type PaymentMethodCard

type PaymentMethodCard struct {
	Brand             PaymentMethodCardBrand              `json:"brand"`
	Checks            *PaymentMethodCardChecks            `json:"checks"`
	Country           string                              `json:"country"`
	ExpMonth          uint64                              `json:"exp_month"`
	ExpYear           uint64                              `json:"exp_year"`
	Fingerprint       string                              `json:"fingerprint"`
	Funding           CardFunding                         `json:"funding"`
	Last4             string                              `json:"last4"`
	Networks          *PaymentMethodCardNetworks          `json:"networks"`
	ThreeDSecureUsage *PaymentMethodCardThreeDSecureUsage `json:"three_d_secure_usage"`
	Wallet            *PaymentMethodCardWallet            `json:"wallet"`
	// Please note that the fields below are for internal use only and are not returned
	// as part of standard API requests.
	Description string `json:"description"`
	IIN         string `json:"iin"`
	Issuer      string `json:"issuer"`
}

PaymentMethodCard represents the card-specific properties.

type PaymentMethodCardBrand

type PaymentMethodCardBrand string

PaymentMethodCardBrand is the list of allowed values for the brand property on a Card PaymentMethod.

const (
	PaymentMethodCardBrandAmex       PaymentMethodCardBrand = "amex"
	PaymentMethodCardBrandDiners     PaymentMethodCardBrand = "diners"
	PaymentMethodCardBrandDiscover   PaymentMethodCardBrand = "discover"
	PaymentMethodCardBrandJCB        PaymentMethodCardBrand = "jcb"
	PaymentMethodCardBrandMastercard PaymentMethodCardBrand = "mastercard"
	PaymentMethodCardBrandUnionpay   PaymentMethodCardBrand = "unionpay"
	PaymentMethodCardBrandUnknown    PaymentMethodCardBrand = "unknown"
	PaymentMethodCardBrandVisa       PaymentMethodCardBrand = "visa"
)

List of values that PaymentMethodCardBrand can take.

type PaymentMethodCardChecks

type PaymentMethodCardChecks struct {
	AddressLine1Check      CardVerification `json:"address_line1_check"`
	AddressPostalCodeCheck CardVerification `json:"address_postal_code_check"`
	CVCCheck               CardVerification `json:"cvc_check"`
}

PaymentMethodCardChecks represents the checks associated with a Card PaymentMethod.

type PaymentMethodCardNetwork

type PaymentMethodCardNetwork string

PaymentMethodCardNetwork is the list of allowed values to represent the network used for a card-like transaction.

const (
	PaymentMethodCardNetworkAmex       PaymentMethodCardNetwork = "amex"
	PaymentMethodCardNetworkDiners     PaymentMethodCardNetwork = "diners"
	PaymentMethodCardNetworkDiscover   PaymentMethodCardNetwork = "discover"
	PaymentMethodCardNetworkInterac    PaymentMethodCardNetwork = "interac"
	PaymentMethodCardNetworkJCB        PaymentMethodCardNetwork = "jcb"
	PaymentMethodCardNetworkMastercard PaymentMethodCardNetwork = "mastercard"
	PaymentMethodCardNetworkUnionpay   PaymentMethodCardNetwork = "unionpay"
	PaymentMethodCardNetworkUnknown    PaymentMethodCardNetwork = "unknown"
	PaymentMethodCardNetworkVisa       PaymentMethodCardNetwork = "visa"
)

List of values that PaymentMethodCardNetwork can take.

type PaymentMethodCardNetworks

type PaymentMethodCardNetworks struct {
	Available []PaymentMethodCardNetwork `json:"available"`
	Preferred PaymentMethodCardNetwork   `json:"preferred"`
}

PaymentMethodCardNetworks represents the card networks that can be used to process the payment.

type PaymentMethodCardParams

type PaymentMethodCardParams struct {
	CVC      *string `form:"cvc"`
	ExpMonth *string `form:"exp_month"`
	ExpYear  *string `form:"exp_year"`
	Number   *string `form:"number"`
	Token    *string `form:"token"`
}

PaymentMethodCardParams is the set of parameters allowed for the `card` hash when creating a PaymentMethod of type card.

type PaymentMethodCardPresent

type PaymentMethodCardPresent struct{}

PaymentMethodCardPresent represents the card-present-specific properties.

type PaymentMethodCardThreeDSecureUsage

type PaymentMethodCardThreeDSecureUsage struct {
	Supported bool `json:"supported"`
}

PaymentMethodCardThreeDSecureUsage represents the 3DS usage for that Card PaymentMethod.

type PaymentMethodCardWallet

type PaymentMethodCardWallet struct {
	AmexExpressCheckout *PaymentMethodCardWalletAmexExpressCheckout `json:"amex_express_checkout"`
	ApplePay            *PaymentMethodCardWalletApplePay            `json:"apple_pay"`
	DynamicLast4        string                                      `json:"dynamic_last4"`
	GooglePay           *PaymentMethodCardWalletGooglePay           `json:"google_pay"`
	Masterpass          *PaymentMethodCardWalletMasterpass          `json:"masterpass"`
	SamsungPay          *PaymentMethodCardWalletSamsungPay          `json:"samsung_pay"`
	Type                PaymentMethodCardWalletType                 `json:"type"`
	VisaCheckout        *PaymentMethodCardWalletVisaCheckout        `json:"visa_checkout"`
}

PaymentMethodCardWallet represents the details of the card wallet if this Card PaymentMethod is part of a card wallet.

type PaymentMethodCardWalletAmexExpressCheckout added in v72.73.0

type PaymentMethodCardWalletAmexExpressCheckout struct{}

type PaymentMethodCardWalletApplePay added in v72.73.0

type PaymentMethodCardWalletApplePay struct{}

type PaymentMethodCardWalletGooglePay added in v72.73.0

type PaymentMethodCardWalletGooglePay struct{}

type PaymentMethodCardWalletMasterpass added in v72.73.0

type PaymentMethodCardWalletMasterpass struct {
	BillingAddress  *Address `json:"billing_address"`
	Email           string   `json:"email"`
	Name            string   `json:"name"`
	ShippingAddress *Address `json:"shipping_address"`
}

type PaymentMethodCardWalletSamsungPay added in v72.73.0

type PaymentMethodCardWalletSamsungPay struct{}

type PaymentMethodCardWalletType

type PaymentMethodCardWalletType string

PaymentMethodCardWalletType is the list of allowed values for the type a wallet can take on a Card PaymentMethod.

const (
	PaymentMethodCardWalletTypeAmexExpressCheckout PaymentMethodCardWalletType = "amex_express_checkout"
	PaymentMethodCardWalletTypeApplePay            PaymentMethodCardWalletType = "apple_pay"
	PaymentMethodCardWalletTypeGooglePay           PaymentMethodCardWalletType = "google_pay"
	PaymentMethodCardWalletTypeMasterpass          PaymentMethodCardWalletType = "masterpass"
	PaymentMethodCardWalletTypeSamsungPay          PaymentMethodCardWalletType = "samsung_pay"
	PaymentMethodCardWalletTypeVisaCheckout        PaymentMethodCardWalletType = "visa_checkout"
)

List of values that PaymentMethodCardWalletType can take.

type PaymentMethodCardWalletVisaCheckout added in v72.73.0

type PaymentMethodCardWalletVisaCheckout struct {
	BillingAddress  *Address `json:"billing_address"`
	Email           string   `json:"email"`
	Name            string   `json:"name"`
	ShippingAddress *Address `json:"shipping_address"`
}

type PaymentMethodDetachParams

type PaymentMethodDetachParams struct {
	Params `form:"*"`
}

PaymentMethodDetachParams is the set of parameters that can be used when detaching a PaymentMethod.

type PaymentMethodEPS

type PaymentMethodEPS struct {
	Bank string `json:"bank"`
}

PaymentMethodEPS represents the EPS properties.

type PaymentMethodEPSParams

type PaymentMethodEPSParams struct {
	Bank *string `form:"bank"`
}

PaymentMethodEPSParams is the set of parameters allowed for the `eps` hash when creating a PaymentMethod of type EPS.

type PaymentMethodFPX

type PaymentMethodFPX struct {
	AccountHolderType PaymentMethodFPXAccountHolderType `json:"account_holder_type"`
	Bank              string                            `json:"bank"`
	TransactionID     string                            `json:"transaction_id"`
}

PaymentMethodFPX represents FPX-specific properties (Malaysia Only).

type PaymentMethodFPXAccountHolderType

type PaymentMethodFPXAccountHolderType string

PaymentMethodFPXAccountHolderType is a list of string values that FPX AccountHolderType accepts.

const (
	PaymentMethodFPXAccountHolderTypeCompany    PaymentMethodFPXAccountHolderType = "company"
	PaymentMethodFPXAccountHolderTypeIndividual PaymentMethodFPXAccountHolderType = "individual"
)

List of values that PaymentMethodFPXAccountHolderType can take

type PaymentMethodFPXParams

type PaymentMethodFPXParams struct {
	AccountHolderType *string `form:"account_holder_type"`
	Bank              *string `form:"bank"`
}

PaymentMethodFPXParams is the set of parameters allowed for the `fpx` hash when creating a PaymentMethod of type fpx.

type PaymentMethodGiropay

type PaymentMethodGiropay struct{}

PaymentMethodGiropay represents the Giropay properties.

type PaymentMethodGiropayParams

type PaymentMethodGiropayParams struct{}

PaymentMethodGiropayParams is the set of parameters allowed for the `giropay` hash when creating a PaymentMethod of type Giropay.

type PaymentMethodGrabpay added in v72.24.0

type PaymentMethodGrabpay struct{}

PaymentMethodGrabpay represents the Grabpay properties.

type PaymentMethodGrabpayParams added in v72.24.0

type PaymentMethodGrabpayParams struct{}

PaymentMethodGrabpayParams is the set of parameters allowed for the `grabpay` hash when creating a PaymentMethod of type Grabpay.

type PaymentMethodIdeal

type PaymentMethodIdeal struct {
	Bank string `json:"bank"`
	Bic  string `json:"bic"`
}

PaymentMethodIdeal represents the iDEAL-specific properties.

type PaymentMethodIdealParams

type PaymentMethodIdealParams struct {
	Bank *string `form:"bank"`
}

PaymentMethodIdealParams is the set of parameters allowed for the `ideal` hash when creating a PaymentMethod of type ideal.

type PaymentMethodInteracPresent

type PaymentMethodInteracPresent struct{}

PaymentMethodInteracPresent represents the interac present properties.

type PaymentMethodInteracPresentParams

type PaymentMethodInteracPresentParams struct{}

PaymentMethodInteracPresentParams is the set of parameters allowed for the `interac_present` hash when creating a PaymentMethod of type interac_present.

type PaymentMethodKlarna added in v72.70.0

type PaymentMethodKlarna struct {
	DOB *PaymentMethodKlarnaDOB `json:"dob"`
}

type PaymentMethodKlarnaDOB added in v72.70.0

type PaymentMethodKlarnaDOB struct {
	Day   int64 `json:"day"`
	Month int64 `json:"month"`
	Year  int64 `json:"year"`
}

The customer's date of birth, if provided.

type PaymentMethodKlarnaDOBParams added in v72.70.0

type PaymentMethodKlarnaDOBParams struct {
	Day   *int64 `form:"day"`
	Month *int64 `form:"month"`
	Year  *int64 `form:"year"`
}

Customer's date of birth

type PaymentMethodKlarnaParams added in v72.70.0

type PaymentMethodKlarnaParams struct {
	DOB *PaymentMethodKlarnaDOBParams `form:"dob"`
}

If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.

type PaymentMethodList

type PaymentMethodList struct {
	APIResource
	ListMeta
	Data []*PaymentMethod `json:"data"`
}

PaymentMethodList is a list of PaymentMethods as retrieved from a list endpoint.

type PaymentMethodListParams

type PaymentMethodListParams struct {
	ListParams `form:"*"`
	Customer   *string `form:"customer"`
	Type       *string `form:"type"`
}

PaymentMethodListParams is the set of parameters that can be used when listing PaymentMethods.

type PaymentMethodOXXO added in v72.7.0

type PaymentMethodOXXO struct{}

PaymentMethodOXXO represents the OXXO-specific properties.

type PaymentMethodOXXOParams added in v72.7.0

type PaymentMethodOXXOParams struct{}

PaymentMethodOXXOParams is the set of parameters allowed for the `oxxo` hash when creating a PaymentMethod of type OXXO.

type PaymentMethodP24

type PaymentMethodP24 struct {
	Bank string `json:"bank"`
}

PaymentMethodP24 represents the P24 properties.

type PaymentMethodP24Params

type PaymentMethodP24Params struct {
	Bank                *string `form:"bank"`
	TOSShownAndAccepted *bool   `form:"tos_shown_and_accepted"`
}

PaymentMethodP24Params is the set of parameters allowed for the `p24` hash when creating a PaymentMethod of type P24.

type PaymentMethodParams

type PaymentMethodParams struct {
	Params           `form:"*"`
	ACSSDebit        *PaymentMethodACSSDebitParams        `form:"acss_debit"`
	AfterpayClearpay *PaymentMethodAfterpayClearpayParams `form:"afterpay_clearpay"`
	Alipay           *PaymentMethodAlipayParams           `form:"alipay"`
	AUBECSDebit      *PaymentMethodAUBECSDebitParams      `form:"au_becs_debit"`
	BACSDebit        *PaymentMethodBACSDebitParams        `form:"bacs_debit"`
	Bancontact       *PaymentMethodBancontactParams       `form:"bancontact"`
	BillingDetails   *BillingDetailsParams                `form:"billing_details"`
	Boleto           *PaymentMethodBoletoParams           `form:"boleto"`
	Card             *PaymentMethodCardParams             `form:"card"`
	EPS              *PaymentMethodEPSParams              `form:"eps"`
	FPX              *PaymentMethodFPXParams              `form:"fpx"`
	Giropay          *PaymentMethodGiropayParams          `form:"giropay"`
	Grabpay          *PaymentMethodGrabpayParams          `form:"grabpay"`
	Ideal            *PaymentMethodIdealParams            `form:"ideal"`
	InteracPresent   *PaymentMethodInteracPresentParams   `form:"interac_present"`
	Klarna           *PaymentMethodKlarnaParams           `form:"klarna"`
	OXXO             *PaymentMethodOXXOParams             `form:"oxxo"`
	P24              *PaymentMethodP24Params              `form:"p24"`
	SepaDebit        *PaymentMethodSepaDebitParams        `form:"sepa_debit"`
	Sofort           *PaymentMethodSofortParams           `form:"sofort"`
	Type             *string                              `form:"type"`
	WechatPay        *PaymentMethodWechatPayParams        `form:"wechat_pay"`
	// The following parameters are used when cloning a PaymentMethod to the connected account
	Customer      *string `form:"customer"`
	PaymentMethod *string `form:"payment_method"`
}

PaymentMethodParams is the set of parameters that can be used when creating or updating a PaymentMethod.

type PaymentMethodSepaDebit

type PaymentMethodSepaDebit struct {
	BankCode      string                               `json:"bank_code"`
	BranchCode    string                               `json:"branch_code"`
	Country       string                               `json:"country"`
	Fingerprint   string                               `json:"fingerprint"`
	GeneratedFrom *PaymentMethodSepaDebitGeneratedFrom `json:"generated_from"`
	Last4         string                               `json:"last4"`
}

PaymentMethodSepaDebit represents the SEPA-debit-specific properties.

type PaymentMethodSepaDebitGeneratedFrom added in v72.12.0

type PaymentMethodSepaDebitGeneratedFrom struct {
	Charge       *Charge       `json:"charge"`
	SetupAttempt *SetupAttempt `json:"setup_attempt"`
}

PaymentMethodSepaDebitGeneratedFrom represents information about the object that generated this PaymentMethod

type PaymentMethodSepaDebitParams

type PaymentMethodSepaDebitParams struct {
	Iban *string `form:"iban"`
}

PaymentMethodSepaDebitParams is the set of parameters allowed for the `sepa_debit` hash when creating a PaymentMethod of type sepa_debit.

type PaymentMethodSofort added in v72.2.0

type PaymentMethodSofort struct {
	Country string `json:"country"`
}

PaymentMethodSofort represents the Sofort-specific properties.

type PaymentMethodSofortParams added in v72.2.0

type PaymentMethodSofortParams struct {
	Country *string `form:"country"`
}

PaymentMethodSofortParams is the set of parameters allowed for the `sofort` hash when creating a PaymentMethod of type sofort.

type PaymentMethodType

type PaymentMethodType string

PaymentMethodType is the list of allowed values for the payment method type.

const (
	PaymentMethodTypeACSSDebit        PaymentMethodType = "acss_debit"
	PaymentMethodTypeAfterpayClearpay PaymentMethodType = "afterpay_clearpay"
	PaymentMethodTypeAlipay           PaymentMethodType = "alipay"
	PaymentMethodTypeAUBECSDebit      PaymentMethodType = "au_becs_debit"
	PaymentMethodTypeBACSDebit        PaymentMethodType = "bacs_debit"
	PaymentMethodTypeBancontact       PaymentMethodType = "bancontact"
	PaymentMethodTypeBoleto           PaymentMethodType = "boleto"
	PaymentMethodTypeCard             PaymentMethodType = "card"
	PaymentMethodTypeCardPresent      PaymentMethodType = "card_present"
	PaymentMethodTypeEPS              PaymentMethodType = "eps"
	PaymentMethodTypeFPX              PaymentMethodType = "fpx"
	PaymentMethodTypeGiropay          PaymentMethodType = "giropay"
	PaymentMethodTypeGrabpay          PaymentMethodType = "grabpay"
	PaymentMethodTypeIdeal            PaymentMethodType = "ideal"
	PaymentMethodTypeInteracPresent   PaymentMethodType = "interac_present"
	PaymentMethodTypeKlarna           PaymentMethodType = "klarna"
	PaymentMethodTypeOXXO             PaymentMethodType = "oxxo"
	PaymentMethodTypeP24              PaymentMethodType = "p24"
	PaymentMethodTypeSepaDebit        PaymentMethodType = "sepa_debit"
	PaymentMethodTypeSofort           PaymentMethodType = "sofort"
	PaymentMethodTypeWechatPay        PaymentMethodType = "wechat_pay"
)

List of values that PaymentMethodType can take.

type PaymentMethodWechatPay added in v72.54.0

type PaymentMethodWechatPay struct{}

PaymentMethodWechatPay represents the WeChatPay-specific properties.

type PaymentMethodWechatPayParams added in v72.54.0

type PaymentMethodWechatPayParams struct{}

PaymentMethodWechatPayParams is the set of parameters allowed for the `wechat_pay` hash when creating a PaymentMethod of type wechat_pay.

type PaymentSource

type PaymentSource struct {
	APIResource
	BankAccount  *BankAccount      `json:"-"`
	Card         *Card             `json:"-"`
	Deleted      bool              `json:"deleted"`
	ID           string            `json:"id"`
	SourceObject *Source           `json:"-"`
	Type         PaymentSourceType `json:"object"`
}

PaymentSource describes the payment source used to make a Charge. The Type should indicate which object is fleshed out (eg. BankAccount or Card) For more details see https://stripe.com/docs/api#retrieve_charge

func (*PaymentSource) MarshalJSON

func (s *PaymentSource) MarshalJSON() ([]byte, error)

MarshalJSON handles serialization of a PaymentSource. This custom marshaling is needed because the specific type of payment instrument it represents is specified by the Type

func (*PaymentSource) UnmarshalJSON

func (s *PaymentSource) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a PaymentSource. This custom unmarshaling is needed because the specific type of payment instrument it refers to is specified in the JSON

type PaymentSourceOwnerParams added in v72.82.0

type PaymentSourceOwnerParams struct {
	Address *AddressParams `form:"address"`
	Email   *string        `form:"email"`
	Name    *string        `form:"name"`
	Phone   *string        `form:"phone"`
}

type PaymentSourceType

type PaymentSourceType string

PaymentSourceType consts represent valid payment sources.

const (
	PaymentSourceTypeAccount     PaymentSourceType = "account"
	PaymentSourceTypeBankAccount PaymentSourceType = "bank_account"
	PaymentSourceTypeCard        PaymentSourceType = "card"
	PaymentSourceTypeObject      PaymentSourceType = "source"
)

List of values that PaymentSourceType can take.

type Payout

type Payout struct {
	APIResource
	Amount                    int64               `json:"amount"`
	ArrivalDate               int64               `json:"arrival_date"`
	Automatic                 bool                `json:"automatic"`
	BalanceTransaction        *BalanceTransaction `json:"balance_transaction"`
	BankAccount               *BankAccount        `json:"bank_account"`
	Card                      *Card               `json:"card"`
	Created                   int64               `json:"created"`
	Currency                  Currency            `json:"currency"`
	Description               *string             `json:"description"`
	Destination               *PayoutDestination  `json:"destination"`
	FailureBalanceTransaction *BalanceTransaction `json:"failure_balance_transaction"`
	FailureCode               PayoutFailureCode   `json:"failure_code"`
	FailureMessage            string              `json:"failure_message"`
	ID                        string              `json:"id"`
	Livemode                  bool                `json:"livemode"`
	Metadata                  map[string]string   `json:"metadata"`
	Method                    PayoutMethodType    `json:"method"`
	Object                    string              `json:"object"`
	OriginalPayout            *Payout             `json:"original_payout"`
	ReversedBy                *Payout             `json:"reversed_by"`
	SourceType                PayoutSourceType    `json:"source_type"`
	StatementDescriptor       string              `json:"statement_descriptor"`
	Status                    PayoutStatus        `json:"status"`
	Type                      PayoutType          `json:"type"`
}

Payout is the resource representing a Stripe payout. For more details see https://stripe.com/docs/api#payouts.

func (*Payout) UnmarshalJSON

func (p *Payout) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Payout. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type PayoutDestination

type PayoutDestination struct {
	ID   string                `json:"id"`
	Type PayoutDestinationType `json:"object"`

	BankAccount *BankAccount `json:"-"`
	Card        *Card        `json:"-"`
}

PayoutDestination describes the destination of a Payout. The Type should indicate which object is fleshed out For more details see https://stripe.com/docs/api/?lang=go#payout_object

func (*PayoutDestination) UnmarshalJSON

func (p *PayoutDestination) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a PayoutDestination. This custom unmarshaling is needed because the specific type of PayoutDestination it refers to is specified in the JSON

type PayoutDestinationType

type PayoutDestinationType string

PayoutDestinationType consts represent valid payout destinations.

const (
	PayoutDestinationTypeBankAccount PayoutDestinationType = "bank_account"
	PayoutDestinationTypeCard        PayoutDestinationType = "card"
)

List of values that PayoutDestinationType can take.

type PayoutFailureCode

type PayoutFailureCode string

PayoutFailureCode is the list of allowed values for the payout's failure code.

const (
	PayoutFailureCodeAccountClosed         PayoutFailureCode = "account_closed"
	PayoutFailureCodeAccountFrozen         PayoutFailureCode = "account_frozen"
	PayoutFailureCodeBankAccountRestricted PayoutFailureCode = "bank_account_restricted"
	PayoutFailureCodeBankOwnershipChanged  PayoutFailureCode = "bank_ownership_changed"
	PayoutFailureCodeCouldNotProcess       PayoutFailureCode = "could_not_process"
	PayoutFailureCodeDebitNotAuthorized    PayoutFailureCode = "debit_not_authorized"
	PayoutFailureCodeInsufficientFunds     PayoutFailureCode = "insufficient_funds"
	PayoutFailureCodeInvalidAccountNumber  PayoutFailureCode = "invalid_account_number"
	PayoutFailureCodeInvalidCurrency       PayoutFailureCode = "invalid_currency"
	PayoutFailureCodeNoAccount             PayoutFailureCode = "no_account"
)

List of values that PayoutFailureCode can take.

type PayoutInterval

type PayoutInterval string

PayoutInterval describes the payout interval.

const (
	PayoutIntervalDaily   PayoutInterval = "daily"
	PayoutIntervalManual  PayoutInterval = "manual"
	PayoutIntervalMonthly PayoutInterval = "monthly"
	PayoutIntervalWeekly  PayoutInterval = "weekly"
)

List of values that PayoutInterval can take.

type PayoutList

type PayoutList struct {
	APIResource
	ListMeta
	Data []*Payout `json:"data"`
}

PayoutList is a list of payouts as retrieved from a list endpoint.

type PayoutListParams

type PayoutListParams struct {
	ListParams       `form:"*"`
	ArrivalDate      *int64            `form:"arrival_date"`
	ArrivalDateRange *RangeQueryParams `form:"arrival_date"`
	Created          *int64            `form:"created"`
	CreatedRange     *RangeQueryParams `form:"created"`
	Destination      *string           `form:"destination"`
	Status           *string           `form:"status"`
}

PayoutListParams is the set of parameters that can be used when listing payouts. For more details see https://stripe.com/docs/api#list_payouts.

type PayoutMethodType

type PayoutMethodType string

PayoutMethodType represents the type of payout

const (
	PayoutMethodInstant  PayoutMethodType = "instant"
	PayoutMethodStandard PayoutMethodType = "standard"
)

List of values that PayoutMethodType can take.

type PayoutParams

type PayoutParams struct {
	Params              `form:"*"`
	Amount              *int64  `form:"amount"`
	Currency            *string `form:"currency"`
	Description         *string `form:"description"`
	Destination         *string `form:"destination"`
	Method              *string `form:"method"`
	SourceType          *string `form:"source_type"`
	StatementDescriptor *string `form:"statement_descriptor"`
}

PayoutParams is the set of parameters that can be used when creating or updating a payout. For more details see https://stripe.com/docs/api#create_payout and https://stripe.com/docs/api#update_payout.

type PayoutReverseParams added in v72.15.0

type PayoutReverseParams struct {
	Params `form:"*"`
}

PayoutReverseParams is the set of parameters that can be used when reversing a payout.

type PayoutScheduleParams

type PayoutScheduleParams struct {
	DelayDays        *int64  `form:"delay_days"`
	DelayDaysMinimum *bool   `form:"-"` // See custom AppendTo
	Interval         *string `form:"interval"`
	MonthlyAnchor    *int64  `form:"monthly_anchor"`
	WeeklyAnchor     *string `form:"weekly_anchor"`
}

PayoutScheduleParams are the parameters allowed for payout schedules.

func (*PayoutScheduleParams) AppendTo

func (p *PayoutScheduleParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for PayoutScheduleParams.

type PayoutSourceType

type PayoutSourceType string

PayoutSourceType is the list of allowed values for the payout's source_type field.

const (
	PayoutSourceTypeBankAccount PayoutSourceType = "bank_account"
	PayoutSourceTypeCard        PayoutSourceType = "card"
	PayoutSourceTypeFPX         PayoutSourceType = "fpx"
)

List of values that PayoutSourceType can take.

type PayoutStatus

type PayoutStatus string

PayoutStatus is the list of allowed values for the payout's status.

const (
	PayoutStatusCanceled  PayoutStatus = "canceled"
	PayoutStatusFailed    PayoutStatus = "failed"
	PayoutStatusInTransit PayoutStatus = "in_transit"
	PayoutStatusPaid      PayoutStatus = "paid"
	PayoutStatusPending   PayoutStatus = "pending"
)

List of values that PayoutStatus can take.

type PayoutType

type PayoutType string

PayoutType is the list of allowed values for the payout's type.

const (
	PayoutTypeBank PayoutType = "bank_account"
	PayoutTypeCard PayoutType = "card"
)

List of values that PayoutType can take.

type Period

type Period struct {
	End   int64 `json:"end"`
	Start int64 `json:"start"`
}

Period is a structure representing a start and end dates.

type PermissionError

type PermissionError struct {
	// contains filtered or unexported fields
}

PermissionError results when you attempt to make an API request for which your API key doesn't have the right permissions.

func (*PermissionError) Error

func (e *PermissionError) Error() string

Error serializes the error object to JSON and returns it as a string.

type Person

type Person struct {
	APIResource
	Account            string                    `json:"account"`
	Address            *AccountAddress           `json:"address"`
	AddressKana        *AccountAddress           `json:"address_kana"`
	AddressKanji       *AccountAddress           `json:"address_kanji"`
	Created            int64                     `json:"created"`
	Deleted            bool                      `json:"deleted"`
	DOB                *DOB                      `json:"dob"`
	Email              string                    `json:"email"`
	FirstName          string                    `json:"first_name"`
	FirstNameKana      string                    `json:"first_name_kana"`
	FirstNameKanji     string                    `json:"first_name_kanji"`
	FullNameAliases    []string                  `json:"full_name_aliases"`
	FutureRequirements *PersonFutureRequirements `json:"future_requirements"`
	Gender             string                    `json:"gender"`
	ID                 string                    `json:"id"`
	IDNumberProvided   bool                      `json:"id_number_provided"`
	LastName           string                    `json:"last_name"`
	LastNameKana       string                    `json:"last_name_kana"`
	LastNameKanji      string                    `json:"last_name_kanji"`
	MaidenName         string                    `json:"maiden_name"`
	Metadata           map[string]string         `json:"metadata"`
	Nationality        string                    `json:"nationality"`
	Object             string                    `json:"object"`
	Phone              string                    `json:"phone"`
	PoliticalExposure  PersonPoliticalExposure   `json:"political_exposure"`
	Relationship       *Relationship             `json:"relationship"`
	Requirements       *Requirements             `json:"requirements"`
	SSNLast4Provided   bool                      `json:"ssn_last_4_provided"`
	Verification       *PersonVerification       `json:"verification"`
}

Person is the resource representing a Stripe person. For more details see https://stripe.com/docs/api#persons.

func (*Person) UnmarshalJSON

func (p *Person) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Person. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type PersonFutureRequirements added in v72.64.0

type PersonFutureRequirements struct {
	Alternatives        []*PersonFutureRequirementsAlternative `json:"alternatives"`
	CurrentlyDue        []string                               `json:"currently_due"`
	Errors              []*PersonFutureRequirementsError       `json:"errors"`
	EventuallyDue       []string                               `json:"eventually_due"`
	PastDue             []string                               `json:"past_due"`
	PendingVerification []string                               `json:"pending_verification"`
}

Information about the upcoming new requirements for this person, including what information needs to be collected, and by when.

type PersonFutureRequirementsAlternative added in v72.64.0

type PersonFutureRequirementsAlternative struct {
	AlternativeFieldsDue []string `json:"alternative_fields_due"`
	OriginalFieldsDue    []string `json:"original_fields_due"`
}

Fields that are due and can be satisfied by providing the corresponding alternative fields instead.

type PersonFutureRequirementsError added in v72.64.0

type PersonFutureRequirementsError struct {
	Code        string `json:"code"`
	Reason      string `json:"reason"`
	Requirement string `json:"requirement"`
}

Fields that are `currently_due` and need to be collected again because validation or verification failed.

type PersonList

type PersonList struct {
	APIResource
	ListMeta
	Data []*Person `json:"data"`
}

PersonList is a list of persons as retrieved from a list endpoint.

type PersonListParams

type PersonListParams struct {
	ListParams   `form:"*"`
	Account      *string                 `form:"-"` // Included in URL
	Relationship *RelationshipListParams `form:"relationship"`
}

PersonListParams is the set of parameters that can be used when listing persons. For more detail see https://stripe.com/docs/api#list_persons.

type PersonParams

type PersonParams struct {
	Params            `form:"*"`
	Account           *string                   `form:"-"` // Included in URL
	Address           *AccountAddressParams     `form:"address"`
	AddressKana       *AccountAddressParams     `form:"address_kana"`
	AddressKanji      *AccountAddressParams     `form:"address_kanji"`
	DOB               *DOBParams                `form:"dob"`
	Documents         *DocumentsParams          `form:"documents"`
	Email             *string                   `form:"email"`
	FirstName         *string                   `form:"first_name"`
	FirstNameKana     *string                   `form:"first_name_kana"`
	FirstNameKanji    *string                   `form:"first_name_kanji"`
	FullNameAliases   []*string                 `form:"full_name_aliases"`
	Gender            *string                   `form:"gender"`
	IDNumber          *string                   `form:"id_number"`
	LastName          *string                   `form:"last_name"`
	LastNameKana      *string                   `form:"last_name_kana"`
	LastNameKanji     *string                   `form:"last_name_kanji"`
	MaidenName        *string                   `form:"maiden_name"`
	Nationality       *string                   `form:"nationality"`
	PersonToken       *string                   `form:"person_token"`
	Phone             *string                   `form:"phone"`
	PoliticalExposure *string                   `form:"political_exposure"`
	Relationship      *RelationshipParams       `form:"relationship"`
	SSNLast4          *string                   `form:"ssn_last_4"`
	Verification      *PersonVerificationParams `form:"verification"`
}

PersonParams is the set of parameters that can be used when creating or updating a person. For more details see https://stripe.com/docs/api#create_person.

type PersonPoliticalExposure

type PersonPoliticalExposure string

PersonPoliticalExposure describes the political exposure of a given person.

const (
	PersonPoliticalExposureExisting PersonPoliticalExposure = "existing"
	PersonPoliticalExposureNone     PersonPoliticalExposure = "none"
)

List of values that IdentityVerificationStatus can take.

type PersonRequirementsAlternative added in v72.64.0

type PersonRequirementsAlternative struct {
	AlternativeFieldsDue []string `json:"alternative_fields_due"`
	OriginalFieldsDue    []string `json:"original_fields_due"`
}

Fields that are due and can be satisfied by providing the corresponding alternative fields instead.

type PersonVerification

type PersonVerification struct {
	AdditionalDocument *PersonVerificationDocument   `json:"additional_document"`
	Details            string                        `json:"details"`
	DetailsCode        PersonVerificationDetailsCode `json:"details_code"`
	Document           *PersonVerificationDocument   `json:"document"`
	Status             IdentityVerificationStatus    `json:"status"`
}

PersonVerification is the structure for a person's verification details.

type PersonVerificationDetailsCode

type PersonVerificationDetailsCode string

PersonVerificationDetailsCode is a machine-readable code specifying the verification state of a person.

const (
	PersonVerificationDetailsCodeFailedKeyedIdentity PersonVerificationDetailsCode = "failed_keyed_identity"
	PersonVerificationDetailsCodeFailedOther         PersonVerificationDetailsCode = "failed_other"
	PersonVerificationDetailsCodeScanNameMismatch    PersonVerificationDetailsCode = "scan_name_mismatch"
)

List of values that IdentityVerificationDetailsCode can take.

type PersonVerificationDocument

type PersonVerificationDocument struct {
	Back        *File                           `json:"back"`
	Details     string                          `json:"details"`
	DetailsCode VerificationDocumentDetailsCode `json:"details_code"`
	Front       *File                           `json:"front"`
}

PersonVerificationDocument represents the documents associated with a Person.

type PersonVerificationDocumentParams

type PersonVerificationDocumentParams struct {
	Back  *string `form:"back"`
	Front *string `form:"front"`
}

PersonVerificationDocumentParams represents the parameters available for the document verifying a person's identity.

type PersonVerificationParams

type PersonVerificationParams struct {
	AdditionalDocument *PersonVerificationDocumentParams `form:"additional_document"`
	Document           *PersonVerificationDocumentParams `form:"document"`
}

PersonVerificationParams is used to represent parameters associated with a person's verification details.

type Plan

type Plan struct {
	APIResource
	Active          bool                `json:"active"`
	AggregateUsage  string              `json:"aggregate_usage"`
	Amount          int64               `json:"amount"`
	AmountDecimal   float64             `json:"amount_decimal,string"`
	BillingScheme   PlanBillingScheme   `json:"billing_scheme"`
	Created         int64               `json:"created"`
	Currency        Currency            `json:"currency"`
	Deleted         bool                `json:"deleted"`
	ID              string              `json:"id"`
	Interval        PlanInterval        `json:"interval"`
	IntervalCount   int64               `json:"interval_count"`
	Livemode        bool                `json:"livemode"`
	Metadata        map[string]string   `json:"metadata"`
	Nickname        string              `json:"nickname"`
	Object          string              `json:"object"`
	Product         *Product            `json:"product"`
	Tiers           []*PlanTier         `json:"tiers"`
	TiersMode       string              `json:"tiers_mode"`
	TransformUsage  *PlanTransformUsage `json:"transform_usage"`
	TrialPeriodDays int64               `json:"trial_period_days"`
	UsageType       PlanUsageType       `json:"usage_type"`
}

Plan is the resource representing a Stripe plan. For more details see https://stripe.com/docs/api#plans.

Example (List)
package main

import (
	"log"

	stripe "github.com/stripe/stripe-go/v72"
	"github.com/stripe/stripe-go/v72/plan"
)

func main() {
	stripe.Key = "sk_key"

	params := &stripe.PlanListParams{}
	params.Filters.AddFilter("limit", "", "3")
	params.Single = true

	it := plan.List(params)
	for it.Next() {
		log.Printf("%v ", it.Plan().Nickname)
	}
	if err := it.Err(); err != nil {
		log.Fatal(err)
	}
}
Output:

func (*Plan) UnmarshalJSON

func (p *Plan) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Plan. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type PlanAggregateUsage

type PlanAggregateUsage string

PlanAggregateUsage is the list of allowed values for a plan's aggregate usage.

const (
	PlanAggregateUsageLastDuringPeriod PlanAggregateUsage = "last_during_period"
	PlanAggregateUsageLastEver         PlanAggregateUsage = "last_ever"
	PlanAggregateUsageMax              PlanAggregateUsage = "max"
	PlanAggregateUsageSum              PlanAggregateUsage = "sum"
)

List of values that PlanAggregateUsage can take.

type PlanBillingScheme

type PlanBillingScheme string

PlanBillingScheme is the list of allowed values for a plan's billing scheme.

const (
	PlanBillingSchemePerUnit PlanBillingScheme = "per_unit"
	PlanBillingSchemeTiered  PlanBillingScheme = "tiered"
)

List of values that PlanBillingScheme can take.

type PlanInterval

type PlanInterval string

PlanInterval is the list of allowed values for a plan's interval.

const (
	PlanIntervalDay   PlanInterval = "day"
	PlanIntervalMonth PlanInterval = "month"
	PlanIntervalWeek  PlanInterval = "week"
	PlanIntervalYear  PlanInterval = "year"
)

List of values that PlanInterval can take.

type PlanList

type PlanList struct {
	APIResource
	ListMeta
	Data []*Plan `json:"data"`
}

PlanList is a list of plans as returned from a list endpoint.

type PlanListParams

type PlanListParams struct {
	ListParams   `form:"*"`
	Active       *bool             `form:"active"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Product      *string           `form:"product"`
}

PlanListParams is the set of parameters that can be used when listing plans. For more details see https://stripe.com/docs/api#list_plans.

type PlanParams

type PlanParams struct {
	Params          `form:"*"`
	Active          *bool                     `form:"active"`
	AggregateUsage  *string                   `form:"aggregate_usage"`
	Amount          *int64                    `form:"amount"`
	AmountDecimal   *float64                  `form:"amount_decimal,high_precision"`
	BillingScheme   *string                   `form:"billing_scheme"`
	Currency        *string                   `form:"currency"`
	ID              *string                   `form:"id"`
	Interval        *string                   `form:"interval"`
	IntervalCount   *int64                    `form:"interval_count"`
	Nickname        *string                   `form:"nickname"`
	Product         *PlanProductParams        `form:"product"`
	ProductID       *string                   `form:"product"`
	Tiers           []*PlanTierParams         `form:"tiers"`
	TiersMode       *string                   `form:"tiers_mode"`
	TransformUsage  *PlanTransformUsageParams `form:"transform_usage"`
	TrialPeriodDays *int64                    `form:"trial_period_days"`
	UsageType       *string                   `form:"usage_type"`
}

PlanParams is the set of parameters that can be used when creating or updating a plan. For more details see https://stripe.com/docs/api#create_plan and https://stripe.com/docs/api#update_plan.

type PlanProductParams

type PlanProductParams struct {
	Active              *bool             `form:"active"`
	ID                  *string           `form:"id"`
	Metadata            map[string]string `form:"metadata"`
	Name                *string           `form:"name"`
	StatementDescriptor *string           `form:"statement_descriptor"`
	TaxCode             *string           `form:"tax_code"`
	UnitLabel           *string           `form:"unit_label"`
}

PlanProductParams is the set of parameters that can be used when creating a product inside a plan This can only be used on plan creation and won't work on plan update. For more details see https://stripe.com/docs/api#create_plan-product and https://stripe.com/docs/api#update_plan-product

type PlanTier

type PlanTier struct {
	FlatAmount        int64   `json:"flat_amount"`
	FlatAmountDecimal float64 `json:"flat_amount_decimal,string"`
	UnitAmount        int64   `json:"unit_amount"`
	UnitAmountDecimal float64 `json:"unit_amount_decimal,string"`
	UpTo              int64   `json:"up_to"`
}

PlanTier configures tiered pricing

type PlanTierParams

type PlanTierParams struct {
	Params            `form:"*"`
	FlatAmount        *int64   `form:"flat_amount"`
	FlatAmountDecimal *float64 `form:"flat_amount_decimal,high_precision"`
	UnitAmount        *int64   `form:"unit_amount"`
	UnitAmountDecimal *float64 `form:"unit_amount_decimal,high_precision"`
	UpTo              *int64   `form:"-"` // See custom AppendTo
	UpToInf           *bool    `form:"-"` // See custom AppendTo
}

PlanTierParams configures tiered pricing

func (*PlanTierParams) AppendTo

func (p *PlanTierParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for PlanTierParams.

type PlanTiersMode

type PlanTiersMode string

PlanTiersMode is the list of allowed values for a plan's tiers mode.

const (
	PlanTiersModeGraduated PlanTiersMode = "graduated"
	PlanTiersModeVolume    PlanTiersMode = "volume"
)

List of values that PlanTiersMode can take.

type PlanTransformUsage

type PlanTransformUsage struct {
	DivideBy int64                   `json:"divide_by"`
	Round    PlanTransformUsageRound `json:"round"`
}

PlanTransformUsage represents the bucket billing configuration.

type PlanTransformUsageParams

type PlanTransformUsageParams struct {
	DivideBy *int64  `form:"divide_by"`
	Round    *string `form:"round"`
}

PlanTransformUsageParams represents the bucket billing configuration.

type PlanTransformUsageRound

type PlanTransformUsageRound string

PlanTransformUsageRound is the list of allowed values for a plan's transform usage round logic.

const (
	PlanTransformUsageRoundDown PlanTransformUsageRound = "down"
	PlanTransformUsageRoundUp   PlanTransformUsageRound = "up"
)

List of values that PlanTransformUsageRound can take.

type PlanUsageType

type PlanUsageType string

PlanUsageType is the list of allowed values for a plan's usage type.

const (
	PlanUsageTypeLicensed PlanUsageType = "licensed"
	PlanUsageTypeMetered  PlanUsageType = "metered"
)

List of values that PlanUsageType can take.

type Price

type Price struct {
	APIResource
	Active            bool                    `json:"active"`
	BillingScheme     PriceBillingScheme      `json:"billing_scheme"`
	Created           int64                   `json:"created"`
	Currency          Currency                `json:"currency"`
	Deleted           bool                    `json:"deleted"`
	ID                string                  `json:"id"`
	Livemode          bool                    `json:"livemode"`
	LookupKey         string                  `json:"lookup_key"`
	Metadata          map[string]string       `json:"metadata"`
	Nickname          string                  `json:"nickname"`
	Object            string                  `json:"object"`
	Product           *Product                `json:"product"`
	Recurring         *PriceRecurring         `json:"recurring"`
	TaxBehavior       PriceTaxBehavior        `json:"tax_behavior"`
	Tiers             []*PriceTier            `json:"tiers"`
	TiersMode         PriceTiersMode          `json:"tiers_mode"`
	TransformQuantity *PriceTransformQuantity `json:"transform_quantity"`
	Type              PriceType               `json:"type"`
	UnitAmount        int64                   `json:"unit_amount"`
	UnitAmountDecimal float64                 `json:"unit_amount_decimal,string"`
}

Price is the resource representing a Stripe price. For more details see https://stripe.com/docs/api#prices.

func (*Price) UnmarshalJSON

func (p *Price) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Price. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type PriceBillingScheme

type PriceBillingScheme string

PriceBillingScheme is the list of allowed values for a price's billing scheme.

const (
	PriceBillingSchemePerUnit PriceBillingScheme = "per_unit"
	PriceBillingSchemeTiered  PriceBillingScheme = "tiered"
)

List of values that PriceBillingScheme can take.

type PriceList

type PriceList struct {
	APIResource
	ListMeta
	Data []*Price `json:"data"`
}

PriceList is a list of prices as returned from a list endpoint.

type PriceListParams

type PriceListParams struct {
	ListParams   `form:"*"`
	Active       *bool                     `form:"active"`
	Created      *int64                    `form:"created"`
	CreatedRange *RangeQueryParams         `form:"created"`
	Currency     *string                   `form:"currency"`
	LookupKeys   []*string                 `form:"lookup_keys"`
	Product      *string                   `form:"product"`
	Recurring    *PriceRecurringListParams `form:"recurring"`
	Type         *string                   `form:"type"`
}

PriceListParams is the set of parameters that can be used when listing prices. For more details see https://stripe.com/docs/api#list_prices.

type PriceParams

type PriceParams struct {
	Params            `form:"*"`
	Active            *bool                         `form:"active"`
	BillingScheme     *string                       `form:"billing_scheme"`
	Currency          *string                       `form:"currency"`
	LookupKey         *string                       `form:"lookup_key"`
	Nickname          *string                       `form:"nickname"`
	Product           *string                       `form:"product"`
	ProductData       *PriceProductDataParams       `form:"product_data"`
	Recurring         *PriceRecurringParams         `form:"recurring"`
	TaxBehavior       *string                       `form:"tax_behavior"`
	Tiers             []*PriceTierParams            `form:"tiers"`
	TiersMode         *string                       `form:"tiers_mode"`
	TransferLookupKey *bool                         `form:"transfer_lookup_key"`
	TransformQuantity *PriceTransformQuantityParams `form:"transform_quantity"`
	UnitAmount        *int64                        `form:"unit_amount"`
	UnitAmountDecimal *float64                      `form:"unit_amount_decimal,high_precision"`
}

PriceParams is the set of parameters that can be used when creating or updating a price. For more details see https://stripe.com/docs/api#create_price and https://stripe.com/docs/api#update_price.

type PriceProductDataParams

type PriceProductDataParams struct {
	Active              *bool             `form:"active"`
	ID                  *string           `form:"id"`
	Metadata            map[string]string `form:"metadata"`
	Name                *string           `form:"name"`
	StatementDescriptor *string           `form:"statement_descriptor"`
	TaxCode             *string           `form:"tax_code"`
	UnitLabel           *string           `form:"unit_label"`
}

PriceProductDataParams is the set of parameters that can be used when creating a product inside a price.

type PriceRecurring

type PriceRecurring struct {
	AggregateUsage  PriceRecurringAggregateUsage `json:"aggregate_usage"`
	Interval        PriceRecurringInterval       `json:"interval"`
	IntervalCount   int64                        `json:"interval_count"`
	TrialPeriodDays int64                        `json:"trial_period_days"`
	UsageType       PriceRecurringUsageType      `json:"usage_type"`
}

PriceRecurring represents the recurring components of a price.

type PriceRecurringAggregateUsage

type PriceRecurringAggregateUsage string

PriceRecurringAggregateUsage is the list of allowed values for a price's aggregate usage.

const (
	PriceRecurringAggregateUsageLastDuringPeriod PriceRecurringAggregateUsage = "last_during_period"
	PriceRecurringAggregateUsageLastEver         PriceRecurringAggregateUsage = "last_ever"
	PriceRecurringAggregateUsageMax              PriceRecurringAggregateUsage = "max"
	PriceRecurringAggregateUsageSum              PriceRecurringAggregateUsage = "sum"
)

List of values that PriceRecurringAggregateUsage can take.

type PriceRecurringInterval

type PriceRecurringInterval string

PriceRecurringInterval is the list of allowed values for a price's recurring interval.

const (
	PriceRecurringIntervalDay   PriceRecurringInterval = "day"
	PriceRecurringIntervalMonth PriceRecurringInterval = "month"
	PriceRecurringIntervalWeek  PriceRecurringInterval = "week"
	PriceRecurringIntervalYear  PriceRecurringInterval = "year"
)

List of values that PriceRecurringInterval can take.

type PriceRecurringListParams

type PriceRecurringListParams struct {
	Interval  *string `form:"interval"`
	UsageType *string `form:"usage_type"`
}

PriceRecurringListParams is the set of parameters that can be used when listing recurring prices.

type PriceRecurringParams

type PriceRecurringParams struct {
	AggregateUsage  *string `form:"aggregate_usage"`
	Interval        *string `form:"interval"`
	IntervalCount   *int64  `form:"interval_count"`
	TrialPeriodDays *int64  `form:"trial_period_days"`
	UsageType       *string `form:"usage_type"`
}

PriceRecurringParams is the set of parameters for the recurring components of a price.

type PriceRecurringUsageType

type PriceRecurringUsageType string

PriceRecurringUsageType is the list of allowed values for a price's usage type.

const (
	PriceRecurringUsageTypeLicensed PriceRecurringUsageType = "licensed"
	PriceRecurringUsageTypeMetered  PriceRecurringUsageType = "metered"
)

List of values that PriceUsageType can take.

type PriceTaxBehavior added in v72.48.0

type PriceTaxBehavior string
const (
	PriceTaxBehaviorExclusive   PriceTaxBehavior = "exclusive"
	PriceTaxBehaviorInclusive   PriceTaxBehavior = "inclusive"
	PriceTaxBehaviorUnspecified PriceTaxBehavior = "unspecified"
)

List of values that PriceTaxBehavior can take

type PriceTier

type PriceTier struct {
	FlatAmount        int64   `json:"flat_amount"`
	FlatAmountDecimal float64 `json:"flat_amount_decimal,string"`
	UnitAmount        int64   `json:"unit_amount"`
	UnitAmountDecimal float64 `json:"unit_amount_decimal,string"`
	UpTo              int64   `json:"up_to"`
}

PriceTier configures tiered pricing

type PriceTierParams

type PriceTierParams struct {
	FlatAmount        *int64   `form:"flat_amount"`
	FlatAmountDecimal *float64 `form:"flat_amount_decimal,high_precision"`
	UnitAmount        *int64   `form:"unit_amount"`
	UnitAmountDecimal *float64 `form:"unit_amount_decimal,high_precision"`
	UpTo              *int64   `form:"up_to"`
	UpToInf           *bool    `form:"-"` // See custom AppendTo
}

PriceTierParams configures tiered pricing

func (*PriceTierParams) AppendTo

func (p *PriceTierParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for PriceTierParams.

type PriceTiersMode

type PriceTiersMode string

PriceTiersMode is the list of allowed values for a price's tiers mode.

const (
	PriceTiersModeGraduated PriceTiersMode = "graduated"
	PriceTiersModeVolume    PriceTiersMode = "volume"
)

List of values that PriceTiersMode can take.

type PriceTransformQuantity

type PriceTransformQuantity struct {
	DivideBy int64                       `json:"divide_by"`
	Round    PriceTransformQuantityRound `json:"round"`
}

PriceTransformQuantity represents how to calculate the final amount based on the quantity.

type PriceTransformQuantityParams

type PriceTransformQuantityParams struct {
	DivideBy *int64  `form:"divide_by"`
	Round    *string `form:"round"`
}

PriceTransformQuantityParams represents the parameter controlling the calculation of the final amount based on the quantity.

type PriceTransformQuantityRound

type PriceTransformQuantityRound string

PriceTransformQuantityRound is the list of allowed values for a price's transform quantity rounding logic.

const (
	PriceTransformQuantityRoundDown PriceTransformQuantityRound = "down"
	PriceTransformQuantityRoundUp   PriceTransformQuantityRound = "up"
)

List of values that PriceTransformQuantityRound can take.

type PriceType

type PriceType string

PriceType is the list of allowed values for a price's type.

const (
	PriceTypeOneTime   PriceType = "one_time"
	PriceTypeRecurring PriceType = "recurring"
)

List of values that PriceType can take.

type Product

type Product struct {
	APIResource
	Active              bool               `json:"active"`
	Attributes          []string           `json:"attributes"`
	Caption             string             `json:"caption"`
	Created             int64              `json:"created"`
	DeactivateOn        []string           `json:"deactivate_on"`
	Deleted             bool               `json:"deleted"`
	Description         string             `json:"description"`
	ID                  string             `json:"id"`
	Images              []string           `json:"images"`
	Livemode            bool               `json:"livemode"`
	Metadata            map[string]string  `json:"metadata"`
	Name                string             `json:"name"`
	Object              string             `json:"object"`
	PackageDimensions   *PackageDimensions `json:"package_dimensions"`
	Shippable           bool               `json:"shippable"`
	StatementDescriptor string             `json:"statement_descriptor"`
	TaxCode             *TaxCode           `json:"tax_code"`
	Type                ProductType        `json:"type"`
	UnitLabel           string             `json:"unit_label"`
	Updated             int64              `json:"updated"`
	URL                 string             `json:"url"`
}

Product is the resource representing a Stripe product. For more details see https://stripe.com/docs/api#products.

func (*Product) UnmarshalJSON

func (p *Product) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Product. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ProductList

type ProductList struct {
	APIResource
	ListMeta
	Data []*Product `json:"data"`
}

ProductList is a list of products as retrieved from a list endpoint.

type ProductListParams

type ProductListParams struct {
	ListParams   `form:"*"`
	Active       *bool             `form:"active"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	IDs          []*string         `form:"ids"`
	Shippable    *bool             `form:"shippable"`
	Type         *string           `form:"type"`
	URL          *string           `form:"url"`
}

ProductListParams is the set of parameters that can be used when listing products.

type ProductParams

type ProductParams struct {
	Params              `form:"*"`
	Active              *bool                    `form:"active"`
	Attributes          []*string                `form:"attributes"`
	Caption             *string                  `form:"caption"`
	DeactivateOn        []*string                `form:"deactivate_on"`
	Description         *string                  `form:"description"`
	ID                  *string                  `form:"id"`
	Images              []*string                `form:"images"`
	Name                *string                  `form:"name"`
	PackageDimensions   *PackageDimensionsParams `form:"package_dimensions"`
	Shippable           *bool                    `form:"shippable"`
	StatementDescriptor *string                  `form:"statement_descriptor"`
	TaxCode             *string                  `form:"tax_code"`
	Type                *string                  `form:"type"`
	UnitLabel           *string                  `form:"unit_label"`
	URL                 *string                  `form:"url"`
}

ProductParams is the set of parameters that can be used when creating or updating a product.

type ProductType

type ProductType string

ProductType is the type of a product.

const (
	ProductTypeGood    ProductType = "good"
	ProductTypeService ProductType = "service"
)

List of values that ProductType can take.

type PromotionCode

type PromotionCode struct {
	APIResource
	Active         bool                       `json:"active"`
	Code           string                     `json:"code"`
	Coupon         *Coupon                    `json:"coupon"`
	Created        int64                      `json:"created"`
	Customer       *Customer                  `json:"customer"`
	ExpiresAt      int64                      `json:"expires_at"`
	ID             string                     `json:"id"`
	Livemode       bool                       `json:"livemode"`
	MaxRedemptions int64                      `json:"max_redemptions"`
	Metadata       map[string]string          `json:"metadata"`
	Object         string                     `json:"object"`
	Restrictions   *PromotionCodeRestrictions `json:"restrictions"`
	TimesRedeemed  int64                      `json:"times_redeemed"`
}

PromotionCode is the resource representing a Stripe promotion code.

func (*PromotionCode) UnmarshalJSON

func (p *PromotionCode) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a PromotionCode. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type PromotionCodeList

type PromotionCodeList struct {
	APIResource
	ListMeta
	Data []*PromotionCode `json:"data"`
}

PromotionCodeList is a list of promotion codes as retrieved from a list endpoint.

type PromotionCodeListParams

type PromotionCodeListParams struct {
	ListParams   `form:"*"`
	Active       *bool             `form:"active"`
	Code         *string           `form:"code"`
	Coupon       *string           `form:"coupon"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Customer     *string           `form:"customer"`
}

PromotionCodeListParams is the set of parameters that can be used when listing promotion codes.

type PromotionCodeParams

type PromotionCodeParams struct {
	Params         `form:"*"`
	Active         *bool                            `form:"active"`
	Code           *string                          `form:"code"`
	Coupon         *string                          `form:"coupon"`
	Customer       *string                          `form:"customer"`
	ExpiresAt      *int64                           `form:"expires_at"`
	MaxRedemptions *int64                           `form:"max_redemptions"`
	Restrictions   *PromotionCodeRestrictionsParams `form:"restrictions"`
}

PromotionCodeParams is the set of parameters that can be used when creating a promotion code.

type PromotionCodeRestrictions

type PromotionCodeRestrictions struct {
	FirstTimeTransaction  bool     `json:"first_time_transaction"`
	MinimumAmount         int64    `json:"minimum_amount"`
	MinimumAmountCurrency Currency `json:"minimum_amount_currency"`
}

PromotionCodeRestrictions is the set of restrictions associated with a promotion code.

type PromotionCodeRestrictionsParams

type PromotionCodeRestrictionsParams struct {
	FirstTimeTransaction  *bool   `form:"first_time_transaction"`
	MinimumAmount         *int64  `form:"minimum_amount"`
	MinimumAmountCurrency *string `form:"minimum_amount_currency"`
}

PromotionCodeRestrictionsParams is the set of parameters for restrictions on a promotion code.

type Query

type Query func(*Params, *form.Values) ([]interface{}, ListContainer, error)

Query is the function used to get a page listing.

type Quote added in v72.56.0

type Quote struct {
	APIResource
	AmountSubtotal        int64                   `json:"amount_subtotal"`
	AmountTotal           int64                   `json:"amount_total"`
	ApplicationFeeAmount  int64                   `json:"application_fee_amount"`
	ApplicationFeePercent float64                 `json:"application_fee_percent"`
	AutomaticTax          *QuoteAutomaticTax      `json:"automatic_tax"`
	CollectionMethod      QuoteCollectionMethod   `json:"collection_method"`
	Computed              *QuoteComputed          `json:"computed"`
	Created               int64                   `json:"created"`
	Currency              Currency                `json:"currency"`
	Customer              *Customer               `json:"customer"`
	DefaultTaxRates       []*TaxRate              `json:"default_tax_rates"`
	Description           string                  `json:"description"`
	Discounts             []*Discount             `json:"discounts"`
	ExpiresAt             int64                   `json:"expires_at"`
	Footer                string                  `json:"footer"`
	FromQuote             *QuoteFromQuote         `json:"from_quote"`
	Header                string                  `json:"header"`
	ID                    string                  `json:"id"`
	Invoice               *Invoice                `json:"invoice"`
	InvoiceSettings       *QuoteInvoiceSettings   `json:"invoice_settings"`
	LineItems             *LineItemList           `json:"line_items"`
	Livemode              bool                    `json:"livemode"`
	Metadata              map[string]string       `json:"metadata"`
	Number                string                  `json:"number"`
	Object                string                  `json:"object"`
	OnBehalfOf            *Account                `json:"on_behalf_of"`
	Status                QuoteStatus             `json:"status"`
	StatusTransitions     *QuoteStatusTransitions `json:"status_transitions"`
	Subscription          *Subscription           `json:"subscription"`
	SubscriptionData      *QuoteSubscriptionData  `json:"subscription_data"`
	SubscriptionSchedule  *SubscriptionSchedule   `json:"subscription_schedule"`
	TotalDetails          *QuoteTotalDetails      `json:"total_details"`
	TransferData          *QuoteTransferData      `json:"transfer_data"`
}

A Quote is a way to model prices that you'd like to provide to a customer. Once accepted, it will automatically create an invoice, subscription or subscription schedule.

func (*Quote) UnmarshalJSON added in v72.56.0

func (q *Quote) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Quote. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type QuoteAcceptParams added in v72.56.0

type QuoteAcceptParams struct {
	Params `form:"*"`
}

Accepts the specified quote.

type QuoteAutomaticTax added in v72.56.0

type QuoteAutomaticTax struct {
	Enabled bool                    `json:"enabled"`
	Status  QuoteAutomaticTaxStatus `json:"status"`
}

type QuoteAutomaticTaxParams added in v72.56.0

type QuoteAutomaticTaxParams struct {
	Enabled *bool `form:"enabled"`
}

Settings for automatic tax lookup for this quote and resulting invoices and subscriptions.

type QuoteAutomaticTaxStatus added in v72.56.0

type QuoteAutomaticTaxStatus string

The status of the most recent automated tax calculation for this quote.

const (
	QuoteAutomaticTaxStatusComplete               QuoteAutomaticTaxStatus = "complete"
	QuoteAutomaticTaxStatusFailed                 QuoteAutomaticTaxStatus = "failed"
	QuoteAutomaticTaxStatusRequiresLocationInputs QuoteAutomaticTaxStatus = "requires_location_inputs"
)

List of values that QuoteAutomaticTaxStatus can take

type QuoteCancelParams added in v72.56.0

type QuoteCancelParams struct {
	Params `form:"*"`
}

Cancels the quote.

type QuoteCollectionMethod added in v72.56.0

type QuoteCollectionMethod string

Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions. Defaults to `charge_automatically`.

const (
	QuoteCollectionMethodChargeAutomatically QuoteCollectionMethod = "charge_automatically"
	QuoteCollectionMethodSendInvoice         QuoteCollectionMethod = "send_invoice"
)

List of values that QuoteCollectionMethod can take

type QuoteComputed added in v72.56.0

type QuoteComputed struct {
	Recurring *QuoteComputedRecurring `json:"recurring"`
	Upfront   *QuoteComputedUpfront   `json:"upfront"`
}

type QuoteComputedRecurring added in v72.56.0

type QuoteComputedRecurring struct {
	AmountSubtotal int64                               `json:"amount_subtotal"`
	AmountTotal    int64                               `json:"amount_total"`
	Interval       QuoteComputedRecurringInterval      `json:"interval"`
	IntervalCount  int64                               `json:"interval_count"`
	TotalDetails   *QuoteComputedRecurringTotalDetails `json:"total_details"`
}

The definitive totals and line items the customer will be charged on a recurring basis. Takes into account the line items with recurring prices and discounts with `duration=forever` coupons only. Defaults to `null` if no inputted line items with recurring prices.

type QuoteComputedRecurringInterval added in v72.56.0

type QuoteComputedRecurringInterval string

The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`.

const (
	QuoteComputedRecurringIntervalDay   QuoteComputedRecurringInterval = "day"
	QuoteComputedRecurringIntervalMonth QuoteComputedRecurringInterval = "month"
	QuoteComputedRecurringIntervalWeek  QuoteComputedRecurringInterval = "week"
	QuoteComputedRecurringIntervalYear  QuoteComputedRecurringInterval = "year"
)

List of values that QuoteComputedRecurringInterval can take

type QuoteComputedRecurringTotalDetails added in v72.56.0

type QuoteComputedRecurringTotalDetails struct {
	AmountDiscount int64                                        `json:"amount_discount"`
	AmountShipping int64                                        `json:"amount_shipping"`
	AmountTax      int64                                        `json:"amount_tax"`
	Breakdown      *QuoteComputedRecurringTotalDetailsBreakdown `json:"breakdown"`
}

type QuoteComputedRecurringTotalDetailsBreakdown added in v72.56.0

type QuoteComputedRecurringTotalDetailsBreakdown struct {
	Discounts []*QuoteComputedRecurringTotalDetailsBreakdownDiscount `json:"discounts"`
	Taxes     []*QuoteComputedRecurringTotalDetailsBreakdownTax      `json:"taxes"`
}

type QuoteComputedRecurringTotalDetailsBreakdownDiscount added in v72.56.0

type QuoteComputedRecurringTotalDetailsBreakdownDiscount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

The aggregated line item discounts.

type QuoteComputedRecurringTotalDetailsBreakdownTax added in v72.56.0

type QuoteComputedRecurringTotalDetailsBreakdownTax struct {
	Amount int64    `json:"amount"`
	Rate   *TaxRate `json:"rate"`
}

The aggregated line item tax amounts by rate.

type QuoteComputedUpfront added in v72.56.0

type QuoteComputedUpfront struct {
	AmountSubtotal int64                             `json:"amount_subtotal"`
	AmountTotal    int64                             `json:"amount_total"`
	LineItems      *LineItemList                     `json:"line_items"`
	TotalDetails   *QuoteComputedUpfrontTotalDetails `json:"total_details"`
}

type QuoteComputedUpfrontTotalDetails added in v72.56.0

type QuoteComputedUpfrontTotalDetails struct {
	AmountDiscount int64                                      `json:"amount_discount"`
	AmountShipping int64                                      `json:"amount_shipping"`
	AmountTax      int64                                      `json:"amount_tax"`
	Breakdown      *QuoteComputedUpfrontTotalDetailsBreakdown `json:"breakdown"`
}

type QuoteComputedUpfrontTotalDetailsBreakdown added in v72.56.0

type QuoteComputedUpfrontTotalDetailsBreakdown struct {
	Discounts []*QuoteComputedUpfrontTotalDetailsBreakdownDiscount `json:"discounts"`
	Taxes     []*QuoteComputedUpfrontTotalDetailsBreakdownTax      `json:"taxes"`
}

type QuoteComputedUpfrontTotalDetailsBreakdownDiscount added in v72.56.0

type QuoteComputedUpfrontTotalDetailsBreakdownDiscount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

The aggregated line item discounts.

type QuoteComputedUpfrontTotalDetailsBreakdownTax added in v72.56.0

type QuoteComputedUpfrontTotalDetailsBreakdownTax struct {
	Amount int64    `json:"amount"`
	Rate   *TaxRate `json:"rate"`
}

The aggregated line item tax amounts by rate.

type QuoteDiscountParams added in v72.56.0

type QuoteDiscountParams struct {
	Coupon   *string `form:"coupon"`
	Discount *string `form:"discount"`
}

The discounts applied to the quote. You can only set up to one discount.

type QuoteFinalizeQuoteParams added in v72.56.0

type QuoteFinalizeQuoteParams struct {
	Params    `form:"*"`
	ExpiresAt *int64 `form:"expires_at"`
}

Finalizes the quote.

type QuoteFromQuote added in v72.56.0

type QuoteFromQuote struct {
	IsRevision bool   `json:"is_revision"`
	Quote      *Quote `json:"quote"`
}

Details of the quote that was cloned. See the [cloning documentation](https://stripe.com/docs/quotes/clone) for more details.

type QuoteFromQuoteParams added in v72.56.0

type QuoteFromQuoteParams struct {
	IsRevision *bool   `form:"is_revision"`
	Quote      *string `form:"quote"`
}

Clone an existing quote. The new quote will be created in `status=draft`. When using this parameter, you cannot specify any other parameters except for `expires_at`.

type QuoteInvoiceSettings added in v72.56.0

type QuoteInvoiceSettings struct {
	DaysUntilDue int64 `json:"days_until_due"`
}

All invoices will be billed using the specified settings.

type QuoteInvoiceSettingsParams added in v72.56.0

type QuoteInvoiceSettingsParams struct {
	DaysUntilDue *int64 `form:"days_until_due"`
}

All invoices will be billed using the specified settings.

type QuoteLineItemParams added in v72.56.0

type QuoteLineItemParams struct {
	ID        *string                       `form:"id"`
	Price     *string                       `form:"price"`
	PriceData *QuoteLineItemPriceDataParams `form:"price_data"`
	Quantity  *int64                        `form:"quantity"`
	TaxRates  []*string                     `form:"tax_rates"`
}

A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost.

type QuoteLineItemPriceDataParams added in v72.56.0

type QuoteLineItemPriceDataParams struct {
	Currency          *string                                `form:"currency"`
	Product           *string                                `form:"product"`
	Recurring         *QuoteLineItemPriceDataRecurringParams `form:"recurring"`
	TaxBehavior       *string                                `form:"tax_behavior"`
	UnitAmount        *int64                                 `form:"unit_amount"`
	UnitAmountDecimal *float64                               `form:"unit_amount_decimal,high_precision"`
}

Data used to generate a new Price(https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.

type QuoteLineItemPriceDataRecurringParams added in v72.56.0

type QuoteLineItemPriceDataRecurringParams struct {
	Interval      *string `form:"interval"`
	IntervalCount *int64  `form:"interval_count"`
}

The recurring components of a price such as `interval` and `usage_type`.

type QuoteList added in v72.56.0

type QuoteList struct {
	APIResource
	ListMeta
	Data []*Quote `json:"data"`
}

QuoteList is a list of Quotes as retrieved from a list endpoint.

type QuoteListComputedUpfrontLineItemsParams added in v72.57.0

type QuoteListComputedUpfrontLineItemsParams struct {
	ListParams `form:"*"`
	Quote      *string `form:"-"` // Included in URL
}

When retrieving a quote, there is an includable [computed.upfront.line_items](https://stripe.com/docs/api/quotes/object#quote_object-computed-upfront-line_items) property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items.

type QuoteListLineItemsParams added in v72.56.0

type QuoteListLineItemsParams struct {
	ListParams `form:"*"`
	Quote      *string `form:"-"` // Included in URL
}

When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

type QuoteListParams added in v72.56.0

type QuoteListParams struct {
	ListParams `form:"*"`
	Customer   *string `form:"customer"`
	Status     *string `form:"status"`
}

Returns a list of your quotes.

type QuotePDFParams added in v72.56.0

type QuotePDFParams struct {
	Params `form:"*"`
}

Download the PDF for a finalized quote

type QuoteParams added in v72.56.0

type QuoteParams struct {
	Params                `form:"*"`
	ApplicationFeeAmount  *int64                       `form:"application_fee_amount"`
	ApplicationFeePercent *float64                     `form:"application_fee_percent"`
	AutomaticTax          *QuoteAutomaticTaxParams     `form:"automatic_tax"`
	CollectionMethod      *string                      `form:"collection_method"`
	Customer              *string                      `form:"customer"`
	DefaultTaxRates       []*string                    `form:"default_tax_rates"`
	Description           *string                      `form:"description"`
	Discounts             []*QuoteDiscountParams       `form:"discounts"`
	ExpiresAt             *int64                       `form:"expires_at"`
	Footer                *string                      `form:"footer"`
	FromQuote             *QuoteFromQuoteParams        `form:"from_quote"`
	Header                *string                      `form:"header"`
	InvoiceSettings       *QuoteInvoiceSettingsParams  `form:"invoice_settings"`
	LineItems             []*QuoteLineItemParams       `form:"line_items"`
	OnBehalfOf            *string                      `form:"on_behalf_of"`
	SubscriptionData      *QuoteSubscriptionDataParams `form:"subscription_data"`
	TransferData          *QuoteTransferDataParams     `form:"transfer_data"`
}

Retrieves the quote with the given ID.

type QuoteStatus added in v72.56.0

type QuoteStatus string

The status of the quote.

const (
	QuoteStatusAccepted QuoteStatus = "accepted"
	QuoteStatusCanceled QuoteStatus = "canceled"
	QuoteStatusDraft    QuoteStatus = "draft"
	QuoteStatusOpen     QuoteStatus = "open"
)

List of values that QuoteStatus can take

type QuoteStatusTransitions added in v72.56.0

type QuoteStatusTransitions struct {
	AcceptedAt  int64 `json:"accepted_at"`
	CanceledAt  int64 `json:"canceled_at"`
	FinalizedAt int64 `json:"finalized_at"`
}

type QuoteSubscriptionData added in v72.56.0

type QuoteSubscriptionData struct {
	EffectiveDate   int64 `json:"effective_date"`
	TrialPeriodDays int64 `json:"trial_period_days"`
}

type QuoteSubscriptionDataParams added in v72.56.0

type QuoteSubscriptionDataParams struct {
	EffectiveDate                 *int64 `form:"effective_date"`
	EffectiveDateCurrentPeriodEnd *bool  `form:"-"` // See custom AppendTo
	TrialPeriodDays               *int64 `form:"trial_period_days"`
}

When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created.

func (*QuoteSubscriptionDataParams) AppendTo added in v72.56.0

func (q *QuoteSubscriptionDataParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for QuoteSubscriptionDataParams.

type QuoteTotalDetails added in v72.56.0

type QuoteTotalDetails struct {
	AmountDiscount int64                       `json:"amount_discount"`
	AmountShipping int64                       `json:"amount_shipping"`
	AmountTax      int64                       `json:"amount_tax"`
	Breakdown      *QuoteTotalDetailsBreakdown `json:"breakdown"`
}

type QuoteTotalDetailsBreakdown added in v72.56.0

type QuoteTotalDetailsBreakdown struct {
	Discounts []*QuoteTotalDetailsBreakdownDiscount `json:"discounts"`
	Taxes     []*QuoteTotalDetailsBreakdownTax      `json:"taxes"`
}

type QuoteTotalDetailsBreakdownDiscount added in v72.56.0

type QuoteTotalDetailsBreakdownDiscount struct {
	Amount   int64     `json:"amount"`
	Discount *Discount `json:"discount"`
}

The aggregated line item discounts.

type QuoteTotalDetailsBreakdownTax added in v72.56.0

type QuoteTotalDetailsBreakdownTax struct {
	Amount int64    `json:"amount"`
	Rate   *TaxRate `json:"rate"`
}

The aggregated line item tax amounts by rate.

type QuoteTransferData added in v72.56.0

type QuoteTransferData struct {
	Amount        int64    `json:"amount"`
	AmountPercent float64  `json:"amount_percent"`
	Destination   *Account `json:"destination"`
}

The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices.

type QuoteTransferDataParams added in v72.56.0

type QuoteTransferDataParams struct {
	Amount        *int64   `form:"amount"`
	AmountPercent *float64 `form:"amount_percent"`
	Destination   *string  `form:"destination"`
}

The data with which to automatically create a Transfer for each of the invoices.

type RadarEarlyFraudWarning

type RadarEarlyFraudWarning struct {
	APIResource
	Actionable    bool                            `json:"actionable"`
	Charge        *Charge                         `json:"charge"`
	Created       int64                           `json:"created"`
	FraudType     RadarEarlyFraudWarningFraudType `json:"fraud_type"`
	ID            string                          `json:"id"`
	Livemode      bool                            `json:"livemode"`
	Object        string                          `json:"object"`
	PaymentIntent *PaymentIntent                  `json:"payment_intent"`
}

RadarEarlyFraudWarning is the resource representing an early fraud warning. For more details see https://stripe.com/docs/api/early_fraud_warnings/object.

type RadarEarlyFraudWarningFraudType

type RadarEarlyFraudWarningFraudType string

RadarEarlyFraudWarningFraudType are strings that map to the type of fraud labelled by the issuer.

const (
	RadarEarlyFraudWarningFraudTypeCardNeverReceived         RadarEarlyFraudWarningFraudType = "card_never_received"
	RadarEarlyFraudWarningFraudTypeFraudulentCardApplication RadarEarlyFraudWarningFraudType = "fraudulent_card_application"
	RadarEarlyFraudWarningFraudTypeMadeWithCounterfeitCard   RadarEarlyFraudWarningFraudType = "made_with_counterfeit_card"
	RadarEarlyFraudWarningFraudTypeMadeWithLostCard          RadarEarlyFraudWarningFraudType = "made_with_lost_card"
	RadarEarlyFraudWarningFraudTypeMadeWithStolenCard        RadarEarlyFraudWarningFraudType = "made_with_stolen_card"
	RadarEarlyFraudWarningFraudTypeMisc                      RadarEarlyFraudWarningFraudType = "misc"
	RadarEarlyFraudWarningFraudTypeUnauthorizedUseOfCard     RadarEarlyFraudWarningFraudType = "unauthorized_use_of_card"
)

List of values that RadarEarlyFraudWarningFraudType can take.

type RadarEarlyFraudWarningList

type RadarEarlyFraudWarningList struct {
	APIResource
	ListMeta
	// TODO: rename `Values` to `Data` in a future major version for consistency with other List structs
	Values []*RadarEarlyFraudWarning `json:"data"`
}

RadarEarlyFraudWarningList is a list of early fraud warnings as retrieved from a list endpoint.

type RadarEarlyFraudWarningListParams

type RadarEarlyFraudWarningListParams struct {
	ListParams    `form:"*"`
	Charge        *string `form:"charge"`
	PaymentIntent *string `form:"payment_intent"`
}

RadarEarlyFraudWarningListParams is the set of parameters that can be used when listing early fraud warnings. For more details see https://stripe.com/docs/api/early_fraud_warnings/list.

type RadarEarlyFraudWarningParams

type RadarEarlyFraudWarningParams struct {
	Params `form:"*"`
}

RadarEarlyFraudWarningParams is the set of parameters that can be used when retrieving early fraud warnings. For more details see https://stripe.com/docs/api/early_fraud_warnings/retrieve.

type RadarValueList

type RadarValueList struct {
	APIResource
	Alias     string                  `json:"alias"`
	Created   int64                   `json:"created"`
	CreatedBy string                  `json:"created_by"`
	Deleted   bool                    `json:"deleted"`
	ID        string                  `json:"id"`
	ItemType  RadarValueListItemType  `json:"item_type"`
	ListItems *RadarValueListItemList `json:"list_items"`
	Livemode  bool                    `json:"livemode"`
	Metadata  map[string]string       `json:"metadata"`
	Name      string                  `json:"name"`
	Object    string                  `json:"object"`
	Updated   int64                   `json:"updated"`
	UpdatedBy string                  `json:"updated_by"`
}

RadarValueList is the resource representing a value list.

type RadarValueListItem

type RadarValueListItem struct {
	APIResource
	Created        int64  `json:"created"`
	CreatedBy      string `json:"created_by"`
	Deleted        bool   `json:"deleted"`
	ID             string `json:"id"`
	Livemode       bool   `json:"livemode"`
	Name           string `json:"name"`
	Object         string `json:"object"`
	RadarValueList string `json:"value_list"`
	Value          string `json:"value"`
}

RadarValueListItem is the resource representing a value list item.

type RadarValueListItemList

type RadarValueListItemList struct {
	APIResource
	ListMeta
	Data []*RadarValueListItem `json:"data"`
}

RadarValueListItemList is a list of value list items as retrieved from a list endpoint.

type RadarValueListItemListParams

type RadarValueListItemListParams struct {
	ListParams     `form:"*"`
	Created        *int64            `form:"created"`
	CreatedRange   *RangeQueryParams `form:"created"`
	RadarValueList *string           `form:"value_list"`
	Value          *string           `form:"value"`
}

RadarValueListItemListParams is the set of parameters that can be used when listing value list items.

type RadarValueListItemParams

type RadarValueListItemParams struct {
	Params         `form:"*"`
	RadarValueList *string `form:"value_list"`
	Value          *string `form:"value"`
}

RadarValueListItemParams is the set of parameters that can be used when creating a value list item.

type RadarValueListItemType

type RadarValueListItemType string

RadarValueListItemType is the possible values for a type of value list items.

const (
	RadarValueListItemTypeCardBin             RadarValueListItemType = "card_bin"
	RadarValueListItemTypeCardFingerprint     RadarValueListItemType = "card_fingerprint"
	RadarValueListItemTypeCaseSensitiveString RadarValueListItemType = "case_sensitive_string"
	RadarValueListItemTypeCountry             RadarValueListItemType = "country"
	RadarValueListItemTypeCustomerID          RadarValueListItemType = "customer_id"
	RadarValueListItemTypeEmail               RadarValueListItemType = "email"
	RadarValueListItemTypeIPAddress           RadarValueListItemType = "ip_address"
	RadarValueListItemTypeString              RadarValueListItemType = "string"
)

List of values that RadarValueListItemType can take.

type RadarValueListList

type RadarValueListList struct {
	APIResource
	ListMeta
	Data []*RadarValueList `json:"data"`
}

RadarValueListList is a list of value lists as retrieved from a list endpoint.

type RadarValueListListParams

type RadarValueListListParams struct {
	ListParams   `form:"*"`
	Alias        *string           `form:"alias"`
	Contains     *string           `form:"contains"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
}

RadarValueListListParams is the set of parameters that can be used when listing value lists.

type RadarValueListParams

type RadarValueListParams struct {
	Params   `form:"*"`
	Alias    *string `form:"alias"`
	ItemType *string `form:"item_type"`
	Name     *string `form:"name"`
}

RadarValueListParams is the set of parameters that can be used when creating a value list.

type RangeQueryParams

type RangeQueryParams struct {
	// GreaterThan specifies that values should be a greater than this
	// timestamp.
	GreaterThan int64 `form:"gt"`

	// GreaterThanOrEqual specifies that values should be greater than or equal
	// to this timestamp.
	GreaterThanOrEqual int64 `form:"gte"`

	// LesserThan specifies that values should be lesser than this timetamp.
	LesserThan int64 `form:"lt"`

	// LesserThanOrEqual specifies that values should be lesser than or
	// equalthis timetamp.
	LesserThanOrEqual int64 `form:"lte"`
}

RangeQueryParams are a set of generic request parameters that are used on list endpoints to filter their results by some timestamp.

type RateLimitError

type RateLimitError struct {
	// contains filtered or unexported fields
}

RateLimitError occurs when the Stripe API is hit to with too many requests too quickly and indicates that the current request has been rate limited.

func (*RateLimitError) Error

func (e *RateLimitError) Error() string

Error serializes the error object to JSON and returns it as a string.

type ReceiverFlow

type ReceiverFlow struct {
	Address                string                       `json:"address"`
	AmountCharged          int64                        `json:"amount_charged"`
	AmountReceived         int64                        `json:"amount_received"`
	AmountReturned         int64                        `json:"amount_returned"`
	RefundAttributesMethod SourceRefundAttributesMethod `json:"refund_attributes_method"`
	RefundAttributesStatus SourceRefundAttributesStatus `json:"refund_attributes_status"`
}

ReceiverFlow informs of the state of a receiver authentication flow.

type RedirectFlow

type RedirectFlow struct {
	FailureReason SourceRedirectFlowFailureReason `json:"failure_reason"`
	ReturnURL     string                          `json:"return_url"`
	Status        SourceRedirectFlowStatus        `json:"status"`
	URL           string                          `json:"url"`
}

RedirectFlow informs of the state of a redirect authentication flow.

type RedirectParams

type RedirectParams struct {
	ReturnURL *string `form:"return_url"`
}

RedirectParams is the set of parameters allowed for the redirect hash on source creation or update.

type Refund

type Refund struct {
	APIResource
	Amount                    int64               `json:"amount"`
	BalanceTransaction        *BalanceTransaction `json:"balance_transaction"`
	Charge                    *Charge             `json:"charge"`
	Created                   int64               `json:"created"`
	Currency                  Currency            `json:"currency"`
	Description               string              `json:"description"`
	FailureBalanceTransaction *BalanceTransaction `json:"failure_balance_transaction"`
	FailureReason             RefundFailureReason `json:"failure_reason"`
	ID                        string              `json:"id"`
	Metadata                  map[string]string   `json:"metadata"`
	Object                    string              `json:"object"`
	PaymentIntent             *PaymentIntent      `json:"payment_intent"`
	Reason                    RefundReason        `json:"reason"`
	ReceiptNumber             string              `json:"receipt_number"`
	SourceTransferReversal    *Reversal           `json:"source_transfer_reversal"`
	Status                    RefundStatus        `json:"status"`
	TransferReversal          *Reversal           `json:"transfer_reversal"`
}

Refund is the resource representing a Stripe refund. For more details see https://stripe.com/docs/api#refunds.

func (*Refund) UnmarshalJSON

func (r *Refund) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Refund. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type RefundFailureReason

type RefundFailureReason string

RefundFailureReason is, if set, the reason the refund failed.

const (
	RefundFailureReasonExpiredOrCanceledCard RefundFailureReason = "expired_or_canceled_card"
	RefundFailureReasonLostOrStolenCard      RefundFailureReason = "lost_or_stolen_card"
	RefundFailureReasonUnknown               RefundFailureReason = "unknown"
)

List of values that RefundFailureReason can take.

type RefundList

type RefundList struct {
	APIResource
	ListMeta
	Data []*Refund `json:"data"`
}

RefundList is a list object for refunds.

type RefundListParams

type RefundListParams struct {
	ListParams    `form:"*"`
	Charge        *string           `form:"charge"`
	Created       *int64            `form:"created"`
	CreatedRange  *RangeQueryParams `form:"created"`
	PaymentIntent *string           `form:"payment_intent"`
}

RefundListParams is the set of parameters that can be used when listing refunds. For more details see https://stripe.com/docs/api#list_refunds.

type RefundParams

type RefundParams struct {
	Params               `form:"*"`
	Amount               *int64  `form:"amount"`
	Charge               *string `form:"charge"`
	PaymentIntent        *string `form:"payment_intent"`
	Reason               *string `form:"reason"`
	RefundApplicationFee *bool   `form:"refund_application_fee"`
	ReverseTransfer      *bool   `form:"reverse_transfer"`
}

RefundParams is the set of parameters that can be used when refunding a charge. For more details see https://stripe.com/docs/api#refund.

type RefundReason

type RefundReason string

RefundReason is, if set, the reason the refund is being made

const (
	RefundReasonDuplicate               RefundReason = "duplicate"
	RefundReasonExpiredUncapturedCharge RefundReason = "expired_uncaptured_charge"
	RefundReasonFraudulent              RefundReason = "fraudulent"
	RefundReasonRequestedByCustomer     RefundReason = "requested_by_customer"
)

List of values that RefundReason can take.

type RefundStatus

type RefundStatus string

RefundStatus is the status of the refund.

const (
	RefundStatusCanceled  RefundStatus = "canceled"
	RefundStatusFailed    RefundStatus = "failed"
	RefundStatusPending   RefundStatus = "pending"
	RefundStatusSucceeded RefundStatus = "succeeded"
)

List of values that RefundStatus can take.

type Relationship

type Relationship struct {
	Director         bool    `json:"director"`
	Executive        bool    `json:"executive"`
	Owner            bool    `json:"owner"`
	PercentOwnership float64 `json:"percent_ownership"`
	Representative   bool    `json:"representative"`
	Title            string  `json:"title"`
}

Relationship represents how the Person relates to the business.

type RelationshipListParams

type RelationshipListParams struct {
	Director       *bool `form:"director"`
	Executive      *bool `form:"executive"`
	Owner          *bool `form:"owner"`
	Representative *bool `form:"representative"`
}

RelationshipListParams is used to filter persons by the relationship

type RelationshipParams

type RelationshipParams struct {
	Director         *bool    `form:"director"`
	Executive        *bool    `form:"executive"`
	Owner            *bool    `form:"owner"`
	PercentOwnership *float64 `form:"percent_ownership"`
	Representative   *bool    `form:"representative"`
	Title            *string  `form:"title"`
}

RelationshipParams is used to set the relationship between an account and a person.

type ReportRun

type ReportRun struct {
	APIResource
	Created     int64                `json:"created"`
	Error       string               `json:"error"`
	ID          string               `json:"id"`
	Livemode    bool                 `json:"livemode"`
	Object      string               `json:"object"`
	Parameters  *ReportRunParameters `json:"parameters"`
	ReportType  string               `json:"report_type"`
	Result      *File                `json:"result"`
	Status      ReportRunStatus      `json:"status"`
	SucceededAt int64                `json:"succeeded_at"`
}

ReportRun is the resource representing a report run.

type ReportRunList

type ReportRunList struct {
	APIResource
	ListMeta
	Data []*ReportRun `json:"data"`
}

ReportRunList is a list of report runs as retrieved from a list endpoint.

type ReportRunListParams

type ReportRunListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
}

ReportRunListParams is the set of parameters that can be used when listing report runs.

type ReportRunParameters

type ReportRunParameters struct {
	Columns           []string `json:"columns"`
	ConnectedAccount  string   `json:"connected_account"`
	Currency          Currency `json:"currency"`
	IntervalEnd       int64    `json:"interval_end"`
	IntervalStart     int64    `json:"interval_start"`
	Payout            string   `json:"payout"`
	ReportingCategory string   `json:"reporting_category"`
	Timezone          string   `json:"timezone"`
}

ReportRunParameters describes the parameters hash on a report run.

type ReportRunParametersParams

type ReportRunParametersParams struct {
	Columns           []*string `form:"columns"`
	ConnectedAccount  *string   `form:"connected_account"`
	Currency          *string   `form:"currency"`
	IntervalEnd       *int64    `form:"interval_end"`
	IntervalStart     *int64    `form:"interval_start"`
	Payout            *string   `form:"payout"`
	ReportingCategory *string   `form:"reporting_category"`
	Timezone          *string   `form:"timezone"`
}

ReportRunParametersParams is the set of parameters that can be used when creating a report run.

type ReportRunParams

type ReportRunParams struct {
	Params     `form:"*"`
	Parameters *ReportRunParametersParams `form:"parameters"`
	ReportType *string                    `form:"report_type"`
}

ReportRunParams is the set of parameters that can be used when creating a report run.

type ReportRunStatus

type ReportRunStatus string

ReportRunStatus is the possible values for status on a report run.

const (
	ReportRunStatusFailed    ReportRunStatus = "failed"
	ReportRunStatusPending   ReportRunStatus = "pending"
	ReportRunStatusSucceeded ReportRunStatus = "succeeded"
)

List of values that ReportRunStatus can take.

type ReportType

type ReportType struct {
	APIResource
	Created            int64    `json:"created"`
	DataAvailableEnd   int64    `json:"data_available_end"`
	DataAvailableStart int64    `json:"data_available_start"`
	DefaultColumns     []string `json:"default_columns"`
	ID                 string   `json:"id"`
	Livemode           bool     `json:"livemode"`
	Name               string   `json:"name"`
	Object             string   `json:"object"`
	Updated            int64    `json:"updated"`
	Version            int64    `json:"version"`
}

ReportType is the resource representing a report type.

type ReportTypeList

type ReportTypeList struct {
	APIResource
	ListMeta
	Data []*ReportType `json:"data"`
}

ReportTypeList is a list of report types as retrieved from a list endpoint.

type ReportTypeListParams

type ReportTypeListParams struct {
	ListParams `form:"*"`
}

ReportTypeListParams is the set of parameters that can be used when listing report types.

type ReportTypeParams

type ReportTypeParams struct {
	Params `form:"*"`
}

ReportTypeParams is the set of parameters that can be used when retrieving a report type.

type Requirements

type Requirements struct {
	Alternatives        []*PersonRequirementsAlternative `json:"alternatives"`
	CurrentlyDue        []string                         `json:"currently_due"`
	Errors              []*AccountRequirementsError      `json:"errors"`
	EventuallyDue       []string                         `json:"eventually_due"`
	PastDue             []string                         `json:"past_due"`
	PendingVerification []string                         `json:"pending_verification"`
}

Requirements represents what's missing to verify a Person.

type Reversal

type Reversal struct {
	APIResource
	Amount                   int64               `json:"amount"`
	BalanceTransaction       *BalanceTransaction `json:"balance_transaction"`
	Created                  int64               `json:"created"`
	Currency                 Currency            `json:"currency"`
	Description              string              `json:"description"`
	DestinationPaymentRefund *Refund             `json:"destination_payment_refund"`
	ID                       string              `json:"id"`
	Metadata                 map[string]string   `json:"metadata"`
	Object                   string              `json:"object"`
	SourceRefund             *Refund             `json:"source_refund"`
	Transfer                 string              `json:"transfer"`
}

Reversal represents a transfer reversal.

func (*Reversal) UnmarshalJSON

func (r *Reversal) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Reversal. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ReversalList

type ReversalList struct {
	APIResource
	ListMeta
	Data []*Reversal `json:"data"`
}

ReversalList is a list of object for reversals.

type ReversalListParams

type ReversalListParams struct {
	ListParams `form:"*"`
	Transfer   *string `form:"-"` // Included in URL
}

ReversalListParams is the set of parameters that can be used when listing reversals.

type ReversalParams

type ReversalParams struct {
	Params               `form:"*"`
	Transfer             *string `form:"-"` // Included in URL
	Amount               *int64  `form:"amount"`
	Description          *string `form:"description"`
	RefundApplicationFee *bool   `form:"refund_application_fee"`
}

ReversalParams is the set of parameters that can be used when reversing a transfer.

type Review

type Review struct {
	APIResource
	BillingZip        string                   `json:"billing_zip"`
	Charge            *Charge                  `json:"charge"`
	ClosedReason      ReviewClosedReason       `json:"closed_reason"`
	Created           int64                    `json:"created"`
	ID                string                   `json:"id"`
	IPAddress         string                   `json:"ip_address"`
	IPAddressLocation *ReviewIPAddressLocation `json:"ip_address_location"`
	Livemode          bool                     `json:"livemode"`
	Object            string                   `json:"object"`
	Open              bool                     `json:"open"`
	OpenedReason      ReviewOpenedReason       `json:"opened_reason"`
	PaymentIntent     *PaymentIntent           `json:"payment_intent"`
	Reason            ReviewReason             `json:"reason"`
	Session           *ReviewSession           `json:"session"`
}

Reviews can be used to supplement automated fraud detection with human expertise.

Learn more about [Radar](https://stripe.com/radar) and reviewing payments [here](https://stripe.com/docs/radar/reviews).

func (*Review) UnmarshalJSON

func (r *Review) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Review. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ReviewApproveParams

type ReviewApproveParams struct {
	Params `form:"*"`
}

Approves a Review object, closing it and removing it from the list of reviews.

type ReviewClosedReason

type ReviewClosedReason string

The reason the review was closed, or null if it has not yet been closed. One of `approved`, `refunded`, `refunded_as_fraud`, `disputed`, or `redacted`.

const (
	ReviewClosedReasonApproved        ReviewClosedReason = "approved"
	ReviewClosedReasonDisputed        ReviewClosedReason = "disputed"
	ReviewClosedReasonRedacted        ReviewClosedReason = "redacted"
	ReviewClosedReasonRefunded        ReviewClosedReason = "refunded"
	ReviewClosedReasonRefundedAsFraud ReviewClosedReason = "refunded_as_fraud"
)

List of values that ReviewClosedReason can take

type ReviewIPAddressLocation

type ReviewIPAddressLocation struct {
	City      string  `json:"city"`
	Country   string  `json:"country"`
	Latitude  float64 `json:"latitude"`
	Longitude float64 `json:"longitude"`
	Region    string  `json:"region"`
}

Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address.

type ReviewList

type ReviewList struct {
	APIResource
	ListMeta
	Data []*Review `json:"data"`
}

ReviewList is a list of Reviews as retrieved from a list endpoint.

type ReviewListParams

type ReviewListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
}

Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

type ReviewOpenedReason

type ReviewOpenedReason string

The reason the review was opened. One of `rule` or `manual`.

const (
	ReviewOpenedReasonManual ReviewOpenedReason = "manual"
	ReviewOpenedReasonRule   ReviewOpenedReason = "rule"
)

List of values that ReviewOpenedReason can take

type ReviewParams

type ReviewParams struct {
	Params `form:"*"`
}

Retrieves a Review object.

type ReviewReason added in v72.61.0

type ReviewReason string

The reason the review is currently open or closed. One of `rule`, `manual`, `approved`, `refunded`, `refunded_as_fraud`, `disputed`, or `redacted`.

const (
	ReviewReasonApproved        ReviewReason = "approved"
	ReviewReasonDisputed        ReviewReason = "disputed"
	ReviewReasonManual          ReviewReason = "manual"
	ReviewReasonRefunded        ReviewReason = "refunded"
	ReviewReasonRefundedAsFraud ReviewReason = "refunded_as_fraud"
	ReviewReasonRule            ReviewReason = "rule"
)

List of values that ReviewReason can take

type ReviewReasonType deprecated

type ReviewReasonType = ReviewReason

Deprecated: we preserve this name for backwards-compatibility, prefer `ReviewReason`.

type ReviewSession

type ReviewSession struct {
	Browser  string `json:"browser"`
	Device   string `json:"device"`
	Platform string `json:"platform"`
	Version  string `json:"version"`
}

Information related to the browsing session of the user who initiated the payment.

type SKU

type SKU struct {
	APIResource
	Active            bool               `json:"active"`
	Attributes        map[string]string  `json:"attributes"`
	Created           int64              `json:"created"`
	Currency          Currency           `json:"currency"`
	Deleted           bool               `json:"deleted"`
	Description       string             `json:"description"`
	ID                string             `json:"id"`
	Image             string             `json:"image"`
	Inventory         *Inventory         `json:"inventory"`
	Livemode          bool               `json:"livemode"`
	Metadata          map[string]string  `json:"metadata"`
	Object            string             `json:"object"`
	PackageDimensions *PackageDimensions `json:"package_dimensions"`
	Price             int64              `json:"price"`
	Product           *Product           `json:"product"`
	Updated           int64              `json:"updated"`
}

SKU is the resource representing a SKU. For more details see https://stripe.com/docs/api#skus.

func (*SKU) UnmarshalJSON

func (s *SKU) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a SKU. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type SKUInventoryType

type SKUInventoryType string

SKUInventoryType describe's the possible value for inventory type

const (
	SKUInventoryTypeBucket   SKUInventoryType = "bucket"
	SKUInventoryTypeFinite   SKUInventoryType = "finite"
	SKUInventoryTypeInfinite SKUInventoryType = "infinite"
)

List of values that SKUInventoryType can take.

type SKUInventoryValue

type SKUInventoryValue string

SKUInventoryValue describe's the possible value for inventory value

const (
	SKUInventoryValueInStock    SKUInventoryValue = "in_stock"
	SKUInventoryValueLimited    SKUInventoryValue = "limited"
	SKUInventoryValueOutOfStock SKUInventoryValue = "out_of_stock"
)

List of values that SKUInventoryValue can take.

type SKUList

type SKUList struct {
	APIResource
	ListMeta
	Data []*SKU `json:"data"`
}

SKUList is a list of SKUs as returned from a list endpoint.

type SKUListParams

type SKUListParams struct {
	ListParams `form:"*"`
	Active     *bool             `form:"active"`
	Attributes map[string]string `form:"attributes"`
	IDs        []*string         `form:"ids"`
	InStock    *bool             `form:"in_stock"`
	Product    *string           `form:"product"`
}

SKUListParams is the set of parameters that can be used when listing SKUs.

type SKUParams

type SKUParams struct {
	Params            `form:"*"`
	Active            *bool                    `form:"active"`
	Attributes        map[string]string        `form:"attributes"`
	Currency          *string                  `form:"currency"`
	Description       *string                  `form:"description"`
	ID                *string                  `form:"id"`
	Image             *string                  `form:"image"`
	Inventory         *InventoryParams         `form:"inventory"`
	PackageDimensions *PackageDimensionsParams `form:"package_dimensions"`
	Price             *int64                   `form:"price"`
	Product           *string                  `form:"product"`
}

SKUParams is the set of parameters allowed on SKU creation or update.

type SetupAttempt added in v72.9.0

type SetupAttempt struct {
	APIResource
	Application          *Application                      `json:"application"`
	Created              int64                             `json:"created"`
	Customer             *Customer                         `json:"customer"`
	ID                   string                            `json:"id"`
	Livemode             bool                              `json:"livemode"`
	Object               string                            `json:"object"`
	OnBehalfOf           *Account                          `json:"on_behalf_of"`
	PaymentMethod        *PaymentMethod                    `json:"payment_method"`
	PaymentMethodDetails *SetupAttemptPaymentMethodDetails `json:"payment_method_details"`
	SetupError           *Error                            `json:"setup_error"`
	SetupIntent          *SetupIntent                      `json:"setup_intent"`
	Status               SetupAttemptStatus                `json:"status"`
	Usage                SetupAttemptUsage                 `json:"usage"`
}

SetupAttempt is the resource representing a Stripe setup attempt.

func (*SetupAttempt) UnmarshalJSON added in v72.9.0

func (s *SetupAttempt) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a SetupAttempt. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type SetupAttemptList added in v72.9.0

type SetupAttemptList struct {
	APIResource
	ListMeta
	Data []*SetupAttempt `json:"data"`
}

SetupAttemptList is a list of setup attempts as retrieved from a list endpoint.

type SetupAttemptListParams added in v72.9.0

type SetupAttemptListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	SetupIntent  *string           `form:"setup_intent"`
}

SetupAttemptListParams is the set of parameters that can be used when listing setup attempts.

type SetupAttemptPaymentMethodDetails added in v72.9.0

type SetupAttemptPaymentMethodDetails struct {
	ACSSDebit   *SetupAttemptPaymentMethodDetailsACSSDebit   `json:"acss_debit"`
	AUBECSDebit *SetupAttemptPaymentMethodDetailsAUBECSDebit `json:"au_becs_debit"`
	BACSDebit   *SetupAttemptPaymentMethodDetailsBACSDebit   `json:"bacs_debit"`
	Bancontact  *SetupAttemptPaymentMethodDetailsBancontact  `json:"bancontact"`
	Boleto      *SetupAttemptPaymentMethodDetailsBoleto      `json:"boleto"`
	Card        *SetupAttemptPaymentMethodDetailsCard        `json:"card"`
	CardPresent *SetupAttemptPaymentMethodDetailsCardPresent `json:"card_present"`
	Ideal       *SetupAttemptPaymentMethodDetailsIdeal       `json:"ideal"`
	SepaDebit   *SetupAttemptPaymentMethodDetailsSepaDebit   `json:"sepa_debit"`
	Sofort      *SetupAttemptPaymentMethodDetailsSofort      `json:"sofort"`
	Type        SetupAttemptPaymentMethodDetailsType         `json:"type"`
}

SetupAttemptPaymentMethodDetails represents the details about the PaymentMethod associated with the setup attempt.

type SetupAttemptPaymentMethodDetailsACSSDebit added in v72.74.0

type SetupAttemptPaymentMethodDetailsACSSDebit struct{}

type SetupAttemptPaymentMethodDetailsAUBECSDebit added in v72.74.0

type SetupAttemptPaymentMethodDetailsAUBECSDebit struct{}

type SetupAttemptPaymentMethodDetailsBACSDebit added in v72.74.0

type SetupAttemptPaymentMethodDetailsBACSDebit struct{}

type SetupAttemptPaymentMethodDetailsBancontact added in v72.12.0

type SetupAttemptPaymentMethodDetailsBancontact struct {
	BankCode                  string         `json:"bank_code"`
	BankName                  string         `json:"bank_name"`
	Bic                       string         `json:"bic"`
	GeneratedSepaDebit        *PaymentMethod `json:"generated_sepa_debit"`
	GeneratedSepaDebitMandate *Mandate       `json:"generated_sepa_debit_mandate"`
	IbanLast4                 string         `json:"iban_last4"`
	PreferredLanguage         string         `json:"preferred_language"`
	VerifiedName              string         `json:"verified_name"`
}

SetupAttemptPaymentMethodDetailsBancontact represents details about the Bancontact PaymentMethod.

type SetupAttemptPaymentMethodDetailsBoleto added in v72.81.0

type SetupAttemptPaymentMethodDetailsBoleto struct{}

type SetupAttemptPaymentMethodDetailsCard added in v72.9.0

type SetupAttemptPaymentMethodDetailsCard struct {
	ThreeDSecure *SetupAttemptPaymentMethodDetailsCardThreeDSecure `json:"three_d_secure"`
}

SetupAttemptPaymentMethodDetailsCard represents details about the Card PaymentMethod.

type SetupAttemptPaymentMethodDetailsCardPresent added in v72.74.0

type SetupAttemptPaymentMethodDetailsCardPresent struct {
	GeneratedCard *PaymentMethod `json:"generated_card"`
}

type SetupAttemptPaymentMethodDetailsCardThreeDSecure added in v72.9.0

type SetupAttemptPaymentMethodDetailsCardThreeDSecure struct {
	AuthenticationFlow SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlow `json:"authentication_flow"`
	Result             SetupAttemptPaymentMethodDetailsCardThreeDSecureResult             `json:"result"`
	ResultReason       SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason       `json:"result_reason"`
	Version            string                                                             `json:"version"`
}

SetupAttemptPaymentMethodDetailsCardThreeDSecure represents details about 3DS associated with the setup attempt's payment method.

type SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlow added in v72.9.0

type SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlow string

SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlow indicates the type of 3D Secure authentication performed.

const (
	SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlowChallenge    SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlow = "challenge"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlowFrictionless SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlow = "frictionless"
)

List of values that SetupAttemptPaymentMethodDetailsCardThreeDSecureAuthenticationFlow can take.

type SetupAttemptPaymentMethodDetailsCardThreeDSecureResult added in v72.9.0

type SetupAttemptPaymentMethodDetailsCardThreeDSecureResult string

SetupAttemptPaymentMethodDetailsCardThreeDSecureResult indicates the outcome of 3D Secure authentication.

const (
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultAttemptAcknowledged SetupAttemptPaymentMethodDetailsCardThreeDSecureResult = "attempt_acknowledged"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultAuthenticated       SetupAttemptPaymentMethodDetailsCardThreeDSecureResult = "authenticated"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultFailed              SetupAttemptPaymentMethodDetailsCardThreeDSecureResult = "failed"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultNotSupported        SetupAttemptPaymentMethodDetailsCardThreeDSecureResult = "not_supported"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultProcessingError     SetupAttemptPaymentMethodDetailsCardThreeDSecureResult = "processing_error"
)

List of values that SetupAttemptPaymentMethodDetailsCardThreeDSecureResult can take.

type SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason added in v72.9.0

type SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason string

SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason represents dditional information about why 3D Secure succeeded or failed

const (
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReasonAbandoned           SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason = "abandoned"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReasonBypassed            SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason = "bypassed"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReasonCanceled            SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason = "canceled"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReasonCardNotEnrolled     SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason = "card_not_enrolled"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReasonNetworkNotSupported SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason = "network_not_supported"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReasonProtocolError       SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason = "protocol_error"
	SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReasonRejected            SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason = "rejected"
)

List of values that SetupAttemptPaymentMethodDetailsCardThreeDSecureResultReason can take.

type SetupAttemptPaymentMethodDetailsIdeal added in v72.12.0

type SetupAttemptPaymentMethodDetailsIdeal struct {
	Bank                      string         `json:"bank"`
	Bic                       string         `json:"bic"`
	GeneratedSepaDebit        *PaymentMethod `json:"generated_sepa_debit"`
	GeneratedSepaDebitMandate *Mandate       `json:"generated_sepa_debit_mandate"`
	IbanLast4                 string         `json:"iban_last4"`
	VerifiedName              string         `json:"verified_name"`
}

SetupAttemptPaymentMethodDetailsIdeal represents details about the Bancontact PaymentMethod.

type SetupAttemptPaymentMethodDetailsSepaDebit added in v72.74.0

type SetupAttemptPaymentMethodDetailsSepaDebit struct{}

type SetupAttemptPaymentMethodDetailsSofort added in v72.12.0

type SetupAttemptPaymentMethodDetailsSofort struct {
	BankCode                  string         `json:"bank_code"`
	BankName                  string         `json:"bank_name"`
	Bic                       string         `json:"bic"`
	GeneratedSepaDebit        *PaymentMethod `json:"generated_sepa_debit"`
	GeneratedSepaDebitMandate *Mandate       `json:"generated_sepa_debit_mandate"`
	IbanLast4                 string         `json:"iban_last4"`
	PreferredLanguage         string         `json:"preferred_language"`
	VerifiedName              string         `json:"verified_name"`
}

SetupAttemptPaymentMethodDetailsSofort represents details about the Bancontact PaymentMethod.

type SetupAttemptPaymentMethodDetailsType added in v72.9.0

type SetupAttemptPaymentMethodDetailsType string

SetupAttemptPaymentMethodDetailsType is the type of the payment method associated with the setup attempt's payment method details.

const (
	SetupAttemptPaymentMethodDetailsTypeCard SetupAttemptPaymentMethodDetailsType = "card"
)

List of values that SetupAttemptPaymentMethodDetailsType can take.

type SetupAttemptStatus added in v72.9.0

type SetupAttemptStatus string

SetupAttemptStatus is the list of allowed values for the setup attempt's status.

const (
	SetupAttemptStatusAbandoned            SetupAttemptStatus = "abandoned"
	SetupAttemptStatusFailed               SetupAttemptStatus = "failed"
	SetupAttemptStatusProcessing           SetupAttemptStatus = "processing"
	SetupAttemptStatusRequiresAction       SetupAttemptStatus = "requires_action"
	SetupAttemptStatusRequiresConfirmation SetupAttemptStatus = "requires_confirmation"
	SetupAttemptStatusSucceeded            SetupAttemptStatus = "succeeded"
)

List of values that SetupAttemptStatus can take.

type SetupAttemptUsage added in v72.9.0

type SetupAttemptUsage string

SetupAttemptUsage is the list of allowed values for usage.

const (
	SetupAttemptUsageOffSession SetupAttemptUsage = "off_session"
	SetupAttemptUsageOnSession  SetupAttemptUsage = "on_session"
)

List of values that SetupAttemptUsage can take.

type SetupIntent

type SetupIntent struct {
	APIResource
	Application          *Application                     `json:"application"`
	CancellationReason   SetupIntentCancellationReason    `json:"cancellation_reason"`
	ClientSecret         string                           `json:"client_secret"`
	Created              int64                            `json:"created"`
	Customer             *Customer                        `json:"customer"`
	Description          string                           `json:"description"`
	ID                   string                           `json:"id"`
	LastSetupError       *Error                           `json:"last_setup_error"`
	LatestAttempt        *SetupAttempt                    `json:"latest_attempt"`
	Livemode             bool                             `json:"livemode"`
	Mandate              *Mandate                         `json:"mandate"`
	Metadata             map[string]string                `json:"metadata"`
	NextAction           *SetupIntentNextAction           `json:"next_action"`
	Object               string                           `json:"object"`
	OnBehalfOf           *Account                         `json:"on_behalf_of"`
	PaymentMethod        *PaymentMethod                   `json:"payment_method"`
	PaymentMethodOptions *SetupIntentPaymentMethodOptions `json:"payment_method_options"`
	PaymentMethodTypes   []string                         `json:"payment_method_types"`
	SingleUseMandate     *Mandate                         `json:"single_use_mandate"`
	Status               SetupIntentStatus                `json:"status"`
	Usage                SetupIntentUsage                 `json:"usage"`
}

SetupIntent is the resource representing a Stripe payout. For more details see https://stripe.com/docs/api#payment_intents.

func (*SetupIntent) UnmarshalJSON

func (s *SetupIntent) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a SetupIntent. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type SetupIntentCancelParams

type SetupIntentCancelParams struct {
	Params             `form:"*"`
	CancellationReason *string `form:"cancellation_reason"`
}

SetupIntentCancelParams is the set of parameters that can be used when canceling a setup intent.

type SetupIntentCancellationReason

type SetupIntentCancellationReason string

SetupIntentCancellationReason is the list of allowed values for the cancelation reason.

const (
	SetupIntentCancellationReasonAbandoned           SetupIntentCancellationReason = "abandoned"
	SetupIntentCancellationReasonDuplicate           SetupIntentCancellationReason = "duplicate"
	SetupIntentCancellationReasonFailedInvoice       SetupIntentCancellationReason = "failed_invoice"
	SetupIntentCancellationReasonFraudulent          SetupIntentCancellationReason = "fraudulent"
	SetupIntentCancellationReasonRequestedByCustomer SetupIntentCancellationReason = "requested_by_customer"
)

List of values that SetupIntentCancellationReason can take.

type SetupIntentConfirmParams

type SetupIntentConfirmParams struct {
	Params               `form:"*"`
	MandateData          *SetupIntentMandateDataParams          `form:"mandate_data"`
	PaymentMethod        *string                                `form:"payment_method"`
	PaymentMethodOptions *SetupIntentPaymentMethodOptionsParams `form:"payment_method_options"`
	ReturnURL            *string                                `form:"return_url"`
}

SetupIntentConfirmParams is the set of parameters that can be used when confirming a setup intent.

type SetupIntentList

type SetupIntentList struct {
	APIResource
	ListMeta
	Data []*SetupIntent `json:"data"`
}

SetupIntentList is a list of setup intents as retrieved from a list endpoint.

type SetupIntentListParams

type SetupIntentListParams struct {
	ListParams    `form:"*"`
	Created       *int64            `form:"created"`
	CreatedRange  *RangeQueryParams `form:"created"`
	Customer      *string           `form:"customer"`
	PaymentMethod *string           `form:"payment_method"`
}

SetupIntentListParams is the set of parameters that can be used when listing setup intents. For more details see https://stripe.com/docs/api#list_payouts.

type SetupIntentMandateDataCustomerAcceptanceOfflineParams

type SetupIntentMandateDataCustomerAcceptanceOfflineParams struct{}

SetupIntentMandateDataCustomerAcceptanceOfflineParams is the set of parameters for the customer acceptance of an offline mandate.

type SetupIntentMandateDataCustomerAcceptanceOnlineParams

type SetupIntentMandateDataCustomerAcceptanceOnlineParams struct {
	IPAddress *string `form:"ip_address"`
	UserAgent *string `form:"user_agent"`
}

SetupIntentMandateDataCustomerAcceptanceOnlineParams is the set of parameters for the customer acceptance of an online mandate.

type SetupIntentMandateDataCustomerAcceptanceParams

type SetupIntentMandateDataCustomerAcceptanceParams struct {
	AcceptedAt int64                                                  `form:"accepted_at"`
	Offline    *SetupIntentMandateDataCustomerAcceptanceOfflineParams `form:"offline"`
	Online     *SetupIntentMandateDataCustomerAcceptanceOnlineParams  `form:"online"`
	Type       MandateCustomerAcceptanceType                          `form:"type"`
}

SetupIntentMandateDataCustomerAcceptanceParams is the set of parameters for the customer acceptance of a mandate.

type SetupIntentMandateDataParams

type SetupIntentMandateDataParams struct {
	CustomerAcceptance *SetupIntentMandateDataCustomerAcceptanceParams `form:"customer_acceptance"`
}

SetupIntentMandateDataParams is the set of parameters controlling the creation of the mandate associated with this SetupIntent.

type SetupIntentNextAction

type SetupIntentNextAction struct {
	RedirectToURL           *SetupIntentNextActionRedirectToURL           `json:"redirect_to_url"`
	Type                    SetupIntentNextActionType                     `json:"type"`
	UseStripeSDK            *SetupIntentNextActionUseStripeSDK            `json:"use_stripe_sdk"`
	VerifyWithMicrodeposits *SetupIntentNextActionVerifyWithMicrodeposits `json:"verify_with_microdeposits"`
}

SetupIntentNextAction represents the type of action to take on a setup intent.

type SetupIntentNextActionRedirectToURL

type SetupIntentNextActionRedirectToURL struct {
	ReturnURL string `json:"return_url"`
	URL       string `json:"url"`
}

SetupIntentNextActionRedirectToURL represents the resource for the next action of type "redirect_to_url".

type SetupIntentNextActionType

type SetupIntentNextActionType string

SetupIntentNextActionType is the list of allowed values for the next action's type.

const (
	SetupIntentNextActionTypeRedirectToURL SetupIntentNextActionType = "redirect_to_url"
)

List of values that SetupIntentNextActionType can take.

type SetupIntentNextActionUseStripeSDK added in v72.42.0

type SetupIntentNextActionUseStripeSDK struct{}

SetupIntentNextActionUseStripeSDK represents the resource for the next action of type "use_stripe_sdk".

type SetupIntentNextActionVerifyWithMicrodeposits added in v72.42.0

type SetupIntentNextActionVerifyWithMicrodeposits struct {
	ArrivalDate           int64  `json:"arrival_date"`
	HostedVerificationURL string `json:"hosted_verification_url"`
}

SetupIntentNextActionVerifyWithMicrodeposits represents the resource for the next action of type "verify_with_microdeposits".

type SetupIntentParams

type SetupIntentParams struct {
	Params               `form:"*"`
	ClientSecret         *string                                `form:"client_secret"`
	Confirm              *bool                                  `form:"confirm"`
	Customer             *string                                `form:"customer"`
	Description          *string                                `form:"description"`
	MandateData          *SetupIntentMandateDataParams          `form:"mandate_data"`
	OnBehalfOf           *string                                `form:"on_behalf_of"`
	PaymentMethod        *string                                `form:"payment_method"`
	PaymentMethodOptions *SetupIntentPaymentMethodOptionsParams `form:"payment_method_options"`
	PaymentMethodTypes   []*string                              `form:"payment_method_types"`
	ReturnURL            *string                                `form:"return_url"`
	SingleUse            *SetupIntentSingleUseParams            `form:"single_use"`
	Usage                *string                                `form:"usage"`
}

SetupIntentParams is the set of parameters that can be used when handling a setup intent.

type SetupIntentPaymentMethodOptions

type SetupIntentPaymentMethodOptions struct {
	ACSSDebit *SetupIntentPaymentMethodOptionsACSSDebit `json:"acss_debit"`
	Card      *SetupIntentPaymentMethodOptionsCard      `json:"card"`
	SepaDebit *SetupIntentPaymentMethodOptionsSepaDebit `json:"sepa_debit"`
}

SetupIntentPaymentMethodOptions represents the type-specific payment method options applied to a SetupIntent.

type SetupIntentPaymentMethodOptionsACSSDebit added in v72.42.0

type SetupIntentPaymentMethodOptionsACSSDebit struct {
	// See SetupIntentPaymentMethodOptionsACSSDebitCurrency for allowed values
	Currency           string                                                     `json:"currency"`
	MandateOptions     *SetupIntentPaymentMethodOptionsACSSDebitMandateOptions    `json:"mandate_options"`
	VerificationMethod SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod `json:"verification_method"`
}

SetupIntentPaymentMethodOptionsACSSDebit represents the ACSS debit-specific options applied to a SetupIntent.

type SetupIntentPaymentMethodOptionsACSSDebitCurrency added in v72.74.0

type SetupIntentPaymentMethodOptionsACSSDebitCurrency string

Currency supported by the bank account

const (
	SetupIntentPaymentMethodOptionsACSSDebitCurrencyCAD SetupIntentPaymentMethodOptionsACSSDebitCurrency = "cad"
	SetupIntentPaymentMethodOptionsACSSDebitCurrencyUSD SetupIntentPaymentMethodOptionsACSSDebitCurrency = "usd"
)

List of values that SetupIntentPaymentMethodOptionsACSSDebitCurrency can take

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptions added in v72.42.0

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptions struct {
	CustomMandateURL    string                                                                `json:"custom_mandate_url"`
	DefaultFor          []SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor    `json:"default_for"`
	IntervalDescription string                                                                `json:"interval_description"`
	PaymentSchedule     SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule `json:"payment_schedule"`
	TransactionType     SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType `json:"transaction_type"`
}

SetupIntentPaymentMethodOptionsACSSDebitMandateOptions describe the mandate options for acss debit associated with a setup intent.

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor added in v72.65.0

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor string

List of Stripe products where this mandate can be selected automatically.

const (
	SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultForInvoice      SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor = "invoice"
	SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultForSubscription SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor = "subscription"
)

List of values that SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsDefaultFor can take

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsParams added in v72.42.0

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsParams struct {
	CustomMandateURL    *string   `form:"custom_mandate_url"`
	DefaultFor          []*string `form:"default_for"`
	IntervalDescription *string   `form:"interval_description"`
	PaymentSchedule     *string   `form:"payment_schedule"`
	TransactionType     *string   `form:"transaction_type"`
}

SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsParams is the set of parameters for mandate_options on acss_debit.

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule added in v72.42.0

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule string

SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule is the list of allowed values for payment_schedule on mandate_options.

const (
	SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleCombined SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "combined"
	SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleInterval SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "interval"
	SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentScheduleSporadic SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule = "sporadic"
)

List of values that SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsPaymentSchedule can take.

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType added in v72.42.0

type SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType string

SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType is the list of allowed values for transaction_type on mandate_options.

const (
	SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypeBusiness SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "business"
	SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypePersonal SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "personal"
)

List of values that SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsTransactionType can take.

type SetupIntentPaymentMethodOptionsACSSDebitParams added in v72.42.0

type SetupIntentPaymentMethodOptionsACSSDebitParams struct {
	Currency           *string                                                       `form:"currency"`
	MandateOptions     *SetupIntentPaymentMethodOptionsACSSDebitMandateOptionsParams `form:"mandate_options"`
	VerificationMethod *string                                                       `form:"verification_method"`
}

SetupIntentPaymentMethodOptionsACSSDebitParams is the set of parameters for acss debit on payment_method_options.

type SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod added in v72.42.0

type SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod string

SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod is the list of allowed values for verification_method on acss_debit.

const (
	SetupIntentPaymentMethodOptionsACSSDebitVerificationMethodAutomatic     SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod = "automatic"
	SetupIntentPaymentMethodOptionsACSSDebitVerificationMethodInstant       SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod = "instant"
	SetupIntentPaymentMethodOptionsACSSDebitVerificationMethodMicrodeposits SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod = "microdeposits"
)

List of values that SetupIntentPaymentMethodOptionsACSSDebitVerificationMethod can take.

type SetupIntentPaymentMethodOptionsCard

type SetupIntentPaymentMethodOptionsCard struct {
	RequestThreeDSecure SetupIntentPaymentMethodOptionsCardRequestThreeDSecure `json:"request_three_d_secure"`
}

SetupIntentPaymentMethodOptionsCard represents the card-specific options applied to a SetupIntent.

type SetupIntentPaymentMethodOptionsCardParams

type SetupIntentPaymentMethodOptionsCardParams struct {
	MOTO                *bool   `form:"moto"`
	RequestThreeDSecure *string `form:"request_three_d_secure"`
}

SetupIntentPaymentMethodOptionsCardParams represents the card-specific options applied to a SetupIntent.

type SetupIntentPaymentMethodOptionsCardRequestThreeDSecure

type SetupIntentPaymentMethodOptionsCardRequestThreeDSecure string

SetupIntentPaymentMethodOptionsCardRequestThreeDSecure is the list of allowed values controlling when to request 3D Secure on a SetupIntent.

const (
	SetupIntentPaymentMethodOptionsCardRequestThreeDSecureAny           SetupIntentPaymentMethodOptionsCardRequestThreeDSecure = "any"
	SetupIntentPaymentMethodOptionsCardRequestThreeDSecureAutomatic     SetupIntentPaymentMethodOptionsCardRequestThreeDSecure = "automatic"
	SetupIntentPaymentMethodOptionsCardRequestThreeDSecureChallengeOnly SetupIntentPaymentMethodOptionsCardRequestThreeDSecure = "challenge_only"
)

List of values that SetupIntentNextActionType can take.

type SetupIntentPaymentMethodOptionsParams

type SetupIntentPaymentMethodOptionsParams struct {
	ACSSDebit *SetupIntentPaymentMethodOptionsACSSDebitParams `form:"acss_debit"`
	Card      *SetupIntentPaymentMethodOptionsCardParams      `form:"card"`
	SepaDebit *SetupIntentPaymentMethodOptionsSepaDebitParams `form:"sepa_debit"`
}

SetupIntentPaymentMethodOptionsParams represents the type-specific payment method options applied to a SetupIntent.

type SetupIntentPaymentMethodOptionsSepaDebit added in v72.74.0

type SetupIntentPaymentMethodOptionsSepaDebit struct {
	MandateOptions *SetupIntentPaymentMethodOptionsSepaDebitMandateOptions `json:"mandate_options"`
}

type SetupIntentPaymentMethodOptionsSepaDebitMandateOptions added in v72.74.0

type SetupIntentPaymentMethodOptionsSepaDebitMandateOptions struct{}

type SetupIntentPaymentMethodOptionsSepaDebitMandateOptionsParams added in v72.74.0

type SetupIntentPaymentMethodOptionsSepaDebitMandateOptionsParams struct{}

Additional fields for Mandate creation

type SetupIntentPaymentMethodOptionsSepaDebitParams added in v72.74.0

type SetupIntentPaymentMethodOptionsSepaDebitParams struct {
	MandateOptions *SetupIntentPaymentMethodOptionsSepaDebitMandateOptionsParams `form:"mandate_options"`
}

If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options.

type SetupIntentSingleUseParams

type SetupIntentSingleUseParams struct {
	Amount   *int64  `form:"amount"`
	Currency *string `form:"currency"`
}

SetupIntentSingleUseParams represents the single-use mandate-specific parameters.

type SetupIntentStatus

type SetupIntentStatus string

SetupIntentStatus is the list of allowed values for the setup intent's status.

const (
	SetupIntentStatusCanceled              SetupIntentStatus = "canceled"
	SetupIntentStatusProcessing            SetupIntentStatus = "processing"
	SetupIntentStatusRequiresAction        SetupIntentStatus = "requires_action"
	SetupIntentStatusRequiresConfirmation  SetupIntentStatus = "requires_confirmation"
	SetupIntentStatusRequiresPaymentMethod SetupIntentStatus = "requires_payment_method"
	SetupIntentStatusSucceeded             SetupIntentStatus = "succeeded"
)

List of values that SetupIntentStatus can take.

type SetupIntentUsage

type SetupIntentUsage string

SetupIntentUsage is the list of allowed values for the setup intent's usage.

const (
	SetupIntentUsageOffSession SetupIntentUsage = "off_session"
	SetupIntentUsageOnSession  SetupIntentUsage = "on_session"
)

List of values that SetupIntentUsage can take.

type Shipping

type Shipping struct {
	Address        *Address `json:"address"`
	Carrier        string   `json:"carrier"`
	Name           string   `json:"name"`
	Phone          string   `json:"phone"`
	TrackingNumber string   `json:"tracking_number"`
}

Shipping describes the shipping hash on an order.

type ShippingDetails

type ShippingDetails struct {
	Address        *Address `json:"address"`
	Carrier        string   `json:"carrier"`
	Name           string   `json:"name"`
	Phone          string   `json:"phone"`
	TrackingNumber string   `json:"tracking_number"`
}

ShippingDetails is the structure containing shipping information.

type ShippingDetailsParams

type ShippingDetailsParams struct {
	Address        *AddressParams `form:"address"`
	Carrier        *string        `form:"carrier"`
	Name           *string        `form:"name"`
	Phone          *string        `form:"phone"`
	TrackingNumber *string        `form:"tracking_number"`
}

ShippingDetailsParams is the structure containing shipping information as parameters

type ShippingMethod

type ShippingMethod struct {
	Amount           int64             `json:"amount"`
	Currency         Currency          `json:"currency"`
	DeliveryEstimate *DeliveryEstimate `json:"delivery_estimate"`
	Description      string            `json:"description"`
	ID               string            `json:"id"`
}

ShippingMethod describes a shipping method as available on an order.

type ShippingParams

type ShippingParams struct {
	Address        *AddressParams `form:"address"`
	Carrier        *string        `form:"carrier"`
	Name           *string        `form:"name"`
	Phone          *string        `form:"phone"`
	TrackingNumber *string        `form:"tracking_number"`
}

ShippingParams is the set of parameters that can be used for the shipping hash on order creation.

type ShippingRate added in v72.75.0

type ShippingRate struct {
	APIResource
	Active           bool                          `json:"active"`
	Created          int64                         `json:"created"`
	DeliveryEstimate *ShippingRateDeliveryEstimate `json:"delivery_estimate"`
	DisplayName      string                        `json:"display_name"`
	FixedAmount      *ShippingRateFixedAmount      `json:"fixed_amount"`
	ID               string                        `json:"id"`
	Livemode         bool                          `json:"livemode"`
	Metadata         map[string]string             `json:"metadata"`
	Object           string                        `json:"object"`
	TaxBehavior      ShippingRateTaxBehavior       `json:"tax_behavior"`
	TaxCode          *TaxCode                      `json:"tax_code"`
	Type             ShippingRateType              `json:"type"`
}

Shipping rates describe the price of shipping presented to your customers and can be applied to [Checkout Sessions](https://stripe.com/docs/payments/checkout/shipping) to collect shipping costs.

func (*ShippingRate) UnmarshalJSON added in v72.75.0

func (s *ShippingRate) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a ShippingRate. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type ShippingRateDeliveryEstimate added in v72.75.0

type ShippingRateDeliveryEstimate struct {
	Maximum *ShippingRateDeliveryEstimateMaximum `json:"maximum"`
	Minimum *ShippingRateDeliveryEstimateMinimum `json:"minimum"`
}

The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions.

type ShippingRateDeliveryEstimateMaximum added in v72.75.0

type ShippingRateDeliveryEstimateMaximum struct {
	Unit  ShippingRateDeliveryEstimateMaximumUnit `json:"unit"`
	Value int64                                   `json:"value"`
}

The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite.

type ShippingRateDeliveryEstimateMaximumParams added in v72.75.0

type ShippingRateDeliveryEstimateMaximumParams struct {
	Unit  *string `form:"unit"`
	Value *int64  `form:"value"`
}

The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite.

type ShippingRateDeliveryEstimateMaximumUnit added in v72.75.0

type ShippingRateDeliveryEstimateMaximumUnit string

A unit of time.

const (
	ShippingRateDeliveryEstimateMaximumUnitBusinessDay ShippingRateDeliveryEstimateMaximumUnit = "business_day"
	ShippingRateDeliveryEstimateMaximumUnitDay         ShippingRateDeliveryEstimateMaximumUnit = "day"
	ShippingRateDeliveryEstimateMaximumUnitHour        ShippingRateDeliveryEstimateMaximumUnit = "hour"
	ShippingRateDeliveryEstimateMaximumUnitMonth       ShippingRateDeliveryEstimateMaximumUnit = "month"
	ShippingRateDeliveryEstimateMaximumUnitWeek        ShippingRateDeliveryEstimateMaximumUnit = "week"
)

List of values that ShippingRateDeliveryEstimateMaximumUnit can take

type ShippingRateDeliveryEstimateMinimum added in v72.75.0

type ShippingRateDeliveryEstimateMinimum struct {
	Unit  ShippingRateDeliveryEstimateMinimumUnit `json:"unit"`
	Value int64                                   `json:"value"`
}

The lower bound of the estimated range. If empty, represents no lower bound.

type ShippingRateDeliveryEstimateMinimumParams added in v72.75.0

type ShippingRateDeliveryEstimateMinimumParams struct {
	Unit  *string `form:"unit"`
	Value *int64  `form:"value"`
}

The lower bound of the estimated range. If empty, represents no lower bound.

type ShippingRateDeliveryEstimateMinimumUnit added in v72.75.0

type ShippingRateDeliveryEstimateMinimumUnit string

A unit of time.

const (
	ShippingRateDeliveryEstimateMinimumUnitBusinessDay ShippingRateDeliveryEstimateMinimumUnit = "business_day"
	ShippingRateDeliveryEstimateMinimumUnitDay         ShippingRateDeliveryEstimateMinimumUnit = "day"
	ShippingRateDeliveryEstimateMinimumUnitHour        ShippingRateDeliveryEstimateMinimumUnit = "hour"
	ShippingRateDeliveryEstimateMinimumUnitMonth       ShippingRateDeliveryEstimateMinimumUnit = "month"
	ShippingRateDeliveryEstimateMinimumUnitWeek        ShippingRateDeliveryEstimateMinimumUnit = "week"
)

List of values that ShippingRateDeliveryEstimateMinimumUnit can take

type ShippingRateDeliveryEstimateParams added in v72.75.0

type ShippingRateDeliveryEstimateParams struct {
	Maximum *ShippingRateDeliveryEstimateMaximumParams `form:"maximum"`
	Minimum *ShippingRateDeliveryEstimateMinimumParams `form:"minimum"`
}

The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions.

type ShippingRateFixedAmount added in v72.75.0

type ShippingRateFixedAmount struct {
	Amount   int64    `json:"amount"`
	Currency Currency `json:"currency"`
}

type ShippingRateFixedAmountParams added in v72.75.0

type ShippingRateFixedAmountParams struct {
	Amount   *int64  `form:"amount"`
	Currency *string `form:"currency"`
}

Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`.

type ShippingRateList added in v72.75.0

type ShippingRateList struct {
	APIResource
	ListMeta
	Data []*ShippingRate `json:"data"`
}

ShippingRateList is a list of ShippingRates as retrieved from a list endpoint.

type ShippingRateListParams added in v72.75.0

type ShippingRateListParams struct {
	ListParams   `form:"*"`
	Active       *bool             `form:"active"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Currency     *string           `form:"currency"`
}

Returns a list of your shipping rates.

type ShippingRateParams added in v72.75.0

type ShippingRateParams struct {
	Params           `form:"*"`
	Active           *bool                               `form:"active"`
	DeliveryEstimate *ShippingRateDeliveryEstimateParams `form:"delivery_estimate"`
	DisplayName      *string                             `form:"display_name"`
	FixedAmount      *ShippingRateFixedAmountParams      `form:"fixed_amount"`
	TaxBehavior      *string                             `form:"tax_behavior"`
	TaxCode          *string                             `form:"tax_code"`
	Type             *string                             `form:"type"`
}

Creates a new shipping rate object.

type ShippingRateTaxBehavior added in v72.75.0

type ShippingRateTaxBehavior string

Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`.

const (
	ShippingRateTaxBehaviorExclusive   ShippingRateTaxBehavior = "exclusive"
	ShippingRateTaxBehaviorInclusive   ShippingRateTaxBehavior = "inclusive"
	ShippingRateTaxBehaviorUnspecified ShippingRateTaxBehavior = "unspecified"
)

List of values that ShippingRateTaxBehavior can take

type ShippingRateType added in v72.75.0

type ShippingRateType string

The type of calculation to use on the shipping rate. Can only be `fixed_amount` for now.

const (
	ShippingRateTypeFixedAmount ShippingRateType = "fixed_amount"
)

List of values that ShippingRateType can take

type SigmaScheduledQueryRun

type SigmaScheduledQueryRun struct {
	APIResource
	Created              int64                        `json:"created"`
	DataLoadTime         int64                        `json:"data_load_time"`
	Error                *SigmaScheduledQueryRunError `json:"error"`
	File                 *File                        `json:"file"`
	ID                   string                       `json:"id"`
	Livemode             bool                         `json:"livemode"`
	Object               string                       `json:"object"`
	Query                string                       `json:"query"`
	ResultAvailableUntil int64                        `json:"result_available_until"`
	SQL                  string                       `json:"sql"`
	Status               SigmaScheduledQueryRunStatus `json:"status"`
	Title                string                       `json:"title"`
}

SigmaScheduledQueryRun is the resource representing a scheduled query run.

func (*SigmaScheduledQueryRun) UnmarshalJSON

func (s *SigmaScheduledQueryRun) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a SigmaScheduledQueryRun. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type SigmaScheduledQueryRunError added in v72.56.0

type SigmaScheduledQueryRunError struct {
	Message string `json:"message"`
}

type SigmaScheduledQueryRunList

type SigmaScheduledQueryRunList struct {
	APIResource
	ListMeta
	Data []*SigmaScheduledQueryRun `json:"data"`
}

SigmaScheduledQueryRunList is a list of scheduled query runs as retrieved from a list endpoint.

type SigmaScheduledQueryRunListParams

type SigmaScheduledQueryRunListParams struct {
	ListParams `form:"*"`
}

SigmaScheduledQueryRunListParams is the set of parameters that can be used when listing scheduled query runs.

type SigmaScheduledQueryRunParams

type SigmaScheduledQueryRunParams struct {
	Params `form:"*"`
}

SigmaScheduledQueryRunParams is the set of parameters that can be used when updating a scheduled query run.

type SigmaScheduledQueryRunStatus

type SigmaScheduledQueryRunStatus string

SigmaScheduledQueryRunStatus is the possible values for status for a scheduled query run.

const (
	SigmaScheduledQueryRunStatusCanceled  SigmaScheduledQueryRunStatus = "canceled"
	SigmaScheduledQueryRunStatusCompleted SigmaScheduledQueryRunStatus = "completed"
	SigmaScheduledQueryRunStatusFailed    SigmaScheduledQueryRunStatus = "failed"
	SigmaScheduledQueryRunStatusTimedOut  SigmaScheduledQueryRunStatus = "timed_out"
)

List of values that SigmaScheduledQueryRunStatus can take.

type Source

type Source struct {
	APIResource
	Amount              int64                 `json:"amount"`
	ClientSecret        string                `json:"client_secret"`
	CodeVerification    *CodeVerificationFlow `json:"code_verification,omitempty"`
	Created             int64                 `json:"created"`
	Currency            Currency              `json:"currency"`
	Customer            string                `json:"customer"`
	Flow                SourceFlow            `json:"flow"`
	ID                  string                `json:"id"`
	Livemode            bool                  `json:"livemode"`
	Mandate             *SourceMandate        `json:"mandate"`
	Metadata            map[string]string     `json:"metadata"`
	Object              string                `json:"object"`
	Owner               *SourceOwner          `json:"owner"`
	Receiver            *ReceiverFlow         `json:"receiver,omitempty"`
	Redirect            *RedirectFlow         `json:"redirect,omitempty"`
	SourceOrder         *SourceSourceOrder    `json:"source_order"`
	StatementDescriptor string                `json:"statement_descriptor"`
	Status              SourceStatus          `json:"status"`
	Type                string                `json:"type"`
	TypeData            map[string]interface{}
	Usage               SourceUsage `json:"usage"`
}

Source is the resource representing a Source. For more details see https://stripe.com/docs/api#sources.

func (*Source) UnmarshalJSON

func (s *Source) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Source. This custom unmarshaling is needed to extract the type specific data (accessible under `TypeData`) but stored in JSON under a hash named after the `type` of the source.

type SourceCodeVerificationFlowStatus

type SourceCodeVerificationFlowStatus string

SourceCodeVerificationFlowStatus represents the possible statuses of a code verification flow.

const (
	SourceCodeVerificationFlowStatusFailed    SourceCodeVerificationFlowStatus = "failed"
	SourceCodeVerificationFlowStatusPending   SourceCodeVerificationFlowStatus = "pending"
	SourceCodeVerificationFlowStatusSucceeded SourceCodeVerificationFlowStatus = "succeeded"
)

List of values that SourceCodeVerificationFlowStatus can take.

type SourceFlow

type SourceFlow string

SourceFlow represents the possible flows of a source object.

const (
	SourceFlowCodeVerification SourceFlow = "code_verification"
	SourceFlowNone             SourceFlow = "none"
	SourceFlowReceiver         SourceFlow = "receiver"
	SourceFlowRedirect         SourceFlow = "redirect"
)

List of values that SourceFlow can take.

type SourceList

type SourceList struct {
	APIResource
	ListMeta
	Data []*PaymentSource `json:"data"`
}

SourceList is a list object for cards.

type SourceListParams

type SourceListParams struct {
	ListParams `form:"*"`
	Customer   *string `form:"-"` // Included in URL
	Object     *string `form:"object"`
}

SourceListParams are used to enumerate the payment sources that are attached to a Customer.

type SourceMandate

type SourceMandate struct {
	Acceptance         *SourceMandateAcceptance        `json:"acceptance"`
	NotificationMethod SourceMandateNotificationMethod `json:"notification_method"`
	Reference          string                          `json:"reference"`
	URL                string                          `json:"url"`
}

SourceMandate describes a source mandate.

type SourceMandateAcceptance

type SourceMandateAcceptance struct {
	Date      int64                         `json:"date"`
	IP        string                        `json:"ip"`
	Status    SourceMandateAcceptanceStatus `json:"status"`
	UserAgent string                        `json:"user_agent"`
}

SourceMandateAcceptance describes a source mandate acceptance state.

type SourceMandateAcceptanceOfflineParams

type SourceMandateAcceptanceOfflineParams struct {
	ContactEmail *string `form:"contact_email"`
}

SourceMandateAcceptanceOfflineParams describes the set of parameters for offline accepted mandate

type SourceMandateAcceptanceOnlineParams

type SourceMandateAcceptanceOnlineParams struct {
	Date      *int64  `form:"date"`
	IP        *string `form:"ip"`
	UserAgent *string `form:"user_agent"`
}

SourceMandateAcceptanceOnlineParams describes the set of parameters for online accepted mandate

type SourceMandateAcceptanceParams

type SourceMandateAcceptanceParams struct {
	Date      *int64                                `form:"date"`
	IP        *string                               `form:"ip"`
	Offline   *SourceMandateAcceptanceOfflineParams `form:"offline"`
	Online    *SourceMandateAcceptanceOnlineParams  `form:"online"`
	Status    *string                               `form:"status"`
	Type      *string                               `form:"type"`
	UserAgent *string                               `form:"user_agent"`
}

SourceMandateAcceptanceParams describes the set of parameters allowed for the `acceptance` hash on source creation or update.

type SourceMandateAcceptanceStatus

type SourceMandateAcceptanceStatus string

SourceMandateAcceptanceStatus represents the possible failure reasons of a redirect flow.

const (
	SourceMandateAcceptanceStatusAccepted SourceMandateAcceptanceStatus = "accepted"
	SourceMandateAcceptanceStatusRefused  SourceMandateAcceptanceStatus = "refused"
)

List of values that SourceMandateAcceptanceStatus can take.

type SourceMandateNotificationMethod

type SourceMandateNotificationMethod string

SourceMandateNotificationMethod represents the possible methods of notification for a mandate.

const (
	SourceMandateNotificationMethodEmail  SourceMandateNotificationMethod = "email"
	SourceMandateNotificationMethodManual SourceMandateNotificationMethod = "manual"
	SourceMandateNotificationMethodNone   SourceMandateNotificationMethod = "none"
)

List of values that SourceMandateNotificationMethod can take.

type SourceMandateParams

type SourceMandateParams struct {
	Acceptance         *SourceMandateAcceptanceParams `form:"acceptance"`
	Amount             *int64                         `form:"amount"`
	Currency           *string                        `form:"currency"`
	Interval           *string                        `form:"interval"`
	NotificationMethod *string                        `form:"notification_method"`
}

SourceMandateParams describes the set of parameters allowed for the `mandate` hash on source creation or update.

type SourceObjectDetachParams

type SourceObjectDetachParams struct {
	Params   `form:"*"`
	Customer *string `form:"-"` // Included in URL
}

SourceObjectDetachParams is the set of parameters that can be used when detaching a source from a customer.

type SourceObjectParams

type SourceObjectParams struct {
	Params              `form:"*"`
	Amount              *int64                `form:"amount"`
	ClientSecret        *string               `form:"client_secret"`
	Currency            *string               `form:"currency"`
	Customer            *string               `form:"customer"`
	Flow                *string               `form:"flow"`
	Mandate             *SourceMandateParams  `form:"mandate"`
	OriginalSource      *string               `form:"original_source"`
	Owner               *SourceOwnerParams    `form:"owner"`
	Receiver            *SourceReceiverParams `form:"receiver"`
	Redirect            *RedirectParams       `form:"redirect"`
	SourceOrder         *SourceOrderParams    `form:"source_order"`
	StatementDescriptor *string               `form:"statement_descriptor"`
	Token               *string               `form:"token"`
	Type                *string               `form:"type"`
	TypeData            map[string]string     `form:"-"`
	Usage               *string               `form:"usage"`
}

SourceObjectParams is the set of parameters allowed on source creation or update.

func (*SourceObjectParams) AppendTo

func (p *SourceObjectParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for SourceObjectParams so that the special "TypeData" value for is sent as the correct parameter based on the Source type

type SourceOrderItemsParams

type SourceOrderItemsParams struct {
	Amount      *int64  `form:"amount"`
	Currency    *string `form:"currency"`
	Description *string `form:"description"`
	Parent      *string `form:"parent"`
	Quantity    *int64  `form:"quantity"`
	Type        *string `form:"type"`
}

SourceOrderItemsParams is the set of parameters allowed for the items on a source order for a source.

type SourceOrderParams

type SourceOrderParams struct {
	Items    []*SourceOrderItemsParams `form:"items"`
	Shipping *ShippingDetailsParams    `form:"shipping"`
}

SourceOrderParams is the set of parameters allowed for the source order of a source.

type SourceOwner

type SourceOwner struct {
	Address         *Address `json:"address,omitempty"`
	Email           string   `json:"email"`
	Name            string   `json:"name"`
	Phone           string   `json:"phone"`
	VerifiedAddress *Address `json:"verified_address,omitempty"`
	VerifiedEmail   string   `json:"verified_email"`
	VerifiedName    string   `json:"verified_name"`
	VerifiedPhone   string   `json:"verified_phone"`
}

SourceOwner describes the owner hash on a source.

type SourceOwnerParams

type SourceOwnerParams struct {
	Address *AddressParams `form:"address"`
	Email   *string        `form:"email"`
	Name    *string        `form:"name"`
	Phone   *string        `form:"phone"`
}

SourceOwnerParams is the set of parameters allowed for the owner hash on source creation or update.

type SourceParams

type SourceParams struct {
	Card  *CardParams `form:"-"`
	Token *string     `form:"source"`
}

SourceParams is a union struct used to describe an arbitrary payment source.

func SourceParamsFor

func SourceParamsFor(obj interface{}) (*SourceParams, error)

SourceParamsFor creates SourceParams objects around supported payment sources, returning errors if not.

Currently supported source types are Card (CardParams) and Tokens/IDs (string), where Tokens could be single use card tokens

func (*SourceParams) AppendTo

func (p *SourceParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for SourceParams.

type SourceReceiverParams

type SourceReceiverParams struct {
	RefundAttributesMethod *string `form:"refund_attributes_method"`
}

SourceReceiverParams is the set of parameters allowed for the `receiver` hash on source creation or update.

type SourceRedirectFlowFailureReason

type SourceRedirectFlowFailureReason string

SourceRedirectFlowFailureReason represents the possible failure reasons of a redirect flow.

const (
	SourceRedirectFlowFailureReasonDeclined        SourceRedirectFlowFailureReason = "declined"
	SourceRedirectFlowFailureReasonProcessingError SourceRedirectFlowFailureReason = "processing_error"
	SourceRedirectFlowFailureReasonUserAbort       SourceRedirectFlowFailureReason = "user_abort"
)

List of values that SourceRedirectFlowFailureReason can take.

type SourceRedirectFlowStatus

type SourceRedirectFlowStatus string

SourceRedirectFlowStatus represents the possible statuses of a redirect flow.

const (
	SourceRedirectFlowStatusFailed      SourceRedirectFlowStatus = "failed"
	SourceRedirectFlowStatusNotRequired SourceRedirectFlowStatus = "not_required"
	SourceRedirectFlowStatusPending     SourceRedirectFlowStatus = "pending"
	SourceRedirectFlowStatusSucceeded   SourceRedirectFlowStatus = "succeeded"
)

List of values that SourceRedirectFlowStatus can take.

type SourceRefundAttributesMethod

type SourceRefundAttributesMethod string

SourceRefundAttributesMethod are the possible method to retrieve a receiver's refund attributes.

const (
	SourceRefundAttributesMethodEmail  SourceRefundAttributesMethod = "email"
	SourceRefundAttributesMethodManual SourceRefundAttributesMethod = "manual"
)

List of values that SourceRefundAttributesMethod can take.

type SourceRefundAttributesStatus

type SourceRefundAttributesStatus string

SourceRefundAttributesStatus are the possible status of a receiver's refund attributes.

const (
	SourceRefundAttributesStatusAvailable SourceRefundAttributesStatus = "available"
	SourceRefundAttributesStatusMissing   SourceRefundAttributesStatus = "missing"
	SourceRefundAttributesStatusRequested SourceRefundAttributesStatus = "requested"
)

List of values that SourceRefundAttributesStatus can take.

type SourceSourceOrder

type SourceSourceOrder struct {
	Amount   int64                     `json:"amount"`
	Currency Currency                  `json:"currency"`
	Email    string                    `json:"email"`
	Items    *[]SourceSourceOrderItems `json:"items"`
	Shipping *ShippingDetails          `json:"shipping"`
}

SourceSourceOrder describes a source order for a source.

type SourceSourceOrderItemType

type SourceSourceOrderItemType string

SourceSourceOrderItemType describes the type of source order items on source orders for sources.

const (
	SourceSourceOrderItemTypeDiscount SourceSourceOrderItemType = "discount"
	SourceSourceOrderItemTypeSKU      SourceSourceOrderItemType = "sku"
	SourceSourceOrderItemTypeShipping SourceSourceOrderItemType = "shipping"
	SourceSourceOrderItemTypeTax      SourceSourceOrderItemType = "tax"
)

The list of possible values for source order item types.

type SourceSourceOrderItems

type SourceSourceOrderItems struct {
	Amount      int64                     `json:"amount"`
	Currency    Currency                  `json:"currency"`
	Description string                    `json:"description"`
	Parent      string                    `json:"parent"`
	Quantity    int64                     `json:"quantity"`
	Type        SourceSourceOrderItemType `json:"type"`
}

SourceSourceOrderItems describes the items on source orders for sources.

type SourceStatus

type SourceStatus string

SourceStatus represents the possible statuses of a source object.

const (
	SourceStatusCanceled   SourceStatus = "canceled"
	SourceStatusChargeable SourceStatus = "chargeable"
	SourceStatusConsumed   SourceStatus = "consumed"
	SourceStatusFailed     SourceStatus = "failed"
	SourceStatusPending    SourceStatus = "pending"
)

List of values that SourceStatus can take.

type SourceTransaction

type SourceTransaction struct {
	Amount   int64    `json:"amount"`
	Created  int64    `json:"created"`
	Currency Currency `json:"currency"`
	ID       string   `json:"id"`
	Livemode bool     `json:"livemode"`
	Object   string   `json:"object"`
	Source   string   `json:"source"`
	Status   string   `json:"status"`
	Type     string   `json:"type"`

	// See custom UnmarshalJSON
	TypeData map[string]interface{}

	// Deprecated
	CustomerData string `json:"customer_data"`
}

SourceTransaction is the resource representing a Stripe source transaction.

func (*SourceTransaction) UnmarshalJSON

func (t *SourceTransaction) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a SourceTransaction. This custom unmarshaling is needed to extract the type specific data (accessible under `TypeData`) but stored in JSON under a hash named after the `type` of the source transaction.

type SourceTransactionList

type SourceTransactionList struct {
	APIResource
	ListMeta
	Data []*SourceTransaction `json:"data"`
}

SourceTransactionList is a list object for SourceTransactions.

type SourceTransactionListParams

type SourceTransactionListParams struct {
	ListParams `form:"*"`
	Source     *string `form:"-"` // Included in URL
}

SourceTransactionListParams is the set of parameters that can be used when listing SourceTransactions.

type SourceUsage

type SourceUsage string

SourceUsage represents the possible usages of a source object.

const (
	SourceUsageReusable  SourceUsage = "reusable"
	SourceUsageSingleUse SourceUsage = "single_use"
)

List of values that SourceUsage can take.

type SourceVerifyParams

type SourceVerifyParams struct {
	Params   `form:"*"`
	Customer *string   `form:"-"`       // Included in URL
	Amounts  [2]int64  `form:"amounts"` // Amounts is used when verifying bank accounts
	Values   []*string `form:"values"`  // Values is used when verifying sources
}

SourceVerifyParams are used to verify a customer source For more details see https://stripe.com/docs/guides/ach-beta

type StatusTransitions

type StatusTransitions struct {
	Canceled  int64 `json:"canceled"`
	Fulfilled int64 `json:"fulfilled"`
	Paid      int64 `json:"paid"`
	Returned  int64 `json:"returned"`
}

StatusTransitions are the timestamps at which the order status was updated.

type StatusTransitionsFilterParams

type StatusTransitionsFilterParams struct {
	Canceled       *int64            `form:"canceled"`
	CanceledRange  *RangeQueryParams `form:"canceled"`
	Fulfilled      *int64            `form:"fulfilled"`
	FulfilledRange *RangeQueryParams `form:"fulfilled"`
	Paid           *int64            `form:"paid"`
	PaidRange      *RangeQueryParams `form:"paid"`
	Returned       *int64            `form:"returned"`
	ReturnedRange  *RangeQueryParams `form:"returned"`
}

StatusTransitionsFilterParams are parameters that can used to filter on status_transition when listing orders.

type StreamingAPIResponse added in v72.56.0

type StreamingAPIResponse struct {
	Header         http.Header
	IdempotencyKey string
	Body           io.ReadCloser
	RequestID      string
	Status         string
	StatusCode     int
}

StreamingAPIResponse encapsulates some common features of a response from the Stripe API whose body can be streamed. This is used for "file downloads", and the `Body` property is an io.ReadCloser, so the user can stream it to another location such as a file or network request without buffering the entire body into memory.

type StreamingLastResponseSetter added in v72.56.0

type StreamingLastResponseSetter interface {
	SetLastResponse(response *StreamingAPIResponse)
}

StreamingLastResponseSetter defines a type that contains an HTTP response from a Stripe API endpoint.

type Subscription

type Subscription struct {
	APIResource
	ApplicationFeePercent         float64                                `json:"application_fee_percent"`
	AutomaticTax                  *SubscriptionAutomaticTax              `json:"automatic_tax"`
	BillingCycleAnchor            int64                                  `json:"billing_cycle_anchor"`
	BillingThresholds             *SubscriptionBillingThresholds         `json:"billing_thresholds"`
	CancelAt                      int64                                  `json:"cancel_at"`
	CancelAtPeriodEnd             bool                                   `json:"cancel_at_period_end"`
	CanceledAt                    int64                                  `json:"canceled_at"`
	CollectionMethod              SubscriptionCollectionMethod           `json:"collection_method"`
	Created                       int64                                  `json:"created"`
	CurrentPeriodEnd              int64                                  `json:"current_period_end"`
	CurrentPeriodStart            int64                                  `json:"current_period_start"`
	Customer                      *Customer                              `json:"customer"`
	DaysUntilDue                  int64                                  `json:"days_until_due"`
	DefaultPaymentMethod          *PaymentMethod                         `json:"default_payment_method"`
	DefaultSource                 *PaymentSource                         `json:"default_source"`
	DefaultTaxRates               []*TaxRate                             `json:"default_tax_rates"`
	Discount                      *Discount                              `json:"discount"`
	EndedAt                       int64                                  `json:"ended_at"`
	ID                            string                                 `json:"id"`
	Items                         *SubscriptionItemList                  `json:"items"`
	LatestInvoice                 *Invoice                               `json:"latest_invoice"`
	Livemode                      bool                                   `json:"livemode"`
	Metadata                      map[string]string                      `json:"metadata"`
	NextPendingInvoiceItemInvoice int64                                  `json:"next_pending_invoice_item_invoice"`
	Object                        string                                 `json:"object"`
	OnBehalfOf                    *Account                               `json:"on_behalf_of"`
	PauseCollection               SubscriptionPauseCollection            `json:"pause_collection"`
	PaymentSettings               *SubscriptionPaymentSettings           `json:"payment_settings"`
	PendingInvoiceItemInterval    SubscriptionPendingInvoiceItemInterval `json:"pending_invoice_item_interval"`
	PendingSetupIntent            *SetupIntent                           `json:"pending_setup_intent"`
	PendingUpdate                 *SubscriptionPendingUpdate             `json:"pending_update"`
	Plan                          *Plan                                  `json:"plan"`
	Quantity                      int64                                  `json:"quantity"`
	Schedule                      *SubscriptionSchedule                  `json:"schedule"`
	StartDate                     int64                                  `json:"start_date"`
	Status                        SubscriptionStatus                     `json:"status"`
	TransferData                  *SubscriptionTransferData              `json:"transfer_data"`
	TrialEnd                      int64                                  `json:"trial_end"`
	TrialStart                    int64                                  `json:"trial_start"`
}

Subscription is the resource representing a Stripe subscription. For more details see https://stripe.com/docs/api#subscriptions.

func (*Subscription) UnmarshalJSON

func (s *Subscription) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Subscription. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type SubscriptionAddInvoiceItemParams

type SubscriptionAddInvoiceItemParams struct {
	Price     *string                     `form:"price"`
	PriceData *InvoiceItemPriceDataParams `form:"price_data"`
	Quantity  *int64                      `form:"quantity"`
	TaxRates  []*string                   `form:"tax_rates"`
}

SubscriptionAddInvoiceItemParams is a structure representing the parameters allowed to control the invoice items to add at to a subscription's first invoice.

type SubscriptionAutomaticTax added in v72.48.0

type SubscriptionAutomaticTax struct {
	Enabled bool `json:"enabled"`
}

type SubscriptionAutomaticTaxParams added in v72.48.0

type SubscriptionAutomaticTaxParams struct {
	Enabled *bool `form:"enabled"`
}

Automatic tax settings for this subscription.

type SubscriptionBillingThresholds

type SubscriptionBillingThresholds struct {
	AmountGTE               int64 `json:"amount_gte"`
	ResetBillingCycleAnchor bool  `json:"reset_billing_cycle_anchor"`
}

SubscriptionBillingThresholds is a structure representing the billing thresholds for a subscription.

type SubscriptionBillingThresholdsParams

type SubscriptionBillingThresholdsParams struct {
	AmountGTE               *int64 `form:"amount_gte"`
	ResetBillingCycleAnchor *bool  `form:"reset_billing_cycle_anchor"`
}

SubscriptionBillingThresholdsParams is a structure representing the parameters allowed to control billing thresholds for a subscription.

type SubscriptionCancelParams

type SubscriptionCancelParams struct {
	Params     `form:"*"`
	InvoiceNow *bool `form:"invoice_now"`
	Prorate    *bool `form:"prorate"`
}

SubscriptionCancelParams is the set of parameters that can be used when canceling a subscription. For more details see https://stripe.com/docs/api#cancel_subscription

type SubscriptionCollectionMethod

type SubscriptionCollectionMethod string

SubscriptionCollectionMethod is the type of collection method for this subscription's invoices.

const (
	SubscriptionCollectionMethodChargeAutomatically SubscriptionCollectionMethod = "charge_automatically"
	SubscriptionCollectionMethodSendInvoice         SubscriptionCollectionMethod = "send_invoice"
)

List of values that SubscriptionCollectionMethod can take.

type SubscriptionItem

type SubscriptionItem struct {
	APIResource
	BillingThresholds SubscriptionItemBillingThresholds `json:"billing_thresholds"`
	Created           int64                             `json:"created"`
	Deleted           bool                              `json:"deleted"`
	ID                string                            `json:"id"`
	Metadata          map[string]string                 `json:"metadata"`
	Object            string                            `json:"object"`
	Plan              *Plan                             `json:"plan"`
	Price             *Price                            `json:"price"`
	Quantity          int64                             `json:"quantity"`
	Subscription      string                            `json:"subscription"`
	TaxRates          []*TaxRate                        `json:"tax_rates"`
}

SubscriptionItem is the resource representing a Stripe subscription item. For more details see https://stripe.com/docs/api#subscription_items.

type SubscriptionItemBillingThresholds

type SubscriptionItemBillingThresholds struct {
	UsageGTE int64 `form:"usage_gte"`
}

SubscriptionItemBillingThresholds is a structure representing the billing thresholds for a subscription item.

type SubscriptionItemBillingThresholdsParams

type SubscriptionItemBillingThresholdsParams struct {
	UsageGTE *int64 `form:"usage_gte"`
}

SubscriptionItemBillingThresholdsParams is a structure representing the parameters allowed to control billing thresholds for a subscription item.

type SubscriptionItemList

type SubscriptionItemList struct {
	APIResource
	ListMeta
	Data []*SubscriptionItem `json:"data"`
}

SubscriptionItemList is a list of invoice items as retrieved from a list endpoint.

type SubscriptionItemListParams

type SubscriptionItemListParams struct {
	ListParams   `form:"*"`
	Subscription *string `form:"subscription"`
}

SubscriptionItemListParams is the set of parameters that can be used when listing invoice items. For more details see https://stripe.com/docs/api#list_invoiceitems.

type SubscriptionItemParams

type SubscriptionItemParams struct {
	Params            `form:"*"`
	BillingThresholds *SubscriptionItemBillingThresholdsParams `form:"billing_thresholds"`
	ClearUsage        *bool                                    `form:"clear_usage"`
	OffSession        *bool                                    `form:"off_session"` // Only supported on update
	PaymentBehavior   *string                                  `form:"payment_behavior"`
	Plan              *string                                  `form:"plan"`
	Price             *string                                  `form:"price"`
	PriceData         *SubscriptionItemPriceDataParams         `form:"price_data"`
	ProrationBehavior *string                                  `form:"proration_behavior"`
	ProrationDate     *int64                                   `form:"proration_date"`
	Quantity          *int64                                   `form:"quantity"`
	Subscription      *string                                  `form:"subscription"`
	TaxRates          []*string                                `form:"tax_rates"`

	ID *string `form:"-"` // Deprecated
}

SubscriptionItemParams is the set of parameters that can be used when creating or updating a subscription item. For more details see https://stripe.com/docs/api#create_subscription_item and https://stripe.com/docs/api#update_subscription_item.

type SubscriptionItemPriceDataParams

type SubscriptionItemPriceDataParams struct {
	Currency          *string                                   `form:"currency"`
	Product           *string                                   `form:"product"`
	Recurring         *SubscriptionItemPriceDataRecurringParams `form:"recurring"`
	TaxBehavior       *string                                   `form:"tax_behavior"`
	UnitAmount        *int64                                    `form:"unit_amount"`
	UnitAmountDecimal *float64                                  `form:"unit_amount_decimal,high_precision"`
}

SubscriptionItemPriceDataParams is a structure representing the parameters to create an inline price for a subscription item.

type SubscriptionItemPriceDataRecurringParams

type SubscriptionItemPriceDataRecurringParams struct {
	Interval      *string `form:"interval"`
	IntervalCount *int64  `form:"interval_count"`
}

SubscriptionItemPriceDataRecurringParams is a structure representing the parameters to create an inline recurring price for a subscription item.

type SubscriptionItemsParams

type SubscriptionItemsParams struct {
	Params            `form:"*"`
	BillingThresholds *SubscriptionItemBillingThresholdsParams `form:"billing_thresholds"`
	ClearUsage        *bool                                    `form:"clear_usage"`
	Deleted           *bool                                    `form:"deleted"`
	ID                *string                                  `form:"id"`
	Metadata          map[string]string                        `form:"metadata"`
	Plan              *string                                  `form:"plan"`
	Price             *string                                  `form:"price"`
	PriceData         *SubscriptionItemPriceDataParams         `form:"price_data"`
	Quantity          *int64                                   `form:"quantity"`
	TaxRates          []*string                                `form:"tax_rates"`
}

SubscriptionItemsParams is the set of parameters that can be used when creating or updating a subscription item on a subscription For more details see https://stripe.com/docs/api#create_subscription and https://stripe.com/docs/api#update_subscription.

type SubscriptionList

type SubscriptionList struct {
	APIResource
	ListMeta
	Data []*Subscription `json:"data"`
}

SubscriptionList is a list object for subscriptions.

type SubscriptionListParams

type SubscriptionListParams struct {
	ListParams              `form:"*"`
	CollectionMethod        *string           `form:"collection_method"`
	Created                 int64             `form:"created"`
	CreatedRange            *RangeQueryParams `form:"created"`
	CurrentPeriodEnd        *int64            `form:"current_period_end"`
	CurrentPeriodEndRange   *RangeQueryParams `form:"current_period_end"`
	CurrentPeriodStart      *int64            `form:"current_period_start"`
	CurrentPeriodStartRange *RangeQueryParams `form:"current_period_start"`
	Customer                string            `form:"customer"`
	Plan                    string            `form:"plan"`
	Price                   string            `form:"price"`
	Status                  string            `form:"status"`
}

SubscriptionListParams is the set of parameters that can be used when listing active subscriptions. For more details see https://stripe.com/docs/api#list_subscriptions.

type SubscriptionParams

type SubscriptionParams struct {
	Params                      `form:"*"`
	AddInvoiceItems             []*SubscriptionAddInvoiceItemParams           `form:"add_invoice_items"`
	ApplicationFeePercent       *float64                                      `form:"application_fee_percent"`
	AutomaticTax                *SubscriptionAutomaticTaxParams               `form:"automatic_tax"`
	BackdateStartDate           *int64                                        `form:"backdate_start_date"`
	BillingCycleAnchor          *int64                                        `form:"billing_cycle_anchor"`
	BillingCycleAnchorNow       *bool                                         `form:"-"` // See custom AppendTo
	BillingCycleAnchorUnchanged *bool                                         `form:"-"` // See custom AppendTo
	BillingThresholds           *SubscriptionBillingThresholdsParams          `form:"billing_thresholds"`
	CancelAt                    *int64                                        `form:"cancel_at"`
	CancelAtPeriodEnd           *bool                                         `form:"cancel_at_period_end"`
	Card                        *CardParams                                   `form:"card"`
	CollectionMethod            *string                                       `form:"collection_method"`
	Coupon                      *string                                       `form:"coupon"`
	Customer                    *string                                       `form:"customer"`
	DaysUntilDue                *int64                                        `form:"days_until_due"`
	DefaultPaymentMethod        *string                                       `form:"default_payment_method"`
	DefaultSource               *string                                       `form:"default_source"`
	DefaultTaxRates             []*string                                     `form:"default_tax_rates"`
	Items                       []*SubscriptionItemsParams                    `form:"items"`
	OffSession                  *bool                                         `form:"off_session"`
	OnBehalfOf                  *string                                       `form:"on_behalf_of"`
	PauseCollection             *SubscriptionPauseCollectionParams            `form:"pause_collection"`
	PaymentBehavior             *string                                       `form:"payment_behavior"`
	PaymentSettings             *SubscriptionPaymentSettingsParams            `form:"payment_settings"`
	PendingInvoiceItemInterval  *SubscriptionPendingInvoiceItemIntervalParams `form:"pending_invoice_item_interval"`
	Plan                        *string                                       `form:"plan"`
	PromotionCode               *string                                       `form:"promotion_code"`
	ProrationBehavior           *string                                       `form:"proration_behavior"`
	ProrationDate               *int64                                        `form:"proration_date"`
	Quantity                    *int64                                        `form:"quantity"`
	TransferData                *SubscriptionTransferDataParams               `form:"transfer_data"`
	TrialEnd                    *int64                                        `form:"trial_end"`
	TrialEndNow                 *bool                                         `form:"-"` // See custom AppendTo
	TrialFromPlan               *bool                                         `form:"trial_from_plan"`
	TrialPeriodDays             *int64                                        `form:"trial_period_days"`
}

SubscriptionParams is the set of parameters that can be used when creating or updating a subscription. For more details see https://stripe.com/docs/api#create_subscription and https://stripe.com/docs/api#update_subscription.

func (*SubscriptionParams) AppendTo

func (s *SubscriptionParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for SubscriptionParams.

type SubscriptionPauseCollection

type SubscriptionPauseCollection struct {
	Behavior  SubscriptionPauseCollectionBehavior `json:"behavior"`
	ResumesAt int64                               `json:"resumes_at"`
}

SubscriptionPauseCollection if specified, payment collection for this subscription will be paused.

type SubscriptionPauseCollectionBehavior

type SubscriptionPauseCollectionBehavior string

SubscriptionPauseCollectionBehavior is the payment collection behavior a paused subscription.

const (
	SubscriptionPauseCollectionBehaviorKeepAsDraft       SubscriptionPauseCollectionBehavior = "keep_as_draft"
	SubscriptionPauseCollectionBehaviorMarkUncollectible SubscriptionPauseCollectionBehavior = "mark_uncollectible"
	SubscriptionPauseCollectionBehaviorVoid              SubscriptionPauseCollectionBehavior = "void"
)

List of values that SubscriptionPauseCollectionBehavior can take.

type SubscriptionPauseCollectionParams

type SubscriptionPauseCollectionParams struct {
	Behavior  *string `form:"behavior"`
	ResumesAt *int64  `form:"resumes_at"`
}

SubscriptionPauseCollectionParams is the set of parameters allowed for the pause_collection hash.

type SubscriptionPaymentBehavior

type SubscriptionPaymentBehavior string

SubscriptionPaymentBehavior lets you control the behavior of subscription creation in case of a failed payment.

const (
	SubscriptionPaymentBehaviorAllowIncomplete     SubscriptionPaymentBehavior = "allow_incomplete"
	SubscriptionPaymentBehaviorErrorIfIncomplete   SubscriptionPaymentBehavior = "error_if_incomplete"
	SubscriptionPaymentBehaviorPendingIfIncomplete SubscriptionPaymentBehavior = "pending_if_incomplete"
)

List of values that SubscriptionPaymentBehavior can take.

type SubscriptionPaymentSettings added in v72.58.0

type SubscriptionPaymentSettings struct {
	PaymentMethodOptions *SubscriptionPaymentSettingsPaymentMethodOptions `json:"payment_method_options"`
	PaymentMethodTypes   []SubscriptionPaymentSettingsPaymentMethodType   `json:"payment_method_types"`
}

Payment settings passed on to invoices created by the subscription.

type SubscriptionPaymentSettingsParams added in v72.58.0

type SubscriptionPaymentSettingsParams struct {
	PaymentMethodOptions *SubscriptionPaymentSettingsPaymentMethodOptionsParams `form:"payment_method_options"`
	PaymentMethodTypes   []*string                                              `form:"payment_method_types"`
}

Payment settings to pass to invoices created by the subscription.

type SubscriptionPaymentSettingsPaymentMethodOptions added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodOptions struct {
	ACSSDebit  *SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebit  `json:"acss_debit"`
	Bancontact *SubscriptionPaymentSettingsPaymentMethodOptionsBancontact `json:"bancontact"`
	Card       *SubscriptionPaymentSettingsPaymentMethodOptionsCard       `json:"card"`
}

Payment-method-specific configuration to provide to invoices created by the subscription.

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebit added in v72.65.0

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebit struct {
	MandateOptions     *SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptions    `json:"mandate_options"`
	VerificationMethod SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod `json:"verification_method"`
}

This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to invoices created by the subscription.

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptions added in v72.65.0

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptions struct {
	TransactionType SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType `json:"transaction_type"`
}

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsParams added in v72.65.0

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsParams struct {
	TransactionType *string `form:"transaction_type"`
}

Additional fields for Mandate creation

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType added in v72.65.0

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType string

Transaction type of the mandate.

const (
	SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypeBusiness SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "business"
	SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionTypePersonal SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType = "personal"
)

List of values that SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsTransactionType can take

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitParams added in v72.65.0

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitParams struct {
	MandateOptions     *SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitMandateOptionsParams `form:"mandate_options"`
	VerificationMethod *string                                                                       `form:"verification_method"`
}

This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice's PaymentIntent.

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod added in v72.65.0

type SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod string

Bank account verification method.

const (
	SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethodAutomatic     SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod = "automatic"
	SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethodInstant       SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod = "instant"
	SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethodMicrodeposits SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod = "microdeposits"
)

List of values that SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitVerificationMethod can take

type SubscriptionPaymentSettingsPaymentMethodOptionsBancontact added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodOptionsBancontact struct {
	PreferredLanguage string `json:"preferred_language"`
}

This sub-hash contains details about the Bancontact payment method options to pass to invoices created by the subscription.

type SubscriptionPaymentSettingsPaymentMethodOptionsBancontactParams added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodOptionsBancontactParams struct {
	PreferredLanguage *string `form:"preferred_language"`
}

This sub-hash contains details about the Bancontact payment method options to pass to the invoice's PaymentIntent.

type SubscriptionPaymentSettingsPaymentMethodOptionsCard added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodOptionsCard struct {
	MandateOptions      *SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptions     `json:"mandate_options"`
	RequestThreeDSecure SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure `json:"request_three_d_secure"`
}

This sub-hash contains details about the Card payment method options to pass to invoices created by the subscription.

type SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptions added in v72.82.0

type SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptions struct {
	Amount      int64                                                                       `json:"amount"`
	AmountType  SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountType `json:"amount_type"`
	Description string                                                                      `json:"description"`
}

type SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountType added in v72.82.0

type SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountType string

One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.

const (
	SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountTypeFixed   SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountType = "fixed"
	SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountTypeMaximum SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountType = "maximum"
)

List of values that SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsAmountType can take

type SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsParams added in v72.82.0

type SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsParams struct {
	Amount      *int64  `form:"amount"`
	AmountType  *string `form:"amount_type"`
	Description *string `form:"description"`
}

Configuration options for setting up an eMandate for cards issued in India.

type SubscriptionPaymentSettingsPaymentMethodOptionsCardParams added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodOptionsCardParams struct {
	MandateOptions      *SubscriptionPaymentSettingsPaymentMethodOptionsCardMandateOptionsParams `form:"mandate_options"`
	RequestThreeDSecure *string                                                                  `form:"request_three_d_secure"`
}

This sub-hash contains details about the Card payment method options to pass to the invoice's PaymentIntent.

type SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure string

We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.

const (
	SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecureAny       SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure = "any"
	SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecureAutomatic SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure = "automatic"
)

List of values that SubscriptionPaymentSettingsPaymentMethodOptionsCardRequestThreeDSecure can take

type SubscriptionPaymentSettingsPaymentMethodOptionsParams added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodOptionsParams struct {
	ACSSDebit  *SubscriptionPaymentSettingsPaymentMethodOptionsACSSDebitParams  `form:"acss_debit"`
	Bancontact *SubscriptionPaymentSettingsPaymentMethodOptionsBancontactParams `form:"bancontact"`
	Card       *SubscriptionPaymentSettingsPaymentMethodOptionsCardParams       `form:"card"`
}

Payment-method-specific configuration to provide to invoices created by the subscription.

type SubscriptionPaymentSettingsPaymentMethodType added in v72.58.0

type SubscriptionPaymentSettingsPaymentMethodType string

The list of payment method types to provide to every invoice created by the subscription. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice's default payment method, the subscription's default payment method, the customer's default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice).

const (
	SubscriptionPaymentSettingsPaymentMethodTypeAchCreditTransfer  SubscriptionPaymentSettingsPaymentMethodType = "ach_credit_transfer"
	SubscriptionPaymentSettingsPaymentMethodTypeAchDebit           SubscriptionPaymentSettingsPaymentMethodType = "ach_debit"
	SubscriptionPaymentSettingsPaymentMethodTypeACSSDebit          SubscriptionPaymentSettingsPaymentMethodType = "acss_debit"
	SubscriptionPaymentSettingsPaymentMethodTypeAUBECSDebit        SubscriptionPaymentSettingsPaymentMethodType = "au_becs_debit"
	SubscriptionPaymentSettingsPaymentMethodTypeBACSDebit          SubscriptionPaymentSettingsPaymentMethodType = "bacs_debit"
	SubscriptionPaymentSettingsPaymentMethodTypeBancontact         SubscriptionPaymentSettingsPaymentMethodType = "bancontact"
	SubscriptionPaymentSettingsPaymentMethodTypeBoleto             SubscriptionPaymentSettingsPaymentMethodType = "boleto"
	SubscriptionPaymentSettingsPaymentMethodTypeCard               SubscriptionPaymentSettingsPaymentMethodType = "card"
	SubscriptionPaymentSettingsPaymentMethodTypeFPX                SubscriptionPaymentSettingsPaymentMethodType = "fpx"
	SubscriptionPaymentSettingsPaymentMethodTypeGiropay            SubscriptionPaymentSettingsPaymentMethodType = "giropay"
	SubscriptionPaymentSettingsPaymentMethodTypeIdeal              SubscriptionPaymentSettingsPaymentMethodType = "ideal"
	SubscriptionPaymentSettingsPaymentMethodTypeSepaCreditTransfer SubscriptionPaymentSettingsPaymentMethodType = "sepa_credit_transfer"
	SubscriptionPaymentSettingsPaymentMethodTypeSepaDebit          SubscriptionPaymentSettingsPaymentMethodType = "sepa_debit"
	SubscriptionPaymentSettingsPaymentMethodTypeSofort             SubscriptionPaymentSettingsPaymentMethodType = "sofort"
	SubscriptionPaymentSettingsPaymentMethodTypeWechatPay          SubscriptionPaymentSettingsPaymentMethodType = "wechat_pay"
)

List of values that SubscriptionPaymentSettingsPaymentMethodType can take

type SubscriptionPendingInvoiceItemInterval

type SubscriptionPendingInvoiceItemInterval struct {
	Interval      SubscriptionPendingInvoiceItemIntervalInterval `json:"interval"`
	IntervalCount int64                                          `json:"interval_count"`
}

SubscriptionPendingInvoiceItemInterval represents the interval at which to invoice pending invoice items.

type SubscriptionPendingInvoiceItemIntervalInterval

type SubscriptionPendingInvoiceItemIntervalInterval string

SubscriptionPendingInvoiceItemIntervalInterval controls the interval at which pending invoice items should be invoiced.

const (
	SubscriptionPendingInvoiceItemIntervalIntervalDay   SubscriptionPendingInvoiceItemIntervalInterval = "day"
	SubscriptionPendingInvoiceItemIntervalIntervalMonth SubscriptionPendingInvoiceItemIntervalInterval = "month"
	SubscriptionPendingInvoiceItemIntervalIntervalWeek  SubscriptionPendingInvoiceItemIntervalInterval = "week"
	SubscriptionPendingInvoiceItemIntervalIntervalYear  SubscriptionPendingInvoiceItemIntervalInterval = "year"
)

List of values that SubscriptionPendingInvoiceItemIntervalInterval can take.

type SubscriptionPendingInvoiceItemIntervalParams

type SubscriptionPendingInvoiceItemIntervalParams struct {
	Interval      *string `form:"interval"`
	IntervalCount *int64  `form:"interval_count"`
}

SubscriptionPendingInvoiceItemIntervalParams is the set of parameters allowed for the transfer_data hash.

type SubscriptionPendingUpdate

type SubscriptionPendingUpdate struct {
	BillingCycleAnchor int64               `json:"billing_cycle_anchor"`
	ExpiresAt          int64               `json:"expires_at"`
	SubscriptionItems  []*SubscriptionItem `json:"subscription_items"`
	TrialEnd           int64               `json:"trial_end"`
	TrialFromPlan      bool                `json:"trial_from_plan"`
}

SubscriptionPendingUpdate represents deferred changes that will be applied when latest invoice is paid.

type SubscriptionProrationBehavior

type SubscriptionProrationBehavior string

SubscriptionProrationBehavior determines how to handle prorations when billing cycles change.

const (
	SubscriptionProrationBehaviorAlwaysInvoice    SubscriptionProrationBehavior = "always_invoice"
	SubscriptionProrationBehaviorCreateProrations SubscriptionProrationBehavior = "create_prorations"
	SubscriptionProrationBehaviorNone             SubscriptionProrationBehavior = "none"
)

List of values that SubscriptionProrationBehavior can take.

type SubscriptionSchedule

type SubscriptionSchedule struct {
	APIResource
	CanceledAt           int64                                `json:"canceled_at"`
	CompletedAt          int64                                `json:"completed_at"`
	Created              int64                                `json:"created"`
	CurrentPhase         *SubscriptionScheduleCurrentPhase    `json:"current_phase"`
	Customer             *Customer                            `json:"customer"`
	DefaultSettings      *SubscriptionScheduleDefaultSettings `json:"default_settings"`
	EndBehavior          SubscriptionScheduleEndBehavior      `json:"end_behavior"`
	ID                   string                               `json:"id"`
	Livemode             bool                                 `json:"livemode"`
	Metadata             map[string]string                    `json:"metadata"`
	Object               string                               `json:"object"`
	Phases               []*SubscriptionSchedulePhase         `json:"phases"`
	ReleasedAt           int64                                `json:"released_at"`
	ReleasedSubscription *Subscription                        `json:"released_subscription"`
	Status               SubscriptionScheduleStatus           `json:"status"`
	Subscription         *Subscription                        `json:"subscription"`
}

SubscriptionSchedule is the resource representing a Stripe subscription schedule.

func (*SubscriptionSchedule) UnmarshalJSON

func (s *SubscriptionSchedule) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a SubscriptionSchedule. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type SubscriptionScheduleCancelParams

type SubscriptionScheduleCancelParams struct {
	Params     `form:"*"`
	InvoiceNow *bool `form:"invoice_now"`
	Prorate    *bool `form:"prorate"`
}

SubscriptionScheduleCancelParams is the set of parameters that can be used when canceling a subscription schedule.

type SubscriptionScheduleCurrentPhase

type SubscriptionScheduleCurrentPhase struct {
	EndDate   int64 `json:"end_date"`
	StartDate int64 `json:"start_date"`
}

SubscriptionScheduleCurrentPhase is a structure the current phase's period.

type SubscriptionScheduleDefaultSettings

type SubscriptionScheduleDefaultSettings struct {
	ApplicationFeePercent float64                                     `json:"application_fee_percent,string"`
	AutomaticTax          *SubscriptionAutomaticTax                   `json:"automatic_tax"`
	BillingCycleAnchor    SubscriptionSchedulePhaseBillingCycleAnchor `json:"billing_cycle_anchor"`
	BillingThresholds     *SubscriptionBillingThresholds              `json:"billing_thresholds"`
	CollectionMethod      SubscriptionCollectionMethod                `json:"collection_method"`
	DefaultPaymentMethod  *PaymentMethod                              `json:"default_payment_method"`
	InvoiceSettings       *SubscriptionScheduleInvoiceSettings        `json:"invoice_settings"`
	TransferData          *SubscriptionTransferData                   `json:"transfer_data"`
}

SubscriptionScheduleDefaultSettings is a structure representing the subscription schedule’s default settings.

type SubscriptionScheduleDefaultSettingsParams

type SubscriptionScheduleDefaultSettingsParams struct {
	Params                `form:"*"`
	ApplicationFeePercent *float64                                   `form:"application_fee_percent,high_precision"`
	AutomaticTax          *SubscriptionAutomaticTaxParams            `form:"automatic_tax"`
	BillingCycleAnchor    *string                                    `form:"billing_cycle_anchor"`
	BillingThresholds     *SubscriptionBillingThresholdsParams       `form:"billing_thresholds"`
	CollectionMethod      *string                                    `form:"collection_method"`
	DefaultPaymentMethod  *string                                    `form:"default_payment_method"`
	InvoiceSettings       *SubscriptionScheduleInvoiceSettingsParams `form:"invoice_settings"`
	TransferData          *SubscriptionTransferDataParams            `form:"transfer_data"`
}

SubscriptionScheduleDefaultSettingsParams is the set of parameters representing the subscription schedule’s default settings.

type SubscriptionScheduleEndBehavior

type SubscriptionScheduleEndBehavior string

SubscriptionScheduleEndBehavior describe what happens to a schedule when it ends.

const (
	SubscriptionScheduleEndBehaviorCancel  SubscriptionScheduleEndBehavior = "cancel"
	SubscriptionScheduleEndBehaviorNone    SubscriptionScheduleEndBehavior = "none"
	SubscriptionScheduleEndBehaviorRelease SubscriptionScheduleEndBehavior = "release"
	SubscriptionScheduleEndBehaviorRenew   SubscriptionScheduleEndBehavior = "renew"
)

List of values that SubscriptionScheduleEndBehavior can take.

type SubscriptionScheduleInvoiceSettings

type SubscriptionScheduleInvoiceSettings struct {
	DaysUntilDue int64 `json:"days_until_due"`
}

SubscriptionScheduleInvoiceSettings is a structure representing the settings applied to invoices associated with a subscription schedule.

type SubscriptionScheduleInvoiceSettingsParams

type SubscriptionScheduleInvoiceSettingsParams struct {
	DaysUntilDue *int64 `form:"days_until_due"`
}

SubscriptionScheduleInvoiceSettingsParams is a structure representing the parameters allowed to control invoice settings on invoices associated with a subscription schedule.

type SubscriptionScheduleList

type SubscriptionScheduleList struct {
	APIResource
	ListMeta
	Data []*SubscriptionSchedule `json:"data"`
}

SubscriptionScheduleList is a list object for subscription schedules.

type SubscriptionScheduleListParams

type SubscriptionScheduleListParams struct {
	ListParams       `form:"*"`
	CanceledAt       int64             `form:"canceled_at"`
	CanceledAtRange  *RangeQueryParams `form:"canceled_at"`
	CompletedAt      int64             `form:"completed_at"`
	CompletedAtRange *RangeQueryParams `form:"completed_at"`
	Created          int64             `form:"created"`
	CreatedRange     *RangeQueryParams `form:"created"`
	Customer         string            `form:"customer"`
	ReleasedAt       int64             `form:"released_at"`
	ReleasedAtRange  *RangeQueryParams `form:"released_at"`
	Scheduled        *bool             `form:"scheduled"`
}

SubscriptionScheduleListParams is the set of parameters that can be used when listing subscription schedules.

type SubscriptionScheduleParams

type SubscriptionScheduleParams struct {
	Params            `form:"*"`
	Customer          *string                                    `form:"customer"`
	DefaultSettings   *SubscriptionScheduleDefaultSettingsParams `form:"default_settings"`
	EndBehavior       *string                                    `form:"end_behavior"`
	FromSubscription  *string                                    `form:"from_subscription"`
	Phases            []*SubscriptionSchedulePhaseParams         `form:"phases"`
	ProrationBehavior *string                                    `form:"proration_behavior"`
	StartDate         *int64                                     `form:"start_date"`
	StartDateNow      *bool                                      `form:"-"` // See custom AppendTo
}

SubscriptionScheduleParams is the set of parameters that can be used when creating or updating a subscription schedule.

func (*SubscriptionScheduleParams) AppendTo

func (s *SubscriptionScheduleParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for SubscriptionScheduleParams.

type SubscriptionSchedulePhase

type SubscriptionSchedulePhase struct {
	AddInvoiceItems       []*SubscriptionSchedulePhaseAddInvoiceItem  `json:"add_invoice_items"`
	ApplicationFeePercent float64                                     `json:"application_fee_percent"`
	AutomaticTax          *SubscriptionAutomaticTax                   `json:"automatic_tax"`
	BillingCycleAnchor    SubscriptionSchedulePhaseBillingCycleAnchor `json:"billing_cycle_anchor"`
	BillingThresholds     *SubscriptionBillingThresholds              `json:"billing_thresholds"`
	CollectionMethod      SubscriptionCollectionMethod                `json:"collection_method"`
	Coupon                *Coupon                                     `json:"coupon"`
	DefaultPaymentMethod  *PaymentMethod                              `json:"default_payment_method"`
	DefaultTaxRates       []*TaxRate                                  `json:"default_tax_rates"`
	EndDate               int64                                       `json:"end_date"`
	InvoiceSettings       *SubscriptionScheduleInvoiceSettings        `json:"invoice_settings"`
	Items                 []*SubscriptionSchedulePhaseItem            `json:"items"`
	ProrationBehavior     SubscriptionSchedulePhaseProrationBehavior  `json:"proration_behavior"`
	StartDate             int64                                       `json:"start_date"`
	TransferData          *SubscriptionTransferData                   `json:"transfer_data"`
	TrialEnd              int64                                       `json:"trial_end"`
}

SubscriptionSchedulePhase is a structure a phase of a subscription schedule.

type SubscriptionSchedulePhaseAddInvoiceItem

type SubscriptionSchedulePhaseAddInvoiceItem struct {
	Price    *Price     `json:"price"`
	Quantity int64      `json:"quantity"`
	TaxRates []*TaxRate `json:"tax_rates"`
}

SubscriptionSchedulePhaseAddInvoiceItem represents the invoice items to add when the phase starts.

type SubscriptionSchedulePhaseAddInvoiceItemParams

type SubscriptionSchedulePhaseAddInvoiceItemParams struct {
	Price     *string                     `form:"price"`
	PriceData *InvoiceItemPriceDataParams `form:"price_data"`
	Quantity  *int64                      `form:"quantity"`
	TaxRates  []*string                   `form:"tax_rates"`
}

SubscriptionSchedulePhaseAddInvoiceItemParams is a structure representing the parameters allowed to control the invoice items to add at the start of a phase.

type SubscriptionSchedulePhaseAddInvoiceItemPriceDataParams

type SubscriptionSchedulePhaseAddInvoiceItemPriceDataParams struct {
	Currency          *string                                                          `form:"currency"`
	Product           *string                                                          `form:"product"`
	Recurring         *SubscriptionSchedulePhaseAddInvoiceItemPriceDataRecurringParams `form:"recurring"`
	TaxBehavior       *string                                                          `form:"tax_behavior"`
	UnitAmount        *int64                                                           `form:"unit_amount"`
	UnitAmountDecimal *float64                                                         `form:"unit_amount_decimal,high_precision"`
}

SubscriptionSchedulePhaseAddInvoiceItemPriceDataParams is a structure representing the parameters to create an inline price for a given invoice item.

type SubscriptionSchedulePhaseAddInvoiceItemPriceDataRecurringParams

type SubscriptionSchedulePhaseAddInvoiceItemPriceDataRecurringParams struct {
	AggregateUsage  *string `form:"aggregate_usage"`
	Interval        *string `form:"interval"`
	IntervalCount   *int64  `form:"interval_count"`
	TrialPeriodDays *int64  `form:"trial_period_days"`
	UsageType       *string `form:"usage_type"`
}

SubscriptionSchedulePhaseAddInvoiceItemPriceDataRecurringParams is a structure representing the parameters to create an inline recurring price for a given invoice item.

type SubscriptionSchedulePhaseAutomaticTaxParams added in v72.48.0

type SubscriptionSchedulePhaseAutomaticTaxParams struct {
	Enabled *bool `form:"enabled"`
}

Automatic tax settings for this phase.

type SubscriptionSchedulePhaseBillingCycleAnchor

type SubscriptionSchedulePhaseBillingCycleAnchor string

SubscriptionSchedulePhaseBillingCycleAnchor is the list of allowed values for the schedule's billing_cycle_anchor.

const (
	SubscriptionSchedulePhaseBillingCycleAnchorAutomatic  SubscriptionSchedulePhaseBillingCycleAnchor = "automatic"
	SubscriptionSchedulePhaseBillingCycleAnchorPhaseStart SubscriptionSchedulePhaseBillingCycleAnchor = "phase_start"
)

List of values for SubscriptionSchedulePhaseBillingCycleAnchor

type SubscriptionSchedulePhaseItem

type SubscriptionSchedulePhaseItem struct {
	BillingThresholds *SubscriptionItemBillingThresholds `json:"billing_thresholds"`
	Plan              *Plan                              `json:"plan"`
	Price             *Price                             `json:"price"`
	Quantity          int64                              `json:"quantity"`
	TaxRates          []*TaxRate                         `json:"tax_rates"`
}

SubscriptionSchedulePhaseItem represents plan details for a given phase

type SubscriptionSchedulePhaseItemParams

type SubscriptionSchedulePhaseItemParams struct {
	BillingThresholds *SubscriptionItemBillingThresholdsParams `form:"billing_thresholds"`
	Plan              *string                                  `form:"plan"`
	Price             *string                                  `form:"price"`
	PriceData         *SubscriptionItemPriceDataParams         `form:"price_data"`
	Quantity          *int64                                   `form:"quantity"`
	TaxRates          []*string                                `form:"tax_rates"`
}

SubscriptionSchedulePhaseItemParams is a structure representing the parameters allowed to control a specic plan on a phase on a subscription schedule.

type SubscriptionSchedulePhaseParams

type SubscriptionSchedulePhaseParams struct {
	AddInvoiceItems       []*SubscriptionSchedulePhaseAddInvoiceItemParams `form:"add_invoice_items"`
	ApplicationFeePercent *float64                                         `form:"application_fee_percent"`
	AutomaticTax          *SubscriptionSchedulePhaseAutomaticTaxParams     `form:"automatic_tax"`
	BillingCycleAnchor    *string                                          `form:"billing_cycle_anchor"`
	BillingThresholds     *SubscriptionBillingThresholdsParams             `form:"billing_thresholds"`
	CollectionMethod      *string                                          `form:"collection_method"`
	Coupon                *string                                          `form:"coupon"`
	DefaultPaymentMethod  *string                                          `form:"default_payment_method"`
	DefaultTaxRates       []*string                                        `form:"default_tax_rates"`
	EndDate               *int64                                           `form:"end_date"`
	EndDateNow            *bool                                            `form:"-"` // See custom AppendTo
	InvoiceSettings       *SubscriptionScheduleInvoiceSettingsParams       `form:"invoice_settings"`
	Items                 []*SubscriptionSchedulePhaseItemParams           `form:"items"`
	Iterations            *int64                                           `form:"iterations"`
	ProrationBehavior     *string                                          `form:"proration_behavior"`
	StartDate             *int64                                           `form:"start_date"`
	StartDateNow          *bool                                            `form:"-"` // See custom AppendTo
	TransferData          *SubscriptionTransferDataParams                  `form:"transfer_data"`
	Trial                 *bool                                            `form:"trial"`
	TrialEnd              *int64                                           `form:"trial_end"`
	TrialEndNow           *bool                                            `form:"-"` // See custom AppendTo
}

SubscriptionSchedulePhaseParams is a structure representing the parameters allowed to control a phase on a subscription schedule.

func (*SubscriptionSchedulePhaseParams) AppendTo added in v72.78.0

func (s *SubscriptionSchedulePhaseParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for SubscriptionSchedulePhaseParams.

type SubscriptionSchedulePhaseProrationBehavior added in v72.78.0

type SubscriptionSchedulePhaseProrationBehavior string

If the subscription schedule will prorate when transitioning to this phase. Possible values are `create_prorations` and `none`.

const (
	SubscriptionSchedulePhaseProrationBehaviorAlwaysInvoice    SubscriptionSchedulePhaseProrationBehavior = "always_invoice"
	SubscriptionSchedulePhaseProrationBehaviorCreateProrations SubscriptionSchedulePhaseProrationBehavior = "create_prorations"
	SubscriptionSchedulePhaseProrationBehaviorNone             SubscriptionSchedulePhaseProrationBehavior = "none"
)

List of values that SubscriptionSchedulePhaseProrationBehavior can take

type SubscriptionScheduleReleaseParams

type SubscriptionScheduleReleaseParams struct {
	Params             `form:"*"`
	PreserveCancelDate *bool `form:"preserve_cancel_date"`
}

SubscriptionScheduleReleaseParams is the set of parameters that can be used when releasing a subscription schedule.

type SubscriptionScheduleStatus

type SubscriptionScheduleStatus string

SubscriptionScheduleStatus is the list of allowed values for the schedule's status.

const (
	SubscriptionScheduleStatusActive     SubscriptionScheduleStatus = "active"
	SubscriptionScheduleStatusCanceled   SubscriptionScheduleStatus = "canceled"
	SubscriptionScheduleStatusCompleted  SubscriptionScheduleStatus = "completed"
	SubscriptionScheduleStatusNotStarted SubscriptionScheduleStatus = "not_started"
	SubscriptionScheduleStatusReleased   SubscriptionScheduleStatus = "released"
)

List of values that SubscriptionScheduleStatus can take.

type SubscriptionStatus

type SubscriptionStatus string

SubscriptionStatus is the list of allowed values for the subscription's status.

const (
	SubscriptionStatusActive            SubscriptionStatus = "active"
	SubscriptionStatusAll               SubscriptionStatus = "all"
	SubscriptionStatusCanceled          SubscriptionStatus = "canceled"
	SubscriptionStatusIncomplete        SubscriptionStatus = "incomplete"
	SubscriptionStatusIncompleteExpired SubscriptionStatus = "incomplete_expired"
	SubscriptionStatusPastDue           SubscriptionStatus = "past_due"
	SubscriptionStatusTrialing          SubscriptionStatus = "trialing"
	SubscriptionStatusUnpaid            SubscriptionStatus = "unpaid"
)

List of values that SubscriptionStatus can take.

type SubscriptionTransferData

type SubscriptionTransferData struct {
	AmountPercent float64  `json:"amount_percent"`
	Destination   *Account `json:"destination"`
}

SubscriptionTransferData represents the information for the transfer_data associated with a subscription.

type SubscriptionTransferDataParams

type SubscriptionTransferDataParams struct {
	AmountPercent *float64 `form:"amount_percent"`
	Destination   *string  `form:"destination"`
}

SubscriptionTransferDataParams is the set of parameters allowed for the transfer_data hash.

type SupportedBackend

type SupportedBackend string

SupportedBackend is an enumeration of supported Stripe endpoints. Currently supported values are "api" and "uploads".

type TaxCode added in v72.48.0

type TaxCode struct {
	APIResource
	Description string `json:"description"`
	ID          string `json:"id"`
	Name        string `json:"name"`
	Object      string `json:"object"`
}

[Tax codes](https://stripe.com/docs/tax/tax-codes) classify goods and services for tax purposes.

func (*TaxCode) UnmarshalJSON added in v72.48.0

func (t *TaxCode) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a TaxCode. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type TaxCodeList added in v72.48.0

type TaxCodeList struct {
	APIResource
	ListMeta
	Data []*TaxCode `json:"data"`
}

TaxCodeList is a list of TaxCodes as retrieved from a list endpoint.

type TaxCodeListParams added in v72.48.0

type TaxCodeListParams struct {
	ListParams `form:"*"`
}

A list of [all tax codes available](https://stripe.com/docs/tax/tax-codes) to add to Products in order to allow specific tax calculations.

type TaxCodeParams added in v72.48.0

type TaxCodeParams struct {
	Params `form:"*"`
}

Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information.

type TaxID

type TaxID struct {
	APIResource
	Country      string             `json:"country"`
	Created      int64              `json:"created"`
	Customer     *Customer          `json:"customer"`
	Deleted      bool               `json:"deleted"`
	ID           string             `json:"id"`
	Livemode     bool               `json:"livemode"`
	Object       string             `json:"object"`
	Type         TaxIDType          `json:"type"`
	Value        string             `json:"value"`
	Verification *TaxIDVerification `json:"verification"`
}

TaxID is the resource representing a customer's tax id. For more details see https://stripe.com/docs/api/customers/tax_id_object

func (*TaxID) UnmarshalJSON

func (t *TaxID) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a TaxID. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type TaxIDList

type TaxIDList struct {
	APIResource
	ListMeta
	Data []*TaxID `json:"data"`
}

TaxIDList is a list of tax ids as retrieved from a list endpoint.

type TaxIDListParams

type TaxIDListParams struct {
	ListParams `form:"*"`
	Customer   *string `form:"-"` // Included in URL
}

TaxIDListParams is the set of parameters that can be used when listing tax ids. For more detail see https://stripe.com/docs/api/customers/tax_ids

type TaxIDParams

type TaxIDParams struct {
	Params   `form:"*"`
	Customer *string `form:"-"` // Included in URL
	Type     *string `form:"type"`
	Value    *string `form:"value"`
}

TaxIDParams is the set of parameters that can be used when creating a tax id. For more details see https://stripe.com/docs/api/customers/create_tax_id

type TaxIDType

type TaxIDType string

TaxIDType is the list of allowed values for the tax id's type..

const (
	TaxIDTypeAETRN    TaxIDType = "ae_trn"
	TaxIDTypeAUABN    TaxIDType = "au_abn"
	TaxIDTypeAUARN    TaxIDType = "au_arn"
	TaxIDTypeBRCNPJ   TaxIDType = "br_cnpj"
	TaxIDTypeBRCPF    TaxIDType = "br_cpf"
	TaxIDTypeCABN     TaxIDType = "ca_bn"
	TaxIDTypeCAGSTHST TaxIDType = "ca_gst_hst"
	TaxIDTypeCAPSTBC  TaxIDType = "ca_pst_bc"
	TaxIDTypeCAPSTMB  TaxIDType = "ca_pst_mb"
	TaxIDTypeCAPSTSK  TaxIDType = "ca_pst_sk"
	TaxIDTypeCAQST    TaxIDType = "ca_qst"
	TaxIDTypeCHVAT    TaxIDType = "ch_vat"
	TaxIDTypeCLTIN    TaxIDType = "cl_tin"
	TaxIDTypeESCIF    TaxIDType = "es_cif"
	TaxIDTypeEUVAT    TaxIDType = "eu_vat"
	TaxIDTypeGBVAT    TaxIDType = "gb_vat"
	TaxIDTypeGEVAT    TaxIDType = "ge_vat"
	TaxIDTypeHKBR     TaxIDType = "hk_br"
	TaxIDTypeIDNPWP   TaxIDType = "id_npwp"
	TaxIDTypeILVAT    TaxIDType = "il_vat"
	TaxIDTypeINGST    TaxIDType = "in_gst"
	TaxIDTypeJPCN     TaxIDType = "jp_cn"
	TaxIDTypeJPRN     TaxIDType = "jp_rn"
	TaxIDTypeKRBRN    TaxIDType = "kr_brn"
	TaxIDTypeLIUID    TaxIDType = "li_uid"
	TaxIDTypeMXRFC    TaxIDType = "mx_rfc"
	TaxIDTypeMYFRP    TaxIDType = "my_frp"
	TaxIDTypeMYITN    TaxIDType = "my_itn"
	TaxIDTypeMYSST    TaxIDType = "my_sst"
	TaxIDTypeNOVAT    TaxIDType = "no_vat"
	TaxIDTypeNZGST    TaxIDType = "nz_gst"
	TaxIDTypeRUINN    TaxIDType = "ru_inn"
	TaxIDTypeRUKPP    TaxIDType = "ru_kpp"
	TaxIDTypeSAVAT    TaxIDType = "sa_vat"
	TaxIDTypeSGGST    TaxIDType = "sg_gst"
	TaxIDTypeSGUEN    TaxIDType = "sg_uen"
	TaxIDTypeTHVAT    TaxIDType = "th_vat"
	TaxIDTypeTWVAT    TaxIDType = "tw_vat"
	TaxIDTypeUAVAT    TaxIDType = "ua_vat"
	TaxIDTypeUnknown  TaxIDType = "unknown"
	TaxIDTypeUSEIN    TaxIDType = "us_ein"
	TaxIDTypeZAVAT    TaxIDType = "za_vat"
)

List of values that TaxIDType can take.

type TaxIDVerification

type TaxIDVerification struct {
	Status          TaxIDVerificationStatus `json:"status"`
	VerifiedAddress string                  `json:"verified_address"`
	VerifiedName    string                  `json:"verified_name"`
}

TaxIDVerification represents the verification details of a customer's tax id.

type TaxIDVerificationStatus

type TaxIDVerificationStatus string

TaxIDVerificationStatus is the list of allowed values for the tax id's verification status..

const (
	TaxIDVerificationStatusPending     TaxIDVerificationStatus = "pending"
	TaxIDVerificationStatusUnavailable TaxIDVerificationStatus = "unavailable"
	TaxIDVerificationStatusUnverified  TaxIDVerificationStatus = "unverified"
	TaxIDVerificationStatusVerified    TaxIDVerificationStatus = "verified"
)

List of values that TaxIDDuration can take.

type TaxRate

type TaxRate struct {
	APIResource
	Active       bool              `json:"active"`
	Country      string            `json:"country"`
	Created      int64             `json:"created"`
	Description  string            `json:"description"`
	DisplayName  string            `json:"display_name"`
	ID           string            `json:"id"`
	Inclusive    bool              `json:"inclusive"`
	Jurisdiction string            `json:"jurisdiction"`
	Livemode     bool              `json:"livemode"`
	Metadata     map[string]string `json:"metadata"`
	Object       string            `json:"object"`
	Percentage   float64           `json:"percentage"`
	State        string            `json:"state"`
	TaxType      TaxRateTaxType    `json:"tax_type"`
}

TaxRate is the resource representing a Stripe tax rate. For more details see https://stripe.com/docs/api/tax_rates/object.

func (*TaxRate) UnmarshalJSON

func (t *TaxRate) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a TaxRate. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type TaxRateList

type TaxRateList struct {
	APIResource
	ListMeta
	Data []*TaxRate `json:"data"`
}

TaxRateList is a list of tax rates as retrieved from a list endpoint.

type TaxRateListParams

type TaxRateListParams struct {
	ListParams   `form:"*"`
	Active       *bool             `form:"active"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Inclusive    *bool             `form:"inclusive"`
}

TaxRateListParams is the set of parameters that can be used when listing tax rates. For more detail see https://stripe.com/docs/api/tax_rates/list.

type TaxRateParams

type TaxRateParams struct {
	Params       `form:"*"`
	Active       *bool    `form:"active"`
	Country      *string  `form:"country"`
	Description  *string  `form:"description"`
	DisplayName  *string  `form:"display_name"`
	Inclusive    *bool    `form:"inclusive"`
	Jurisdiction *string  `form:"jurisdiction"`
	Percentage   *float64 `form:"percentage"`
	State        *string  `form:"state"`
	TaxType      *string  `form:"tax_type"`
}

TaxRateParams is the set of parameters that can be used when creating a tax rate. For more details see https://stripe.com/docs/api/tax_rates/create.

type TaxRateTaxType added in v72.48.0

type TaxRateTaxType string
const (
	TaxRateTaxTypeGST      TaxRateTaxType = "gst"
	TaxRateTaxTypeHST      TaxRateTaxType = "hst"
	TaxRateTaxTypeJct      TaxRateTaxType = "jct"
	TaxRateTaxTypePST      TaxRateTaxType = "pst"
	TaxRateTaxTypeQST      TaxRateTaxType = "qst"
	TaxRateTaxTypeRST      TaxRateTaxType = "rst"
	TaxRateTaxTypeSalesTax TaxRateTaxType = "sales_tax"
	TaxRateTaxTypeVAT      TaxRateTaxType = "vat"
)

List of values that TaxRateTaxType can take

type TerminalConnectionToken

type TerminalConnectionToken struct {
	APIResource
	Location string `json:"location"`
	Object   string `json:"object"`
	Secret   string `json:"secret"`
}

TerminalConnectionToken is the resource representing a Stripe terminal connection token.

type TerminalConnectionTokenParams

type TerminalConnectionTokenParams struct {
	Params   `form:"*"`
	Location string `form:"location"`
}

TerminalConnectionTokenParams is the set of parameters that can be used when creating a terminal connection token.

type TerminalLocation

type TerminalLocation struct {
	APIResource
	Address     *AccountAddressParams `json:"address"`
	Deleted     bool                  `json:"deleted"`
	DisplayName string                `json:"display_name"`
	ID          string                `json:"id"`
	Livemode    bool                  `json:"livemode"`
	Metadata    map[string]string     `json:"metadata"`
	Object      string                `json:"object"`
}

TerminalLocation is the resource representing a Stripe terminal location.

type TerminalLocationList

type TerminalLocationList struct {
	APIResource
	ListMeta
	Data []*TerminalLocation `json:"data"`
}

TerminalLocationList is a list of terminal readers as retrieved from a list endpoint.

type TerminalLocationListParams

type TerminalLocationListParams struct {
	ListParams `form:"*"`
}

TerminalLocationListParams is the set of parameters that can be used when listing temrinal locations.

type TerminalLocationParams

type TerminalLocationParams struct {
	Params      `form:"*"`
	Address     *AccountAddressParams `form:"address"`
	DisplayName *string               `form:"display_name"`
}

TerminalLocationParams is the set of parameters that can be used when creating or updating a terminal location.

type TerminalReader

type TerminalReader struct {
	APIResource
	Deleted         bool                     `json:"deleted"`
	DeviceSwVersion string                   `json:"device_sw_version"`
	DeviceType      TerminalReaderDeviceType `json:"device_type"`
	ID              string                   `json:"id"`
	IPAddress       string                   `json:"ip_address"`
	Label           string                   `json:"label"`
	Livemode        bool                     `json:"livemode"`
	Location        string                   `json:"location"`
	Metadata        map[string]string        `json:"metadata"`
	Object          string                   `json:"object"`
	SerialNumber    string                   `json:"serial_number"`
	Status          string                   `json:"status"`
}

TerminalReader is the resource representing a Stripe terminal reader.

type TerminalReaderDeviceType added in v72.41.0

type TerminalReaderDeviceType string

TerminalReaderDeviceType is the type of the terminal read.er device.

const (
	TerminalReaderDeviceTypeBBPOSChipper2X TerminalReaderDeviceType = "bbpos_chipper2x"
	TerminalReaderDeviceTypeBBPOSWisePOSE  TerminalReaderDeviceType = "bbpos_wisepos_e"
	TerminalReaderDeviceTypeVerifoneP400   TerminalReaderDeviceType = "verifone_P400"
)

List of values that TerminalReaderDeviceType can take

type TerminalReaderGetParams

type TerminalReaderGetParams struct {
	Params `form:"*"`
}

TerminalReaderGetParams is the set of parameters that can be used to get a terminal reader.

type TerminalReaderList

type TerminalReaderList struct {
	APIResource
	ListMeta
	Data     []*TerminalReader `json:"data"`
	Location *string           `json:"location"`
	Status   *string           `json:"status"`
}

TerminalReaderList is a list of terminal readers as retrieved from a list endpoint.

type TerminalReaderListParams

type TerminalReaderListParams struct {
	ListParams `form:"*"`
	DeviceType *string `form:"device_type"`
	Location   *string `form:"location"`
	Status     *string `form:"status"`
}

TerminalReaderListParams is the set of parameters that can be used when listing temrinal readers.

type TerminalReaderParams

type TerminalReaderParams struct {
	Params           `form:"*"`
	Label            *string `form:"label"`
	Location         *string `form:"location"`
	RegistrationCode *string `form:"registration_code"`
}

TerminalReaderParams is the set of parameters that can be used for creating or updating a terminal reader.

type Token

type Token struct {
	APIResource
	BankAccount *BankAccount `json:"bank_account"`
	Card        *Card        `json:"card"`
	ClientIP    string       `json:"client_ip"`
	Created     int64        `json:"created"`
	// Email is an undocumented field but included for all tokens created
	// with Stripe Checkout.
	Email    string    `json:"email"`
	ID       string    `json:"id"`
	Livemode bool      `json:"livemode"`
	Object   string    `json:"object"`
	Type     TokenType `json:"type"`
	Used     bool      `json:"used"`
}

Token is the resource representing a Stripe token. For more details see https://stripe.com/docs/api#tokens.

type TokenAccountParams added in v72.26.0

type TokenAccountParams struct {
	BusinessType        *string               `form:"business_type"`
	Company             *AccountCompanyParams `form:"company"`
	Individual          *PersonParams         `form:"individual"`
	TOSShownAndAccepted *bool                 `form:"tos_shown_and_accepted"`
}

TokenAccountParams is the set of parameters that can be used when creating a Account token.

type TokenCVCUpdateParams added in v72.20.0

type TokenCVCUpdateParams struct {
	CVC *string `form:"cvc"`
}

TokenCVCUpdateParams is the set of parameters that can be used when creating a CVC token.

type TokenParams

type TokenParams struct {
	Params      `form:"*"`
	Account     *TokenAccountParams   `form:"account"`
	BankAccount *BankAccountParams    `form:"bank_account"`
	Card        *CardParams           `form:"card"`
	Customer    *string               `form:"customer"`
	CVCUpdate   *TokenCVCUpdateParams `form:"cvc_update"`
	// Email is an undocumented parameter used by Stripe Checkout
	// It may be removed from the API without notice.
	Email  *string       `form:"email"`
	Person *PersonParams `form:"person"`
	PII    *PIIParams    `form:"pii"`
}

TokenParams is the set of parameters that can be used when creating a token. For more details see: - https://stripe.com/docs/api#create_card_token - https://stripe.com/docs/api#create_bank_account_token - https://stripe.com/docs/api/tokens/create_account - https://stripe.com/docs/api/tokens/create_person

type TokenType

type TokenType string

TokenType is the list of allowed values for a token's type.

const (
	TokenTypeAccount     TokenType = "account"
	TokenTypeBankAccount TokenType = "bank_account"
	TokenTypeCard        TokenType = "card"
	TokenTypeCVCUpdate   TokenType = "cvc_update"
	TokenTypePII         TokenType = "pii"
)

List of values that TokenType can take.

type Topup

type Topup struct {
	APIResource
	Amount                   int64               `json:"amount"`
	BalanceTransaction       *BalanceTransaction `json:"balance_transaction"`
	Created                  int64               `json:"created"`
	Currency                 Currency            `json:"currency"`
	Description              string              `json:"description"`
	ExpectedAvailabilityDate int64               `json:"expected_availability_date"`
	FailureCode              string              `json:"failure_code"`
	FailureMessage           string              `json:"failure_message"`
	ID                       string              `json:"id"`
	Livemode                 bool                `json:"livemode"`
	Metadata                 map[string]string   `json:"metadata"`
	Object                   string              `json:"object"`
	Source                   *PaymentSource      `json:"source"`
	StatementDescriptor      string              `json:"statement_descriptor"`
	Status                   TopupStatus         `json:"status"`
	TransferGroup            string              `json:"transfer_group"`

	// The following property is deprecated
	ArrivalDate int64 `json:"arrival_date"`
}

Topup is the resource representing a Stripe top-up. For more details see https://stripe.com/docs/api#topups.

func (*Topup) UnmarshalJSON added in v72.41.0

func (t *Topup) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Topup. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type TopupList

type TopupList struct {
	APIResource
	ListMeta
	Data []*Topup `json:"data"`
}

TopupList is a list of top-ups as retrieved from a list endpoint.

type TopupListParams

type TopupListParams struct {
	ListParams   `form:"*"`
	Amount       *int64            `form:"amount"`
	AmountRange  *RangeQueryParams `form:"amount"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
	Status       *string           `form:"status"`
}

TopupListParams is the set of parameters that can be used when listing top-ups. For more details see https://stripe.com/docs/api#list_topups.

type TopupParams

type TopupParams struct {
	Params              `form:"*"`
	Amount              *int64        `form:"amount"`
	Currency            *string       `form:"currency"`
	Description         *string       `form:"description"`
	Source              *SourceParams `form:"*"` // SourceParams has custom encoding so brought to top level with "*"
	StatementDescriptor *string       `form:"statement_descriptor"`
	TransferGroup       *string       `form:"transfer_group"`
}

TopupParams is the set of parameters that can be used when creating or updating a top-up. For more details see https://stripe.com/docs/api#create_topup and https://stripe.com/docs/api#update_topup.

func (*TopupParams) SetSource

func (p *TopupParams) SetSource(sp interface{}) error

SetSource adds valid sources to a TopupParams object, returning an error for unsupported sources.

type TopupStatus added in v72.41.0

type TopupStatus string

TopupStatus is a status of a Topup.

const (
	TopupStatusCanceled  TopupStatus = "canceled"
	TopupStatusFailed    TopupStatus = "failed"
	TopupStatusPending   TopupStatus = "pending"
	TopupStatusReversed  TopupStatus = "reversed"
	TopupStatusSucceeded TopupStatus = "succeeded"
)

List of values that TopupStatus can take.

type Transfer

type Transfer struct {
	APIResource
	Amount             int64                     `json:"amount"`
	AmountReversed     int64                     `json:"amount_reversed"`
	BalanceTransaction *BalanceTransaction       `json:"balance_transaction"`
	Created            int64                     `json:"created"`
	Currency           Currency                  `json:"currency"`
	Description        string                    `json:"description"`
	Destination        *TransferDestination      `json:"destination"`
	DestinationPayment *Charge                   `json:"destination_payment"`
	ID                 string                    `json:"id"`
	Livemode           bool                      `json:"livemode"`
	Metadata           map[string]string         `json:"metadata"`
	Object             string                    `json:"object"`
	Reversals          *ReversalList             `json:"reversals"`
	Reversed           bool                      `json:"reversed"`
	SourceTransaction  *BalanceTransactionSource `json:"source_transaction"`
	SourceType         TransferSourceType        `json:"source_type"`
	TransferGroup      string                    `json:"transfer_group"`
}

Transfer is the resource representing a Stripe transfer. For more details see https://stripe.com/docs/api#transfers.

func (*Transfer) UnmarshalJSON

func (t *Transfer) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a Transfer. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type TransferDestination

type TransferDestination struct {
	ID string `json:"id"`

	Account *Account `json:"-"`
}

TransferDestination describes the destination of a Transfer. The Type should indicate which object is fleshed out For more details see https://stripe.com/docs/api/?lang=go#transfer_object

func (*TransferDestination) UnmarshalJSON

func (t *TransferDestination) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a TransferDestination. This custom unmarshaling is needed because the specific type of TransferDestination it refers to is specified in the JSON

type TransferList

type TransferList struct {
	APIResource
	ListMeta
	Data []*Transfer `json:"data"`
}

TransferList is a list of transfers as retrieved from a list endpoint.

type TransferListParams

type TransferListParams struct {
	ListParams    `form:"*"`
	Created       *int64            `form:"created"`
	CreatedRange  *RangeQueryParams `form:"created"`
	Destination   *string           `form:"destination"`
	TransferGroup *string           `form:"transfer_group"`
}

TransferListParams is the set of parameters that can be used when listing transfers. For more details see https://stripe.com/docs/api#list_transfers.

type TransferParams

type TransferParams struct {
	Params            `form:"*"`
	Amount            *int64  `form:"amount"`
	Currency          *string `form:"currency"`
	Description       *string `form:"description"`
	Destination       *string `form:"destination"`
	SourceTransaction *string `form:"source_transaction"`
	SourceType        *string `form:"source_type"`
	TransferGroup     *string `form:"transfer_group"`
}

TransferParams is the set of parameters that can be used when creating or updating a transfer. For more details see https://stripe.com/docs/api#create_transfer and https://stripe.com/docs/api#update_transfer.

type TransferSourceType

type TransferSourceType string

TransferSourceType is the list of allowed values for the transfer's source_type field.

const (
	TransferSourceTypeBankAccount TransferSourceType = "bank_account"
	TransferSourceTypeCard        TransferSourceType = "card"
	TransferSourceTypeFPX         TransferSourceType = "fpx"
)

List of values that TransferSourceType can take.

type UsageRecord

type UsageRecord struct {
	APIResource
	ID               string `json:"id"`
	Livemode         bool   `json:"livemode"`
	Object           string `json:"object"`
	Quantity         int64  `json:"quantity"`
	SubscriptionItem string `json:"subscription_item"`
	Timestamp        int64  `json:"timestamp"`
}

UsageRecord represents a usage record. See https://stripe.com/docs/api#usage_records

type UsageRecordParams

type UsageRecordParams struct {
	Params           `form:"*"`
	SubscriptionItem *string `form:"-"` // Included in URL
	Action           *string `form:"action"`
	Quantity         *int64  `form:"quantity"`
	Timestamp        *int64  `form:"timestamp"`
	TimestampNow     *bool   `form:"-"` // See custom AppendTo
}

UsageRecordParams create a usage record for a specified subscription item and date, and fills it with a quantity.

func (*UsageRecordParams) AppendTo added in v72.71.0

func (u *UsageRecordParams) AppendTo(body *form.Values, keyParts []string)

AppendTo implements custom encoding logic for UsageRecordParams.

type UsageRecordSummary

type UsageRecordSummary struct {
	ID               string  `json:"id"`
	Invoice          string  `json:"invoice"`
	Livemode         bool    `json:"livemode"`
	Object           string  `json:"object"`
	Period           *Period `json:"period"`
	SubscriptionItem string  `json:"subscription_item"`
	TotalUsage       int64   `json:"total_usage"`
}

UsageRecordSummary represents a usage record summary. See https://stripe.com/docs/api#usage_records

type UsageRecordSummaryList

type UsageRecordSummaryList struct {
	APIResource
	ListMeta
	Data []*UsageRecordSummary `json:"data"`
}

UsageRecordSummaryList is a list of usage record summaries as retrieved from a list endpoint.

type UsageRecordSummaryListParams

type UsageRecordSummaryListParams struct {
	ListParams       `form:"*"`
	SubscriptionItem *string `form:"-"` // Included in URL
}

UsageRecordSummaryListParams is the set of parameters that can be used when listing charges.

type VerificationDocumentDetailsCode

type VerificationDocumentDetailsCode string

VerificationDocumentDetailsCode is a machine-readable code specifying the verification state of a document associated with a person.

const (
	VerificationDocumentDetailsCodeDocumentCorrupt               VerificationDocumentDetailsCode = "document_corrupt"
	VerificationDocumentDetailsCodeDocumentFailedCopy            VerificationDocumentDetailsCode = "document_failed_copy"
	VerificationDocumentDetailsCodeDocumentFailedGreyscale       VerificationDocumentDetailsCode = "document_failed_greyscale"
	VerificationDocumentDetailsCodeDocumentFailedOther           VerificationDocumentDetailsCode = "document_failed_other"
	VerificationDocumentDetailsCodeDocumentFailedTestMode        VerificationDocumentDetailsCode = "document_failed_test_mode"
	VerificationDocumentDetailsCodeDocumentFraudulent            VerificationDocumentDetailsCode = "document_fraudulent"
	VerificationDocumentDetailsCodeDocumentIDTypeNotSupported    VerificationDocumentDetailsCode = "document_id_type_not_supported"
	VerificationDocumentDetailsCodeDocumentIDCountryNotSupported VerificationDocumentDetailsCode = "document_id_country_not_supported"
	VerificationDocumentDetailsCodeDocumentManipulated           VerificationDocumentDetailsCode = "document_manipulated"
	VerificationDocumentDetailsCodeDocumentMissingBack           VerificationDocumentDetailsCode = "document_missing_back"
	VerificationDocumentDetailsCodeDocumentMissingFront          VerificationDocumentDetailsCode = "document_missing_front"
	VerificationDocumentDetailsCodeDocumentNotReadable           VerificationDocumentDetailsCode = "document_not_readable"
	VerificationDocumentDetailsCodeDocumentNotUploaded           VerificationDocumentDetailsCode = "document_not_uploaded"
	VerificationDocumentDetailsCodeDocumentTooLarge              VerificationDocumentDetailsCode = "document_too_large"
)

List of values that IdentityVerificationDetailsCode can take.

type VerificationFieldsList

type VerificationFieldsList struct {
	AdditionalFields []string `json:"additional"`
	Minimum          []string `json:"minimum"`
}

VerificationFieldsList lists the fields needed for an account verification. For more details see https://stripe.com/docs/api#country_spec_object-verification_fields.

type WebhookEndpoint

type WebhookEndpoint struct {
	APIResource
	APIVersion    string            `json:"api_version"`
	Application   string            `json:"application"`
	Connect       bool              `json:"connect"`
	Created       int64             `json:"created"`
	Deleted       bool              `json:"deleted"`
	Description   string            `json:"description"`
	EnabledEvents []string          `json:"enabled_events"`
	ID            string            `json:"id"`
	Livemode      bool              `json:"livemode"`
	Metadata      map[string]string `json:"metadata"`
	Object        string            `json:"object"`
	Secret        string            `json:"secret"`
	Status        string            `json:"status"`
	URL           string            `json:"url"`
}

WebhookEndpoint is the resource representing a Stripe webhook endpoint. For more details see https://stripe.com/docs/api#webhook_endpoints.

func (*WebhookEndpoint) UnmarshalJSON

func (w *WebhookEndpoint) UnmarshalJSON(data []byte) error

UnmarshalJSON handles deserialization of a WebhookEndpoint. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.

type WebhookEndpointList

type WebhookEndpointList struct {
	APIResource
	ListMeta
	Data []*WebhookEndpoint `json:"data"`
}

WebhookEndpointList is a list of webhook endpoints as retrieved from a list endpoint.

type WebhookEndpointListParams

type WebhookEndpointListParams struct {
	ListParams   `form:"*"`
	Created      *int64            `form:"created"`
	CreatedRange *RangeQueryParams `form:"created"`
}

WebhookEndpointListParams is the set of parameters that can be used when listing webhook endpoints. For more detail see https://stripe.com/docs/api#list_webhook_endpoints.

type WebhookEndpointParams

type WebhookEndpointParams struct {
	Params        `form:"*"`
	Connect       *bool     `form:"connect"`
	Description   *string   `form:"description"`
	Disabled      *bool     `form:"disabled"`
	EnabledEvents []*string `form:"enabled_events"`
	URL           *string   `form:"url"`

	// This parameter is only available on creation.
	// We recommend setting the API version that the library is pinned to. See apiversion in stripe.go
	APIVersion *string `form:"api_version"`
}

WebhookEndpointParams is the set of parameters that can be used when creating a webhook endpoint. For more details see https://stripe.com/docs/api#create_webhook_endpoint.

Directories

Path Synopsis
Package account provides the /accounts APIs
Package account provides the /accounts APIs
Package accountlink provides the /account_links APIs
Package accountlink provides the /account_links APIs
Package applepaydomain provides the /apple_pay/domains APIs
Package applepaydomain provides the /apple_pay/domains APIs
Package balance provides the /balance APIs
Package balance provides the /balance APIs
Package balancetransaction provides the /balance_transactions APIs
Package balancetransaction provides the /balance_transactions APIs
Package bankaccount provides the bankaccount related APIs
Package bankaccount provides the bankaccount related APIs
billingportal
configuration
Package configuration provides the /billing_portal/configurations APIs
Package configuration provides the /billing_portal/configurations APIs
session
Package session provides the /billing_portal/sessions APIs
Package session provides the /billing_portal/sessions APIs
Package capability provides the /accounts/{account}/capabilities APIs
Package capability provides the /accounts/{account}/capabilities APIs
Package card provides the card related APIs
Package card provides the card related APIs
Package charge provides the /charges APIs
Package charge provides the /charges APIs
checkout
session
Package session provides the /checkout/sessions APIs
Package session provides the /checkout/sessions APIs
Package client provides a Stripe client for invoking APIs across all resources
Package client provides a Stripe client for invoking APIs across all resources
Package countryspec provides the /country_specs APIs
Package countryspec provides the /country_specs APIs
Package coupon provides the /coupons APIs
Package coupon provides the /coupons APIs
Package creditnote provides the /credit_notes APIs
Package creditnote provides the /credit_notes APIs
Package customer provides the /customers APIs
Package customer provides the /customers APIs
Package customerbalancetransaction provides the /customers/{customer}/balance_transactions APIs
Package customerbalancetransaction provides the /customers/{customer}/balance_transactions APIs
Package discount provides the discount-related APIs
Package discount provides the discount-related APIs
Package dispute provides the /disputes APIs
Package dispute provides the /disputes APIs
Package ephemeralkey provides the /ephemeral_keys APIs
Package ephemeralkey provides the /ephemeral_keys APIs
Package event provides the /events APIs
Package event provides the /events APIs
Package fee provides the /application_fees APIs
Package fee provides the /application_fees APIs
Package feerefund provides the /application_fees/{id}/refunds APIs
Package feerefund provides the /application_fees/{id}/refunds APIs
Package file provides the /files APIs
Package file provides the /files APIs
Package filelink provides the /file_links APIs
Package filelink provides the /file_links APIs
identity
verificationreport
Package verificationreport provides the /identity/verification_reports APIs
Package verificationreport provides the /identity/verification_reports APIs
verificationsession
Package verificationsession provides the /identity/verification_sessions APIs
Package verificationsession provides the /identity/verification_sessions APIs
Package invoice provides the /invoices APIs
Package invoice provides the /invoices APIs
Package invoiceitem provides the /invoiceitems APIs
Package invoiceitem provides the /invoiceitems APIs
issuing
authorization
Package authorization provides the /issuing/authorizations APIs
Package authorization provides the /issuing/authorizations APIs
card
Package card provides the /issuing/cards APIs
Package card provides the /issuing/cards APIs
cardholder
Package cardholder provides the /issuing/cardholders APIs For more details, see: https://stripe.com/docs/api/?lang=go#issuing_cardholders
Package cardholder provides the /issuing/cardholders APIs For more details, see: https://stripe.com/docs/api/?lang=go#issuing_cardholders
dispute
Package dispute provides the /issuing/disputes APIs
Package dispute provides the /issuing/disputes APIs
transaction
Package transaction provides the /issuing/transactions APIs
Package transaction provides the /issuing/transactions APIs
Package lineitem provides the /checkout/sessions/{session}/line_items APIs
Package lineitem provides the /checkout/sessions/{session}/line_items APIs
Package loginlink provides the /accounts/{account}/login_links APIs
Package loginlink provides the /accounts/{account}/login_links APIs
Package mandate provides the /mandates APIs
Package mandate provides the /mandates APIs
Package oauth provides the OAuth APIs
Package oauth provides the OAuth APIs
Package order provides the /orders APIs
Package order provides the /orders APIs
Package orderreturn provides the /order_returns APIs
Package orderreturn provides the /order_returns APIs
Package paymentintent provides the /payment_intents APIs
Package paymentintent provides the /payment_intents APIs
Package paymentmethod provides the /payment_methods APIs
Package paymentmethod provides the /payment_methods APIs
Package paymentsource provides the /customers/{customer}/sources APIs
Package paymentsource provides the /customers/{customer}/sources APIs
Package payout provides the /payouts APIs
Package payout provides the /payouts APIs
Package person provides the /accounts/{account}/persons APIs
Package person provides the /accounts/{account}/persons APIs
Package plan provides the /plans APIs
Package plan provides the /plans APIs
Package price provides the /prices APIs
Package price provides the /prices APIs
Package product provides the /products APIs
Package product provides the /products APIs
Package promotioncode provides the /promotion_codes APIs
Package promotioncode provides the /promotion_codes APIs
Package quote provides the /quotes APIs
Package quote provides the /quotes APIs
radar
earlyfraudwarning
Package earlyfraudwarning provides the /radar/early_fraud_warnings APIs
Package earlyfraudwarning provides the /radar/early_fraud_warnings APIs
valuelist
Package valuelist provides the /radar/value_lists APIs
Package valuelist provides the /radar/value_lists APIs
valuelistitem
Package valuelistitem provides the /radar/value_list_items APIs For more details, see: https://stripe.com/docs/api/radar/list_items?lang=go
Package valuelistitem provides the /radar/value_list_items APIs For more details, see: https://stripe.com/docs/api/radar/list_items?lang=go
Package refund provides the /refunds APIs
Package refund provides the /refunds APIs
reporting
reportrun
Package reportrun provides the /reporting/report_runs APIs
Package reportrun provides the /reporting/report_runs APIs
reporttype
Package reporttype provides the /reporting/report_types APIs
Package reporttype provides the /reporting/report_types APIs
Package reversal provides the /transfers/{id}/reversals APIs
Package reversal provides the /transfers/{id}/reversals APIs
Package review provides the /reviews APIs
Package review provides the /reviews APIs
scripts
check_api_clients
A script that tries to make sure that all API clients (structs called `Client`) defined throughout all subpackages are included in the master list as a field on the `client.API` type.
A script that tries to make sure that all API clients (structs called `Client`) defined throughout all subpackages are included in the master list as a field on the `client.API` type.
test_with_stripe_mock
A script that wraps the run of the project test suite and starts stripe-mock with a custom OpenAPI + fixtures bundle if one was found in the appropriate spot (see `pathSpec` below).
A script that wraps the run of the project test suite and starts stripe-mock with a custom OpenAPI + fixtures bundle if one was found in the appropriate spot (see `pathSpec` below).
Package setupattempt provides the /setup_attempts APIs For more details, see: https://stripe.com/docs/api/?lang=go#setup_attempts
Package setupattempt provides the /setup_attempts APIs For more details, see: https://stripe.com/docs/api/?lang=go#setup_attempts
Package setupintent provides the /setup_intents APIs
Package setupintent provides the /setup_intents APIs
Package shippingrate provides the /shipping_rates APIs
Package shippingrate provides the /shipping_rates APIs
sigma
scheduledqueryrun
Package scheduledqueryrun provides the /sigma/scheduled_query_runs APIs For more details, see: https://stripe.com/docs/api#scheduled_queries
Package scheduledqueryrun provides the /sigma/scheduled_query_runs APIs For more details, see: https://stripe.com/docs/api#scheduled_queries
Package sku provides the /skus APIs
Package sku provides the /skus APIs
Package source provides the /sources APIs
Package source provides the /sources APIs
Package sourcetransaction provides the TODO APIs
Package sourcetransaction provides the TODO APIs
Package sub provides the /subscriptions APIs
Package sub provides the /subscriptions APIs
Package subitem provides the /subscription_items APIs
Package subitem provides the /subscription_items APIs
Package subschedule provides the /subscription_schedules APIs
Package subschedule provides the /subscription_schedules APIs
Package taxcode provides the /tax_codes APIs
Package taxcode provides the /tax_codes APIs
Package taxid provides the /customers/{customer}/tax_ids APIs
Package taxid provides the /customers/{customer}/tax_ids APIs
Package taxrate provides the /tax_rates APIs
Package taxrate provides the /tax_rates APIs
terminal
connectiontoken
Package connectiontoken provides the /terminal/connection_tokens APIs
Package connectiontoken provides the /terminal/connection_tokens APIs
location
Package location provides the /terminal/locations APIs
Package location provides the /terminal/locations APIs
reader
Package reader provides the /terminal/readers APIs
Package reader provides the /terminal/readers APIs
Package token provides the /tokens APIs
Package token provides the /tokens APIs
Package topup provides the /topups APIs
Package topup provides the /topups APIs
Package transfer provides the /transfers APIs
Package transfer provides the /transfers APIs
Package usagerecord provides the /subscription_items/{subscription_item}/usage_records APIs
Package usagerecord provides the /subscription_items/{subscription_item}/usage_records APIs
Package usagerecordsummary provides the /subscription_items/{subscription_item}/usage_record_summaries APIs
Package usagerecordsummary provides the /subscription_items/{subscription_item}/usage_record_summaries APIs
Package webhookendpoint provides the /webhook_endpoints APIs
Package webhookendpoint provides the /webhook_endpoints APIs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL