paymaxis

package module
v0.1.0-alpha.3 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

README

Paymaxis Go API Library

Go Reference

The Paymaxis Go library provides convenient access to the Paymaxis REST API from applications written in Go. The full API of this library can be found in api.md.

It is generated with Stainless.

Installation

import (
	"github.com/TralahM/paymaxis-go" // imported as paymaxis
)

Or to pin the version:

go get -u 'github.com/TralahM/paymaxis-go@v0.1.0-alpha.3'

Requirements

This library requires Go 1.18+.

Usage

The full API of this library can be found in api.md.

package main

import (
	"context"
	"fmt"

	"github.com/TralahM/paymaxis-go"
	"github.com/TralahM/paymaxis-go/option"
)

func main() {
	client := paymaxis.NewClient(
		option.WithBearerToken("My Bearer Token"), // defaults to os.LookupEnv("PAYMAXIS_API_KEY")
		option.WithEnvironmentProduction(),        // defaults to option.WithEnvironmentSandbox()
	)
	payment, err := client.Payments.New(context.TODO(), paymaxis.PaymentNewParams{
		Currency:       paymaxis.F("EUR"),
		PaymentType:    paymaxis.F(paymaxis.PaymentNewParamsPaymentTypeDeposit),
		Amount:         paymaxis.F(4000.000000),
		PaymentMethod:  paymaxis.F(paymaxis.PaymentNewParamsPaymentMethodBasicCard),
		StartRecurring: paymaxis.F(true),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", payment.Result)
}

Request fields

All request parameters are wrapped in a generic Field type, which we use to distinguish zero values from null or omitted fields.

This prevents accidentally sending a zero value if you forget a required parameter, and enables explicitly sending null, false, '', or 0 on optional parameters. Any field not specified is not sent.

To construct fields with values, use the helpers String(), Int(), Float(), or most commonly, the generic F[T](). To send a null, use Null[T](), and to send a nonconforming value, use Raw[T](any). For example:

params := FooParams{
	Name: paymaxis.F("hello"),

	// Explicitly send `"description": null`
	Description: paymaxis.Null[string](),

	Point: paymaxis.F(paymaxis.Point{
		X: paymaxis.Int(0),
		Y: paymaxis.Int(1),

		// In cases where the API specifies a given type,
		// but you want to send something else, use `Raw`:
		Z: paymaxis.Raw[int64](0.01), // sends a float
	}),
}
Response objects

All fields in response structs are value types (not pointers or wrappers).

If a given field is null, not present, or invalid, the corresponding field will simply be its zero value.

All response structs also include a special JSON field, containing more detailed information about each property, which you can use like so:

if res.Name == "" {
	// true if `"name"` is either not present or explicitly null
	res.JSON.Name.IsNull()

	// true if the `"name"` key was not present in the repsonse JSON at all
	res.JSON.Name.IsMissing()

	// When the API returns data that cannot be coerced to the expected type:
	if res.JSON.Name.IsInvalid() {
		raw := res.JSON.Name.Raw()

		legacyName := struct{
			First string `json:"first"`
			Last  string `json:"last"`
		}{}
		json.Unmarshal([]byte(raw), &legacyName)
		name = legacyName.First + " " + legacyName.Last
	}
}

These .JSON structs also include an Extras map containing any properties in the json response that were not specified in the struct. This can be useful for API features not yet present in the SDK.

body := res.JSON.ExtraFields["my_unexpected_field"].Raw()
RequestOptions

This library uses the functional options pattern. Functions defined in the option package return a RequestOption, which is a closure that mutates a RequestConfig. These options can be supplied to the client or at individual requests. For example:

client := paymaxis.NewClient(
	// Adds a header to every request made by the client
	option.WithHeader("X-Some-Header", "custom_header_info"),
)

client.Payments.New(context.TODO(), ...,
	// Override the header
	option.WithHeader("X-Some-Header", "some_other_custom_header_info"),
	// Add an undocumented field to the request body, using sjson syntax
	option.WithJSONSet("some.json.path", map[string]string{"my": "object"}),
)

See the full list of request options.

Pagination

This library provides some conveniences for working with paginated list endpoints.

You can use .ListAutoPaging() methods to iterate through items across all pages:

Or you can use simple .List() methods to fetch a single page and receive a standard response object with additional helper methods like .GetNextPage(), e.g.:

Errors

When the API returns a non-success status code, we return an error with type *paymaxis.Error. This contains the StatusCode, *http.Request, and *http.Response values of the request, as well as the JSON of the error body (much like other response objects in the SDK).

To handle errors, we recommend that you use the errors.As pattern:

_, err := client.Payments.New(context.TODO(), paymaxis.PaymentNewParams{
	Currency:       paymaxis.F("EUR"),
	PaymentType:    paymaxis.F(paymaxis.PaymentNewParamsPaymentTypeDeposit),
	Amount:         paymaxis.F(4000.000000),
	PaymentMethod:  paymaxis.F(paymaxis.PaymentNewParamsPaymentMethodBasicCard),
	StartRecurring: paymaxis.F(true),
})
if err != nil {
	var apierr *paymaxis.Error
	if errors.As(err, &apierr) {
		println(string(apierr.DumpRequest(true)))  // Prints the serialized HTTP request
		println(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response
	}
	panic(err.Error()) // GET "/api/v1/payments": 400 Bad Request { ... }
}

When other errors occur, they are returned unwrapped; for example, if HTTP transport fails, you might receive *url.Error wrapping *net.OpError.

Timeouts

Requests do not time out by default; use context to configure a timeout for a request lifecycle.

Note that if a request is retried, the context timeout does not start over. To set a per-retry timeout, use option.WithRequestTimeout().

// This sets the timeout for the request, including all the retries.
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
defer cancel()
client.Payments.New(
	ctx,
	paymaxis.PaymentNewParams{
		Currency:       paymaxis.F("EUR"),
		PaymentType:    paymaxis.F(paymaxis.PaymentNewParamsPaymentTypeDeposit),
		Amount:         paymaxis.F(4000.000000),
		PaymentMethod:  paymaxis.F(paymaxis.PaymentNewParamsPaymentMethodBasicCard),
		StartRecurring: paymaxis.F(true),
	},
	// This sets the per-retry timeout
	option.WithRequestTimeout(20*time.Second),
)
File uploads

Request parameters that correspond to file uploads in multipart requests are typed as param.Field[io.Reader]. The contents of the io.Reader will by default be sent as a multipart form part with the file name of "anonymous_file" and content-type of "application/octet-stream".

The file name and content-type can be customized by implementing Name() string or ContentType() string on the run-time type of io.Reader. Note that os.File implements Name() string, so a file returned by os.Open will be sent with the file name on disk.

We also provide a helper paymaxis.FileParam(reader io.Reader, filename string, contentType string) which can be used to wrap any io.Reader with the appropriate file name and content type.

Retries

Certain errors will be automatically retried 2 times by default, with a short exponential backoff. We retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit, and >=500 Internal errors.

You can use the WithMaxRetries option to configure or disable this:

// Configure the default for all requests:
client := paymaxis.NewClient(
	option.WithMaxRetries(0), // default is 2
)

// Override per-request:
client.Payments.New(
	context.TODO(),
	paymaxis.PaymentNewParams{
		Currency:       paymaxis.F("EUR"),
		PaymentType:    paymaxis.F(paymaxis.PaymentNewParamsPaymentTypeDeposit),
		Amount:         paymaxis.F(4000.000000),
		PaymentMethod:  paymaxis.F(paymaxis.PaymentNewParamsPaymentMethodBasicCard),
		StartRecurring: paymaxis.F(true),
	},
	option.WithMaxRetries(5),
)
Making custom/undocumented requests

This library is typed for convenient access to the documented API. If you need to access undocumented endpoints, params, or response properties, the library can still be used.

Undocumented endpoints

To make requests to undocumented endpoints, you can use client.Get, client.Post, and other HTTP verbs. RequestOptions on the client, such as retries, will be respected when making these requests.

var (
    // params can be an io.Reader, a []byte, an encoding/json serializable object,
    // or a "…Params" struct defined in this library.
    params map[string]interface{}

    // result can be an []byte, *http.Response, a encoding/json deserializable object,
    // or a model defined in this library.
    result *http.Response
)
err := client.Post(context.Background(), "/unspecified", params, &result)
if err != nil {
    …
}
Undocumented request params

To make requests using undocumented parameters, you may use either the option.WithQuerySet() or the option.WithJSONSet() methods.

params := FooNewParams{
    ID:   paymaxis.F("id_xxxx"),
    Data: paymaxis.F(FooNewParamsData{
        FirstName: paymaxis.F("John"),
    }),
}
client.Foo.New(context.Background(), params, option.WithJSONSet("data.last_name", "Doe"))
Undocumented response properties

To access undocumented response properties, you may either access the raw JSON of the response as a string with result.JSON.RawJSON(), or get the raw JSON of a particular field on the result with result.JSON.Foo.Raw().

Any fields that are not present on the response struct will be saved and can be accessed by result.JSON.ExtraFields() which returns the extra fields as a map[string]Field.

Middleware

We provide option.WithMiddleware which applies the given middleware to requests.

func Logger(req *http.Request, next option.MiddlewareNext) (res *http.Response, err error) {
	// Before the request
	start := time.Now()
	LogReq(req)

	// Forward the request to the next handler
	res, err = next(req)

	// Handle stuff after the request
	end := time.Now()
	LogRes(res, err, start - end)

    return res, err
}

client := paymaxis.NewClient(
	option.WithMiddleware(Logger),
)

When multiple middlewares are provided as variadic arguments, the middlewares are applied left to right. If option.WithMiddleware is given multiple times, for example first in the client then the method, the middleware in the client will run first and the middleware given in the method will run next.

You may also replace the default http.Client with option.WithHTTPClient(client). Only one http client is accepted (this overwrites any previous client) and receives requests after any middleware has been applied.

Semantic versioning

This package generally follows SemVer conventions, though certain backwards-incompatible changes may be released as minor versions:

  1. Changes to library internals which are technically public but not intended or documented for external use. (Please open a GitHub issue to let us know if you are relying on such internals).
  2. Changes that we do not expect to impact the vast majority of users in practice.

We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.

We are keen for your feedback; please open an issue with questions, bugs, or suggestions.

Contributing

See the contributing documentation.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool(value bool) param.Field[bool]

Bool is a param field helper which helps specify bools.

func F

func F[T any](value T) param.Field[T]

F is a param field helper used to initialize a param.Field generic struct. This helps specify null, zero values, and overrides, as well as normal values. You can read more about this in our README.

func FileParam

func FileParam(reader io.Reader, filename string, contentType string) param.Field[io.Reader]

FileParam is a param field helper which helps files with a mime content-type.

func Float

func Float(value float64) param.Field[float64]

Float is a param field helper which helps specify floats.

func Int

func Int(value int64) param.Field[int64]

Int is a param field helper which helps specify integers. This is particularly helpful when specifying integer constants for fields.

func Null

func Null[T any]() param.Field[T]

Null is a param field helper which explicitly sends null to the API.

func Raw

func Raw[T any](value any) param.Field[T]

Raw is a param field helper for specifying values for fields when the type you are looking to send is different from the type that is specified in the SDK. For example, if the type of the field is an integer, but you want to send a float, you could do that by setting the corresponding field with Raw[int](0.5).

func String

func String(value string) param.Field[string]

String is a param field helper which helps specify strings.

Types

type Client

type Client struct {
	Options       []option.RequestOption
	Payments      *PaymentService
	Subscriptions *SubscriptionService
}

Client creates a struct with services and top level methods that help with interacting with the paymaxis API. You should not instantiate this client directly, and instead use the NewClient method instead.

func NewClient

func NewClient(opts ...option.RequestOption) (r *Client)

NewClient generates a new client with the default option read from the environment (PAYMAXIS_API_KEY). The option passed in as arguments are applied after these default arguments, and all option will be passed down to the services and requests that this client makes.

func (*Client) Delete

func (r *Client) Delete(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Delete makes a DELETE request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Execute

func (r *Client) Execute(ctx context.Context, method string, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Execute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.

If a byte slice or an io.Reader is supplied to params, it will be used as-is for the request body.

The params is by default serialized into the body using encoding/json. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned url.Values will be used as query strings to the url.

If your params struct uses param.Field, you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses param.Field without specifying how it is serialized.

Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.

The response body will be deserialized into the res variable, depending on its type:

  • A pointer to a *http.Response is populated by the raw response.
  • A pointer to a byte array will be populated with the contents of the request body.
  • A pointer to any other type uses this library's default JSON decoding, which respects UnmarshalJSON if it is defined on the type.
  • A nil value will not read the response body.

For even greater flexibility, see option.WithResponseInto and option.WithResponseBodyInto.

func (*Client) Get

func (r *Client) Get(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Get makes a GET request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Patch

func (r *Client) Patch(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Patch makes a PATCH request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Post

func (r *Client) Post(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Post makes a POST request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

func (*Client) Put

func (r *Client) Put(ctx context.Context, path string, params interface{}, res interface{}, opts ...option.RequestOption) error

Put makes a PUT request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.

type Error

type Error = apierror.Error

type Operation

type Operation struct {
	Result []OperationResult `json:"result"`
	// HTTP status code
	Status    int64         `json:"status"`
	Timestamp string        `json:"timestamp" format:"ISO 8601"`
	JSON      operationJSON `json:"-"`
}

func (*Operation) UnmarshalJSON

func (r *Operation) UnmarshalJSON(data []byte) (err error)

type OperationResult

type OperationResult struct {
	// Operation Id
	ID int64 `json:"id"`
	// Operation end time
	Completed string `json:"completed" format:"ISO 8601"`
	// List of messages received from external APIs during operation processing
	IncomingMessages string `json:"incomingMessages"`
	// Operation performed during payment processing
	Operation OperationResultOperation `json:"operation"`
	// List of messages sent to external APIs during operation processing
	OutgoingMessages string `json:"outgoingMessages"`
	// Payment State
	PaymentState OperationResultPaymentState `json:"paymentState"`
	// Operation start time
	Started string              `json:"started" format:"ISO 8601"`
	JSON    operationResultJSON `json:"-"`
}

func (*OperationResult) UnmarshalJSON

func (r *OperationResult) UnmarshalJSON(data []byte) (err error)

type OperationResultOperation

type OperationResultOperation string

Operation performed during payment processing

const (
	OperationResultOperationCreatePayment     OperationResultOperation = "CREATE_PAYMENT"
	OperationResultOperationCheckout          OperationResultOperation = "CHECKOUT"
	OperationResultOperationCancel            OperationResultOperation = "CANCEL"
	OperationResultOperationConfirmation      OperationResultOperation = "CONFIRMATION"
	OperationResultOperationCascading         OperationResultOperation = "CASCADING"
	OperationResultOperationRedirect          OperationResultOperation = "REDIRECT"
	OperationResultOperationContinue          OperationResultOperation = "CONTINUE"
	OperationResultOperationContinueAntiFraud OperationResultOperation = "CONTINUE_ANTI_FRAUD"
	OperationResultOperationDetectFraud       OperationResultOperation = "DETECT_FRAUD"
	OperationResultOperationDeposit           OperationResultOperation = "DEPOSIT"
	OperationResultOperationWithdrawal        OperationResultOperation = "WITHDRAWAL"
	OperationResultOperationRefund            OperationResultOperation = "REFUND"
	OperationResultOperationChargeback        OperationResultOperation = "CHARGEBACK"
	OperationResultOperationCheckState        OperationResultOperation = "CHECK_STATE"
	OperationResultOperationHandleWebhook     OperationResultOperation = "HANDLE_WEBHOOK"
	OperationResultOperationManualUpdate      OperationResultOperation = "MANUAL_UPDATE"
)

func (OperationResultOperation) IsKnown

func (r OperationResultOperation) IsKnown() bool

type OperationResultPaymentState

type OperationResultPaymentState string

Payment State

const (
	OperationResultPaymentStateCheckout  OperationResultPaymentState = "CHECKOUT"
	OperationResultPaymentStatePending   OperationResultPaymentState = "PENDING"
	OperationResultPaymentStateCancelled OperationResultPaymentState = "CANCELLED"
	OperationResultPaymentStateDeclined  OperationResultPaymentState = "DECLINED"
	OperationResultPaymentStateCompleted OperationResultPaymentState = "COMPLETED"
)

func (OperationResultPaymentState) IsKnown

func (r OperationResultPaymentState) IsKnown() bool

type Payment

type Payment struct {
	Result PaymentResult `json:"result"`
	// HTTP status code
	Status    int64       `json:"status"`
	Timestamp string      `json:"timestamp" format:"ISO 8601"`
	JSON      paymentJSON `json:"-"`
}

func (*Payment) UnmarshalJSON

func (r *Payment) UnmarshalJSON(data []byte) (err error)

type PaymentListParams

type PaymentListParams struct {
	Created param.Field[PaymentListParamsCreated] `query:"created"`
	// The numbers of items to return. Default is 50.
	Limit param.Field[int64] `query:"limit"`
	// The number of items to skip before starting to collect the result set. Default
	// is 0.
	Offset  param.Field[int64]                    `query:"offset"`
	Updated param.Field[PaymentListParamsUpdated] `query:"updated"`
}

func (PaymentListParams) URLQuery

func (r PaymentListParams) URLQuery() (v url.Values)

URLQuery serializes PaymentListParams's query parameters as `url.Values`.

type PaymentListParamsCreated

type PaymentListParamsCreated struct {
	// If passed, return only payments created at or after the specified time
	Gte param.Field[string] `query:"gte" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
	// If passed, return only payments created strictly before the specified time
	Lt param.Field[string] `query:"lt" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
}

func (PaymentListParamsCreated) URLQuery

func (r PaymentListParamsCreated) URLQuery() (v url.Values)

URLQuery serializes PaymentListParamsCreated's query parameters as `url.Values`.

type PaymentListParamsUpdated

type PaymentListParamsUpdated struct {
	// If passed, return only payments updated at or after the specified time
	Gte param.Field[string] `query:"gte" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
	// If passed, return only payments updated strictly before the specified time
	Lt param.Field[string] `query:"lt" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
}

func (PaymentListParamsUpdated) URLQuery

func (r PaymentListParamsUpdated) URLQuery() (v url.Values)

URLQuery serializes PaymentListParamsUpdated's query parameters as `url.Values`.

type PaymentListResponse

type PaymentListResponse struct {
	// Indicates if there are more pages to return
	HasMore bool                        `json:"hasMore"`
	Result  []PaymentListResponseResult `json:"result"`
	// HTTP status code
	Status    int64                   `json:"status"`
	Timestamp string                  `json:"timestamp" format:"ISO 8601"`
	JSON      paymentListResponseJSON `json:"-"`
}

func (*PaymentListResponse) UnmarshalJSON

func (r *PaymentListResponse) UnmarshalJSON(data []byte) (err error)

type PaymentListResponseResult

type PaymentListResponseResult struct {
	// Payment Id
	ID string `json:"id"`
	// Amount sent to the payment provider
	Amount float64 `json:"amount"`
	// Customer's billing address
	BillingAddress PaymentListResponseResultBillingAddress `json:"billingAddress"`
	// Currency sent to the payment provider
	Currency string                            `json:"currency" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	Customer PaymentListResponseResultCustomer `json:"customer"`
	// Amount from payment request. Filled only if the request currency differs from
	// the currency sent to the payment provider.
	CustomerAmount float64 `json:"customerAmount"`
	// Currency from payment request. Filled only if it differs from the currency sent
	// to the payment provider.
	CustomerCurrency string `json:"customerCurrency" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	// Description of the transaction
	Description string `json:"description"`
	// Check 'Error Codes' section for details
	ErrorCode string `json:"errorCode"`
	// Provider fee. Filled only if supported by the provider.
	ExternalFeeAmount float64 `json:"externalFeeAmount"`
	// Provider fee currency. Filled only if supported by the provider.
	ExternalFeeCurrency string `json:"externalFeeCurrency" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	// Result code from external provider
	ExternalResultCode string `json:"externalResultCode"`
	// Initial transaction Id from payment request
	ParentPaymentID string `json:"parentPaymentId"`
	// Payment Method
	PaymentMethod        PaymentListResponseResultPaymentMethod        `json:"paymentMethod"`
	PaymentMethodDetails PaymentListResponseResultPaymentMethodDetails `json:"paymentMethodDetails"`
	// Payment Type
	PaymentType PaymentListResponseResultPaymentType `json:"paymentType"`
	// Token that can be used to continue the recurring chain
	RecurringToken string `json:"recurringToken"`
	// URL to redirect the customer
	RedirectURL string `json:"redirectUrl"`
	// referenceId from payment request
	ReferenceID string `json:"referenceId"`
	// Indicates whether this payment has started a recurring chain
	StartRecurring bool `json:"startRecurring"`
	// Payment State
	State PaymentListResponseResultState `json:"state"`
	// The name of the provider that was used to process this payment
	TerminalName string                        `json:"terminalName"`
	JSON         paymentListResponseResultJSON `json:"-"`
}

func (*PaymentListResponseResult) UnmarshalJSON

func (r *PaymentListResponseResult) UnmarshalJSON(data []byte) (err error)

type PaymentListResponseResultBillingAddress

type PaymentListResponseResultBillingAddress struct {
	// Line 1 of the address (e.g., Number, street, etc)
	AddressLine1 string `json:"addressLine1"`
	// Line 2 of the address (e.g., Suite, apt)
	AddressLine2 string `json:"addressLine2"`
	// City name
	City string `json:"city"`
	// 2-character IS0-3166-1 country code
	CountryCode string `json:"countryCode"`
	// Postal code
	PostalCode string `json:"postalCode"`
	// State code
	State string                                      `json:"state"`
	JSON  paymentListResponseResultBillingAddressJSON `json:"-"`
}

Customer's billing address

func (*PaymentListResponseResultBillingAddress) UnmarshalJSON

func (r *PaymentListResponseResultBillingAddress) UnmarshalJSON(data []byte) (err error)

type PaymentListResponseResultCustomer

type PaymentListResponseResultCustomer struct {
	// Customer account name in the provider's system. Used for some types of
	// withdrawals.
	AccountName string `json:"accountName"`
	// Customer account number in the provider's system. Used for some types of
	// withdrawals.
	AccountNumber string `json:"accountNumber"`
	// Customer bank. Used for some types of withdrawals.
	Bank string `json:"bank"`
	// Customer bank branch. Used for some types of withdrawals.
	BankBranch string `json:"bankBranch"`
	// Customer country of citizenship
	CitizenshipCountryCode string `json:"citizenshipCountryCode"`
	DateOfBirth            string `json:"dateOfBirth" format:"ISO 8601 (YYYY-MM-DD)"`
	// Date of the first deposit from the customer
	DateOfFirstDeposit string `json:"dateOfFirstDeposit" format:"ISO 8601 (YYYY-MM-DD)"`
	// How much the customer has deposited, in base currency
	DepositsAmount int64 `json:"depositsAmount"`
	// How many times the customer made a deposit
	DepositsCnt int64 `json:"depositsCnt"`
	// An identifier for the customer assigned by a government authority
	DocumentNumber string `json:"documentNumber"`
	// Document Type
	DocumentType PaymentListResponseResultCustomerDocumentType `json:"documentType"`
	// Email address of the customer
	Email     string `json:"email" format:"email"`
	FirstName string `json:"firstName"`
	// Indicates whether the customer has passed KYC verification
	KYCStatus bool   `json:"kycStatus"`
	LastName  string `json:"lastName"`
	// Customer preferred display language
	Locale string `json:"locale"`
	// Indicates whether the payment instrument (usually the card number) has passed
	// KYC verification
	PaymentInstrumentKYCStatus bool `json:"paymentInstrumentKycStatus"`
	// International phone number of the customer, without the '+'. Use a space as a
	// separator between the dialing country code and local phone number.
	Phone string `json:"phone"`
	// Id of the customer assigned by Merchant
	ReferenceID string `json:"referenceId"`
	// Identify the customer as belonging to a specific group that is used for routing
	RoutingGroup string `json:"routingGroup"`
	// How much the customer has withdrawn, in base currency
	WithdrawalsAmount int64 `json:"withdrawalsAmount"`
	// How many times the customer made a withdrawal
	WithdrawalsCnt int64                                 `json:"withdrawalsCnt"`
	JSON           paymentListResponseResultCustomerJSON `json:"-"`
}

func (*PaymentListResponseResultCustomer) UnmarshalJSON

func (r *PaymentListResponseResultCustomer) UnmarshalJSON(data []byte) (err error)

type PaymentListResponseResultCustomerDocumentType

type PaymentListResponseResultCustomerDocumentType string

Document Type

const (
	PaymentListResponseResultCustomerDocumentTypeArCdi  PaymentListResponseResultCustomerDocumentType = "AR_CDI"
	PaymentListResponseResultCustomerDocumentTypeArCuil PaymentListResponseResultCustomerDocumentType = "AR_CUIL"
	PaymentListResponseResultCustomerDocumentTypeArCuit PaymentListResponseResultCustomerDocumentType = "AR_CUIT"
	PaymentListResponseResultCustomerDocumentTypeArDni  PaymentListResponseResultCustomerDocumentType = "AR_DNI"
	PaymentListResponseResultCustomerDocumentTypeArOtro PaymentListResponseResultCustomerDocumentType = "AR_OTRO"
	PaymentListResponseResultCustomerDocumentTypeBrCnpj PaymentListResponseResultCustomerDocumentType = "BR_CNPJ"
	PaymentListResponseResultCustomerDocumentTypeBrCpf  PaymentListResponseResultCustomerDocumentType = "BR_CPF"
	PaymentListResponseResultCustomerDocumentTypeClOtro PaymentListResponseResultCustomerDocumentType = "CL_OTRO"
	PaymentListResponseResultCustomerDocumentTypeClRun  PaymentListResponseResultCustomerDocumentType = "CL_RUN"
	PaymentListResponseResultCustomerDocumentTypeClRut  PaymentListResponseResultCustomerDocumentType = "CL_RUT"
	PaymentListResponseResultCustomerDocumentTypeCoCc   PaymentListResponseResultCustomerDocumentType = "CO_CC"
	PaymentListResponseResultCustomerDocumentTypeCoCe   PaymentListResponseResultCustomerDocumentType = "CO_CE"
	PaymentListResponseResultCustomerDocumentTypeCoDl   PaymentListResponseResultCustomerDocumentType = "CO_DL"
	PaymentListResponseResultCustomerDocumentTypeCoDni  PaymentListResponseResultCustomerDocumentType = "CO_DNI"
	PaymentListResponseResultCustomerDocumentTypeCoNe   PaymentListResponseResultCustomerDocumentType = "CO_NE"
	PaymentListResponseResultCustomerDocumentTypeCoNit  PaymentListResponseResultCustomerDocumentType = "CO_NIT"
	PaymentListResponseResultCustomerDocumentTypeCoPp   PaymentListResponseResultCustomerDocumentType = "CO_PP"
	PaymentListResponseResultCustomerDocumentTypeCoSS   PaymentListResponseResultCustomerDocumentType = "CO_SS"
	PaymentListResponseResultCustomerDocumentTypeCoTi   PaymentListResponseResultCustomerDocumentType = "CO_TI"
	PaymentListResponseResultCustomerDocumentTypeCrCdi  PaymentListResponseResultCustomerDocumentType = "CR_CDI"
	PaymentListResponseResultCustomerDocumentTypeEcDni  PaymentListResponseResultCustomerDocumentType = "EC_DNI"
	PaymentListResponseResultCustomerDocumentTypeEcPp   PaymentListResponseResultCustomerDocumentType = "EC_PP"
	PaymentListResponseResultCustomerDocumentTypeEcRuc  PaymentListResponseResultCustomerDocumentType = "EC_RUC"
	PaymentListResponseResultCustomerDocumentTypeGtCui  PaymentListResponseResultCustomerDocumentType = "GT_CUI"
	PaymentListResponseResultCustomerDocumentTypeGtDpi  PaymentListResponseResultCustomerDocumentType = "GT_DPI"
	PaymentListResponseResultCustomerDocumentTypeGtNit  PaymentListResponseResultCustomerDocumentType = "GT_NIT"
	PaymentListResponseResultCustomerDocumentTypeMxCurp PaymentListResponseResultCustomerDocumentType = "MX_CURP"
	PaymentListResponseResultCustomerDocumentTypeMxIfe  PaymentListResponseResultCustomerDocumentType = "MX_IFE"
	PaymentListResponseResultCustomerDocumentTypeMxPp   PaymentListResponseResultCustomerDocumentType = "MX_PP"
	PaymentListResponseResultCustomerDocumentTypeMxRfc  PaymentListResponseResultCustomerDocumentType = "MX_RFC"
	PaymentListResponseResultCustomerDocumentTypePaCip  PaymentListResponseResultCustomerDocumentType = "PA_CIP"
	PaymentListResponseResultCustomerDocumentTypePeCe   PaymentListResponseResultCustomerDocumentType = "PE_CE"
	PaymentListResponseResultCustomerDocumentTypePeDni  PaymentListResponseResultCustomerDocumentType = "PE_DNI"
	PaymentListResponseResultCustomerDocumentTypePeOtro PaymentListResponseResultCustomerDocumentType = "PE_OTRO"
	PaymentListResponseResultCustomerDocumentTypePePp   PaymentListResponseResultCustomerDocumentType = "PE_PP"
	PaymentListResponseResultCustomerDocumentTypePeRuc  PaymentListResponseResultCustomerDocumentType = "PE_RUC"
)

func (PaymentListResponseResultCustomerDocumentType) IsKnown

type PaymentListResponseResultPaymentMethod

type PaymentListResponseResultPaymentMethod string

Payment Method

const (
	PaymentListResponseResultPaymentMethodBasicCard            PaymentListResponseResultPaymentMethod = "BASIC_CARD"
	PaymentListResponseResultPaymentMethodCrypto               PaymentListResponseResultPaymentMethod = "CRYPTO"
	PaymentListResponseResultPaymentMethodFlexepin             PaymentListResponseResultPaymentMethod = "FLEXEPIN"
	PaymentListResponseResultPaymentMethodMacropay             PaymentListResponseResultPaymentMethod = "MACROPAY"
	PaymentListResponseResultPaymentMethodSkrill               PaymentListResponseResultPaymentMethod = "SKRILL"
	PaymentListResponseResultPaymentMethodPayretailers         PaymentListResponseResultPaymentMethod = "PAYRETAILERS"
	PaymentListResponseResultPaymentMethodLocalpayment         PaymentListResponseResultPaymentMethod = "LOCALPAYMENT"
	PaymentListResponseResultPaymentMethodMonnet               PaymentListResponseResultPaymentMethod = "MONNET"
	PaymentListResponseResultPaymentMethodPaypal               PaymentListResponseResultPaymentMethod = "PAYPAL"
	PaymentListResponseResultPaymentMethodNeteller             PaymentListResponseResultPaymentMethod = "NETELLER"
	PaymentListResponseResultPaymentMethodTrustpayments        PaymentListResponseResultPaymentMethod = "TRUSTPAYMENTS"
	PaymentListResponseResultPaymentMethodPaymaxis             PaymentListResponseResultPaymentMethod = "PAYMAXIS"
	PaymentListResponseResultPaymentMethodGate8Transact        PaymentListResponseResultPaymentMethod = "GATE8TRANSACT"
	PaymentListResponseResultPaymentMethodTink                 PaymentListResponseResultPaymentMethod = "TINK"
	PaymentListResponseResultPaymentMethodB2Binpay             PaymentListResponseResultPaymentMethod = "B2BINPAY"
	PaymentListResponseResultPaymentMethodClick                PaymentListResponseResultPaymentMethod = "CLICK"
	PaymentListResponseResultPaymentMethodMonetix              PaymentListResponseResultPaymentMethod = "MONETIX"
	PaymentListResponseResultPaymentMethodPerfectmoney         PaymentListResponseResultPaymentMethod = "PERFECTMONEY"
	PaymentListResponseResultPaymentMethodVolt                 PaymentListResponseResultPaymentMethod = "VOLT"
	PaymentListResponseResultPaymentMethodKesspay              PaymentListResponseResultPaymentMethod = "KESSPAY"
	PaymentListResponseResultPaymentMethodBillline             PaymentListResponseResultPaymentMethod = "BILLLINE"
	PaymentListResponseResultPaymentMethodNgenius              PaymentListResponseResultPaymentMethod = "NGENIUS"
	PaymentListResponseResultPaymentMethodAstropay             PaymentListResponseResultPaymentMethod = "ASTROPAY"
	PaymentListResponseResultPaymentMethodAlycepay             PaymentListResponseResultPaymentMethod = "ALYCEPAY"
	PaymentListResponseResultPaymentMethodPix                  PaymentListResponseResultPaymentMethod = "PIX"
	PaymentListResponseResultPaymentMethodBoleto               PaymentListResponseResultPaymentMethod = "BOLETO"
	PaymentListResponseResultPaymentMethodUpi                  PaymentListResponseResultPaymentMethod = "UPI"
	PaymentListResponseResultPaymentMethodPaytm                PaymentListResponseResultPaymentMethod = "PAYTM"
	PaymentListResponseResultPaymentMethodNetbanking           PaymentListResponseResultPaymentMethod = "NETBANKING"
	PaymentListResponseResultPaymentMethodFinrax               PaymentListResponseResultPaymentMethod = "FINRAX"
	PaymentListResponseResultPaymentMethodSpoynt               PaymentListResponseResultPaymentMethod = "SPOYNT"
	PaymentListResponseResultPaymentMethodXinpay               PaymentListResponseResultPaymentMethod = "XINPAY"
	PaymentListResponseResultPaymentMethodOmnimatrix           PaymentListResponseResultPaymentMethod = "OMNIMATRIX"
	PaymentListResponseResultPaymentMethodDpopay               PaymentListResponseResultPaymentMethod = "DPOPAY"
	PaymentListResponseResultPaymentMethodExternalHpp          PaymentListResponseResultPaymentMethod = "EXTERNAL_HPP"
	PaymentListResponseResultPaymentMethodXanpay               PaymentListResponseResultPaymentMethod = "XANPAY"
	PaymentListResponseResultPaymentMethodInrpay               PaymentListResponseResultPaymentMethod = "INRPAY"
	PaymentListResponseResultPaymentMethodAri10                PaymentListResponseResultPaymentMethod = "ARI10"
	PaymentListResponseResultPaymentMethodSofort               PaymentListResponseResultPaymentMethod = "SOFORT"
	PaymentListResponseResultPaymentMethodGiropay              PaymentListResponseResultPaymentMethod = "GIROPAY"
	PaymentListResponseResultPaymentMethodPaysafecard          PaymentListResponseResultPaymentMethod = "PAYSAFECARD"
	PaymentListResponseResultPaymentMethodPaysafecash          PaymentListResponseResultPaymentMethod = "PAYSAFECASH"
	PaymentListResponseResultPaymentMethodOpenBanking          PaymentListResponseResultPaymentMethod = "OPEN_BANKING"
	PaymentListResponseResultPaymentMethodKlarna               PaymentListResponseResultPaymentMethod = "KLARNA"
	PaymentListResponseResultPaymentMethodSpei                 PaymentListResponseResultPaymentMethod = "SPEI"
	PaymentListResponseResultPaymentMethodPaycash              PaymentListResponseResultPaymentMethod = "PAYCASH"
	PaymentListResponseResultPaymentMethodRapipago             PaymentListResponseResultPaymentMethod = "RAPIPAGO"
	PaymentListResponseResultPaymentMethodPagofacil            PaymentListResponseResultPaymentMethod = "PAGOFACIL"
	PaymentListResponseResultPaymentMethodRapidtransfer        PaymentListResponseResultPaymentMethod = "RAPIDTRANSFER"
	PaymentListResponseResultPaymentMethodMobileMoney          PaymentListResponseResultPaymentMethod = "MOBILE_MONEY"
	PaymentListResponseResultPaymentMethodInterac              PaymentListResponseResultPaymentMethod = "INTERAC"
	PaymentListResponseResultPaymentMethodInteracEto           PaymentListResponseResultPaymentMethod = "INTERAC_ETO"
	PaymentListResponseResultPaymentMethodInteracRto           PaymentListResponseResultPaymentMethod = "INTERAC_RTO"
	PaymentListResponseResultPaymentMethodInteracACH           PaymentListResponseResultPaymentMethod = "INTERAC_ACH"
	PaymentListResponseResultPaymentMethodPicpay               PaymentListResponseResultPaymentMethod = "PICPAY"
	PaymentListResponseResultPaymentMethodMollie               PaymentListResponseResultPaymentMethod = "MOLLIE"
	PaymentListResponseResultPaymentMethodTed                  PaymentListResponseResultPaymentMethod = "TED"
	PaymentListResponseResultPaymentMethodZipay                PaymentListResponseResultPaymentMethod = "ZIPAY"
	PaymentListResponseResultPaymentMethodPse                  PaymentListResponseResultPaymentMethod = "PSE"
	PaymentListResponseResultPaymentMethodEfecty               PaymentListResponseResultPaymentMethod = "EFECTY"
	PaymentListResponseResultPaymentMethodBanktransfer         PaymentListResponseResultPaymentMethod = "BANKTRANSFER"
	PaymentListResponseResultPaymentMethodPec                  PaymentListResponseResultPaymentMethod = "PEC"
	PaymentListResponseResultPaymentMethodOxxo                 PaymentListResponseResultPaymentMethod = "OXXO"
	PaymentListResponseResultPaymentMethodWebpay               PaymentListResponseResultPaymentMethod = "WEBPAY"
	PaymentListResponseResultPaymentMethodPagoefectivo         PaymentListResponseResultPaymentMethod = "PAGOEFECTIVO"
	PaymentListResponseResultPaymentMethodMifinity             PaymentListResponseResultPaymentMethod = "MIFINITY"
	PaymentListResponseResultPaymentMethodPayport              PaymentListResponseResultPaymentMethod = "PAYPORT"
	PaymentListResponseResultPaymentMethodJetoncash            PaymentListResponseResultPaymentMethod = "JETONCASH"
	PaymentListResponseResultPaymentMethodJetonwallet          PaymentListResponseResultPaymentMethod = "JETONWALLET"
	PaymentListResponseResultPaymentMethodNoda                 PaymentListResponseResultPaymentMethod = "NODA"
	PaymentListResponseResultPaymentMethodNodaRevolut          PaymentListResponseResultPaymentMethod = "NODA_REVOLUT"
	PaymentListResponseResultPaymentMethodAlfakit              PaymentListResponseResultPaymentMethod = "ALFAKIT"
	PaymentListResponseResultPaymentMethodPayfun               PaymentListResponseResultPaymentMethod = "PAYFUN"
	PaymentListResponseResultPaymentMethodEmanat               PaymentListResponseResultPaymentMethod = "EMANAT"
	PaymentListResponseResultPaymentMethodM10                  PaymentListResponseResultPaymentMethod = "M10"
	PaymentListResponseResultPaymentMethodRubpay               PaymentListResponseResultPaymentMethod = "RUBPAY"
	PaymentListResponseResultPaymentMethodMonerchy             PaymentListResponseResultPaymentMethod = "MONERCHY"
	PaymentListResponseResultPaymentMethodMuchbetter           PaymentListResponseResultPaymentMethod = "MUCHBETTER"
	PaymentListResponseResultPaymentMethodYapily               PaymentListResponseResultPaymentMethod = "YAPILY"
	PaymentListResponseResultPaymentMethodInai                 PaymentListResponseResultPaymentMethod = "INAI"
	PaymentListResponseResultPaymentMethodImps                 PaymentListResponseResultPaymentMethod = "IMPS"
	PaymentListResponseResultPaymentMethodRtgs                 PaymentListResponseResultPaymentMethod = "RTGS"
	PaymentListResponseResultPaymentMethodPayid                PaymentListResponseResultPaymentMethod = "PAYID"
	PaymentListResponseResultPaymentMethodZotapay              PaymentListResponseResultPaymentMethod = "ZOTAPAY"
	PaymentListResponseResultPaymentMethodSbp                  PaymentListResponseResultPaymentMethod = "SBP"
	PaymentListResponseResultPaymentMethodP2PCard              PaymentListResponseResultPaymentMethod = "P2P_CARD"
	PaymentListResponseResultPaymentMethodP2PIban              PaymentListResponseResultPaymentMethod = "P2P_IBAN"
	PaymentListResponseResultPaymentMethodP2PSbp               PaymentListResponseResultPaymentMethod = "P2P_SBP"
	PaymentListResponseResultPaymentMethodP2PMobile            PaymentListResponseResultPaymentMethod = "P2P_MOBILE"
	PaymentListResponseResultPaymentMethodPush                 PaymentListResponseResultPaymentMethod = "PUSH"
	PaymentListResponseResultPaymentMethodGateiq               PaymentListResponseResultPaymentMethod = "GATEIQ"
	PaymentListResponseResultPaymentMethodViettel              PaymentListResponseResultPaymentMethod = "VIETTEL"
	PaymentListResponseResultPaymentMethodZalo                 PaymentListResponseResultPaymentMethod = "ZALO"
	PaymentListResponseResultPaymentMethodQr                   PaymentListResponseResultPaymentMethod = "QR"
	PaymentListResponseResultPaymentMethodCup                  PaymentListResponseResultPaymentMethod = "CUP"
	PaymentListResponseResultPaymentMethodCodi                 PaymentListResponseResultPaymentMethod = "CODI"
	PaymentListResponseResultPaymentMethodPay2Play             PaymentListResponseResultPaymentMethod = "PAY2PLAY"
	PaymentListResponseResultPaymentMethodBkash                PaymentListResponseResultPaymentMethod = "BKASH"
	PaymentListResponseResultPaymentMethodNagad                PaymentListResponseResultPaymentMethod = "NAGAD"
	PaymentListResponseResultPaymentMethodRocket               PaymentListResponseResultPaymentMethod = "ROCKET"
	PaymentListResponseResultPaymentMethodVirtualAccount       PaymentListResponseResultPaymentMethod = "VIRTUAL_ACCOUNT"
	PaymentListResponseResultPaymentMethodMultibanco           PaymentListResponseResultPaymentMethod = "MULTIBANCO"
	PaymentListResponseResultPaymentMethodBlik                 PaymentListResponseResultPaymentMethod = "BLIK"
	PaymentListResponseResultPaymentMethodMbway                PaymentListResponseResultPaymentMethod = "MBWAY"
	PaymentListResponseResultPaymentMethodP24                  PaymentListResponseResultPaymentMethod = "P24"
	PaymentListResponseResultPaymentMethodMistercash           PaymentListResponseResultPaymentMethod = "MISTERCASH"
	PaymentListResponseResultPaymentMethodMach                 PaymentListResponseResultPaymentMethod = "MACH"
	PaymentListResponseResultPaymentMethodKhipu                PaymentListResponseResultPaymentMethod = "KHIPU"
	PaymentListResponseResultPaymentMethodNeft                 PaymentListResponseResultPaymentMethod = "NEFT"
	PaymentListResponseResultPaymentMethodSticpay              PaymentListResponseResultPaymentMethod = "STICPAY"
	PaymentListResponseResultPaymentMethodSberpay              PaymentListResponseResultPaymentMethod = "SBERPAY"
	PaymentListResponseResultPaymentMethodMobileCommerce       PaymentListResponseResultPaymentMethod = "MOBILE_COMMERCE"
	PaymentListResponseResultPaymentMethodBinancePay           PaymentListResponseResultPaymentMethod = "BINANCE_PAY"
	PaymentListResponseResultPaymentMethodMpay                 PaymentListResponseResultPaymentMethod = "MPAY"
	PaymentListResponseResultPaymentMethodChek                 PaymentListResponseResultPaymentMethod = "CHEK"
	PaymentListResponseResultPaymentMethodKlapEfectivo         PaymentListResponseResultPaymentMethod = "KLAP_EFECTIVO"
	PaymentListResponseResultPaymentMethodKlapTransferencia    PaymentListResponseResultPaymentMethod = "KLAP_TRANSFERENCIA"
	PaymentListResponseResultPaymentMethodPago46               PaymentListResponseResultPaymentMethod = "PAGO46"
	PaymentListResponseResultPaymentMethodHites                PaymentListResponseResultPaymentMethod = "HITES"
	PaymentListResponseResultPaymentMethodServifacil           PaymentListResponseResultPaymentMethod = "SERVIFACIL"
	PaymentListResponseResultPaymentMethodOpenpayd             PaymentListResponseResultPaymentMethod = "OPENPAYD"
	PaymentListResponseResultPaymentMethodFawry                PaymentListResponseResultPaymentMethod = "FAWRY"
	PaymentListResponseResultPaymentMethodEps                  PaymentListResponseResultPaymentMethod = "EPS"
	PaymentListResponseResultPaymentMethodIdeal                PaymentListResponseResultPaymentMethod = "IDEAL"
	PaymentListResponseResultPaymentMethodTrustly              PaymentListResponseResultPaymentMethod = "TRUSTLY"
	PaymentListResponseResultPaymentMethodUssd                 PaymentListResponseResultPaymentMethod = "USSD"
	PaymentListResponseResultPaymentMethodMpesa                PaymentListResponseResultPaymentMethod = "MPESA"
	PaymentListResponseResultPaymentMethodEnaira               PaymentListResponseResultPaymentMethod = "ENAIRA"
	PaymentListResponseResultPaymentMethodOnevoucher           PaymentListResponseResultPaymentMethod = "ONEVOUCHER"
	PaymentListResponseResultPaymentMethodBancontact           PaymentListResponseResultPaymentMethod = "BANCONTACT"
	PaymentListResponseResultPaymentMethodSwish                PaymentListResponseResultPaymentMethod = "SWISH"
	PaymentListResponseResultPaymentMethodEft                  PaymentListResponseResultPaymentMethod = "EFT"
	PaymentListResponseResultPaymentMethodGcash                PaymentListResponseResultPaymentMethod = "GCASH"
	PaymentListResponseResultPaymentMethodPaymaya              PaymentListResponseResultPaymentMethod = "PAYMAYA"
	PaymentListResponseResultPaymentMethodPagoMovil            PaymentListResponseResultPaymentMethod = "PAGO_MOVIL"
	PaymentListResponseResultPaymentMethodPagoMovilInst        PaymentListResponseResultPaymentMethod = "PAGO_MOVIL_INST"
	PaymentListResponseResultPaymentMethodBiopago              PaymentListResponseResultPaymentMethod = "BIOPAGO"
	PaymentListResponseResultPaymentMethodCash                 PaymentListResponseResultPaymentMethod = "CASH"
	PaymentListResponseResultPaymentMethodVoucherry            PaymentListResponseResultPaymentMethod = "VOUCHERRY"
	PaymentListResponseResultPaymentMethodApplepay             PaymentListResponseResultPaymentMethod = "APPLEPAY"
	PaymentListResponseResultPaymentMethodGooglepay            PaymentListResponseResultPaymentMethod = "GOOGLEPAY"
	PaymentListResponseResultPaymentMethodBrite                PaymentListResponseResultPaymentMethod = "BRITE"
	PaymentListResponseResultPaymentMethodVouchstar            PaymentListResponseResultPaymentMethod = "VOUCHSTAR"
	PaymentListResponseResultPaymentMethodRevolut              PaymentListResponseResultPaymentMethod = "REVOLUT"
	PaymentListResponseResultPaymentMethodOnlineBanking        PaymentListResponseResultPaymentMethod = "ONLINE_BANKING"
	PaymentListResponseResultPaymentMethodPromptpay            PaymentListResponseResultPaymentMethod = "PROMPTPAY"
	PaymentListResponseResultPaymentMethodTruemoney            PaymentListResponseResultPaymentMethod = "TRUEMONEY"
	PaymentListResponseResultPaymentMethodMomopayVn            PaymentListResponseResultPaymentMethod = "MOMOPAY_VN"
	PaymentListResponseResultPaymentMethodMomopayRw            PaymentListResponseResultPaymentMethod = "MOMOPAY_RW"
	PaymentListResponseResultPaymentMethodVnpayQr              PaymentListResponseResultPaymentMethod = "VNPAY_QR"
	PaymentListResponseResultPaymentMethodN26                  PaymentListResponseResultPaymentMethod = "N26"
	PaymentListResponseResultPaymentMethodWise                 PaymentListResponseResultPaymentMethod = "WISE"
	PaymentListResponseResultPaymentMethodPaydoWallet          PaymentListResponseResultPaymentMethod = "PAYDO_WALLET"
	PaymentListResponseResultPaymentMethodPapara               PaymentListResponseResultPaymentMethod = "PAPARA"
	PaymentListResponseResultPaymentMethodPayoutSepaBatch      PaymentListResponseResultPaymentMethod = "PAYOUT_SEPA_BATCH"
	PaymentListResponseResultPaymentMethodPayoutNonsepaRequest PaymentListResponseResultPaymentMethod = "PAYOUT_NONSEPA_REQUEST"
)

func (PaymentListResponseResultPaymentMethod) IsKnown

type PaymentListResponseResultPaymentMethodDetails

type PaymentListResponseResultPaymentMethodDetails struct {
	// Card expiration month (for BASIC_CARD payment method only)
	CardExpiryMonth string `json:"cardExpiryMonth"`
	// Card expiration year (for BASIC_CARD payment method only)
	CardExpiryYear string `json:"cardExpiryYear"`
	// Cardholder name (for BASIC_CARD payment method only)
	CardholderName string `json:"cardholderName"`
	// Card issuing country code (for BASIC_CARD payment method only)
	CardIssuingCountryCode string `json:"cardIssuingCountryCode"`
	// Customer account Id in external system or masked card PAN
	CustomerAccountNumber string                                            `json:"customerAccountNumber"`
	JSON                  paymentListResponseResultPaymentMethodDetailsJSON `json:"-"`
}

func (*PaymentListResponseResultPaymentMethodDetails) UnmarshalJSON

func (r *PaymentListResponseResultPaymentMethodDetails) UnmarshalJSON(data []byte) (err error)

type PaymentListResponseResultPaymentType

type PaymentListResponseResultPaymentType string

Payment Type

const (
	PaymentListResponseResultPaymentTypeDeposit    PaymentListResponseResultPaymentType = "DEPOSIT"
	PaymentListResponseResultPaymentTypeWithdrawal PaymentListResponseResultPaymentType = "WITHDRAWAL"
	PaymentListResponseResultPaymentTypeRefund     PaymentListResponseResultPaymentType = "REFUND"
)

func (PaymentListResponseResultPaymentType) IsKnown

type PaymentListResponseResultState

type PaymentListResponseResultState string

Payment State

const (
	PaymentListResponseResultStateCheckout  PaymentListResponseResultState = "CHECKOUT"
	PaymentListResponseResultStatePending   PaymentListResponseResultState = "PENDING"
	PaymentListResponseResultStateCancelled PaymentListResponseResultState = "CANCELLED"
	PaymentListResponseResultStateDeclined  PaymentListResponseResultState = "DECLINED"
	PaymentListResponseResultStateCompleted PaymentListResponseResultState = "COMPLETED"
)

func (PaymentListResponseResultState) IsKnown

type PaymentNewParams

type PaymentNewParams struct {
	// Payment currency
	Currency param.Field[string] `json:"currency,required" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	// Payment Type
	PaymentType param.Field[PaymentNewParamsPaymentType] `json:"paymentType,required"`
	// Additional parameters required by some payment providers. Contact support for
	// more information.
	AdditionalParameters param.Field[map[string]string] `json:"additionalParameters"`
	// Payment amount
	Amount param.Field[float64] `json:"amount"`
	// Customer's billing address
	BillingAddress param.Field[PaymentNewParamsBillingAddress] `json:"billingAddress"`
	// You must be PCI DSS compliant to collect card data on your side. If you are not
	// certified, do not add this field to your request and we will collect the data on
	// our page.
	Card     param.Field[PaymentNewParamsCard]     `json:"card"`
	Customer param.Field[PaymentNewParamsCustomer] `json:"customer"`
	// Description of the transaction shown to the Customer. Can be sent outside the
	// system.
	Description param.Field[string] `json:"description"`
	// Id of initial deposit for refunds, Id of initial recurring payment for
	// subsequent payments
	ParentPaymentID param.Field[string] `json:"parentPaymentId"`
	// Payment Method
	PaymentMethod param.Field[PaymentNewParamsPaymentMethod] `json:"paymentMethod"`
	// To continue recurring chain, send a token from a previously initiated recurring
	// payment.
	RecurringToken param.Field[string] `json:"recurringToken"`
	// Reference assigned by Merchant. Will not go outside the system. Will be sent
	// unchanged in the PaymentResponse.
	ReferenceID param.Field[string] `json:"referenceId"`
	// URL to redirect Customer after processing
	ReturnURL param.Field[string] `json:"returnUrl"`
	// Send 'true' if you want this payment to initiate recurring chain. Default is
	// 'false'.
	StartRecurring param.Field[bool] `json:"startRecurring"`
	// Subscription to bill customers at regular intervals. Used only with
	// 'startRecurring=true'.
	Subscription param.Field[PaymentNewParamsSubscription] `json:"subscription"`
	// Url to receive payment status notifications
	WebhookURL param.Field[string] `json:"webhookUrl"`
}

func (PaymentNewParams) MarshalJSON

func (r PaymentNewParams) MarshalJSON() (data []byte, err error)

type PaymentNewParamsBillingAddress

type PaymentNewParamsBillingAddress struct {
	// Line 1 of the address (e.g., Number, street, etc)
	AddressLine1 param.Field[string] `json:"addressLine1"`
	// Line 2 of the address (e.g., Suite, apt)
	AddressLine2 param.Field[string] `json:"addressLine2"`
	// City name
	City param.Field[string] `json:"city"`
	// 2-character IS0-3166-1 country code
	CountryCode param.Field[string] `json:"countryCode"`
	// Postal code
	PostalCode param.Field[string] `json:"postalCode"`
	// State code
	State param.Field[string] `json:"state"`
}

Customer's billing address

func (PaymentNewParamsBillingAddress) MarshalJSON

func (r PaymentNewParamsBillingAddress) MarshalJSON() (data []byte, err error)

type PaymentNewParamsCard

type PaymentNewParamsCard struct {
	// Cardholder's name printed on the card
	CardholderName param.Field[string] `json:"cardholderName"`
	// Card primary account number (PAN). All non-numeric characters will be ignored.
	CardNumber param.Field[string] `json:"cardNumber"`
	// Card security code (CVV2 / CVC2 / CAV2)
	CardSecurityCode param.Field[string] `json:"cardSecurityCode"`
	// Card expiration month, 2 digits
	ExpiryMonth param.Field[string] `json:"expiryMonth"`
	// Card expiration year, 4 digits
	ExpiryYear param.Field[string] `json:"expiryYear"`
}

You must be PCI DSS compliant to collect card data on your side. If you are not certified, do not add this field to your request and we will collect the data on our page.

func (PaymentNewParamsCard) MarshalJSON

func (r PaymentNewParamsCard) MarshalJSON() (data []byte, err error)

type PaymentNewParamsCustomer

type PaymentNewParamsCustomer struct {
	// Customer account name in the provider's system. Used for some types of
	// withdrawals.
	AccountName param.Field[string] `json:"accountName"`
	// Customer account number in the provider's system. Used for some types of
	// withdrawals.
	AccountNumber param.Field[string] `json:"accountNumber"`
	// Customer bank. Used for some types of withdrawals.
	Bank param.Field[string] `json:"bank"`
	// Customer bank branch. Used for some types of withdrawals.
	BankBranch param.Field[string] `json:"bankBranch"`
	// Customer country of citizenship
	CitizenshipCountryCode param.Field[string] `json:"citizenshipCountryCode"`
	DateOfBirth            param.Field[string] `json:"dateOfBirth" format:"ISO 8601 (YYYY-MM-DD)"`
	// Date of the first deposit from the customer
	DateOfFirstDeposit param.Field[string] `json:"dateOfFirstDeposit" format:"ISO 8601 (YYYY-MM-DD)"`
	// How much the customer has deposited, in base currency
	DepositsAmount param.Field[int64] `json:"depositsAmount"`
	// How many times the customer made a deposit
	DepositsCnt param.Field[int64] `json:"depositsCnt"`
	// An identifier for the customer assigned by a government authority
	DocumentNumber param.Field[string] `json:"documentNumber"`
	// Document Type
	DocumentType param.Field[PaymentNewParamsCustomerDocumentType] `json:"documentType"`
	// Email address of the customer
	Email     param.Field[string] `json:"email" format:"email"`
	FirstName param.Field[string] `json:"firstName"`
	// Indicates whether the customer has passed KYC verification
	KYCStatus param.Field[bool]   `json:"kycStatus"`
	LastName  param.Field[string] `json:"lastName"`
	// Customer preferred display language
	Locale param.Field[string] `json:"locale"`
	// Indicates whether the payment instrument (usually the card number) has passed
	// KYC verification
	PaymentInstrumentKYCStatus param.Field[bool] `json:"paymentInstrumentKycStatus"`
	// International phone number of the customer, without the '+'. Use a space as a
	// separator between the dialing country code and local phone number.
	Phone param.Field[string] `json:"phone"`
	// Id of the customer assigned by Merchant
	ReferenceID param.Field[string] `json:"referenceId"`
	// Identify the customer as belonging to a specific group that is used for routing
	RoutingGroup param.Field[string] `json:"routingGroup"`
	// How much the customer has withdrawn, in base currency
	WithdrawalsAmount param.Field[int64] `json:"withdrawalsAmount"`
	// How many times the customer made a withdrawal
	WithdrawalsCnt param.Field[int64] `json:"withdrawalsCnt"`
}

func (PaymentNewParamsCustomer) MarshalJSON

func (r PaymentNewParamsCustomer) MarshalJSON() (data []byte, err error)

type PaymentNewParamsCustomerDocumentType

type PaymentNewParamsCustomerDocumentType string

Document Type

const (
	PaymentNewParamsCustomerDocumentTypeArCdi  PaymentNewParamsCustomerDocumentType = "AR_CDI"
	PaymentNewParamsCustomerDocumentTypeArCuil PaymentNewParamsCustomerDocumentType = "AR_CUIL"
	PaymentNewParamsCustomerDocumentTypeArCuit PaymentNewParamsCustomerDocumentType = "AR_CUIT"
	PaymentNewParamsCustomerDocumentTypeArDni  PaymentNewParamsCustomerDocumentType = "AR_DNI"
	PaymentNewParamsCustomerDocumentTypeArOtro PaymentNewParamsCustomerDocumentType = "AR_OTRO"
	PaymentNewParamsCustomerDocumentTypeBrCnpj PaymentNewParamsCustomerDocumentType = "BR_CNPJ"
	PaymentNewParamsCustomerDocumentTypeBrCpf  PaymentNewParamsCustomerDocumentType = "BR_CPF"
	PaymentNewParamsCustomerDocumentTypeClOtro PaymentNewParamsCustomerDocumentType = "CL_OTRO"
	PaymentNewParamsCustomerDocumentTypeClRun  PaymentNewParamsCustomerDocumentType = "CL_RUN"
	PaymentNewParamsCustomerDocumentTypeClRut  PaymentNewParamsCustomerDocumentType = "CL_RUT"
	PaymentNewParamsCustomerDocumentTypeCoCc   PaymentNewParamsCustomerDocumentType = "CO_CC"
	PaymentNewParamsCustomerDocumentTypeCoCe   PaymentNewParamsCustomerDocumentType = "CO_CE"
	PaymentNewParamsCustomerDocumentTypeCoDl   PaymentNewParamsCustomerDocumentType = "CO_DL"
	PaymentNewParamsCustomerDocumentTypeCoDni  PaymentNewParamsCustomerDocumentType = "CO_DNI"
	PaymentNewParamsCustomerDocumentTypeCoNe   PaymentNewParamsCustomerDocumentType = "CO_NE"
	PaymentNewParamsCustomerDocumentTypeCoNit  PaymentNewParamsCustomerDocumentType = "CO_NIT"
	PaymentNewParamsCustomerDocumentTypeCoPp   PaymentNewParamsCustomerDocumentType = "CO_PP"
	PaymentNewParamsCustomerDocumentTypeCoSS   PaymentNewParamsCustomerDocumentType = "CO_SS"
	PaymentNewParamsCustomerDocumentTypeCoTi   PaymentNewParamsCustomerDocumentType = "CO_TI"
	PaymentNewParamsCustomerDocumentTypeCrCdi  PaymentNewParamsCustomerDocumentType = "CR_CDI"
	PaymentNewParamsCustomerDocumentTypeEcDni  PaymentNewParamsCustomerDocumentType = "EC_DNI"
	PaymentNewParamsCustomerDocumentTypeEcPp   PaymentNewParamsCustomerDocumentType = "EC_PP"
	PaymentNewParamsCustomerDocumentTypeEcRuc  PaymentNewParamsCustomerDocumentType = "EC_RUC"
	PaymentNewParamsCustomerDocumentTypeGtCui  PaymentNewParamsCustomerDocumentType = "GT_CUI"
	PaymentNewParamsCustomerDocumentTypeGtDpi  PaymentNewParamsCustomerDocumentType = "GT_DPI"
	PaymentNewParamsCustomerDocumentTypeGtNit  PaymentNewParamsCustomerDocumentType = "GT_NIT"
	PaymentNewParamsCustomerDocumentTypeMxCurp PaymentNewParamsCustomerDocumentType = "MX_CURP"
	PaymentNewParamsCustomerDocumentTypeMxIfe  PaymentNewParamsCustomerDocumentType = "MX_IFE"
	PaymentNewParamsCustomerDocumentTypeMxPp   PaymentNewParamsCustomerDocumentType = "MX_PP"
	PaymentNewParamsCustomerDocumentTypeMxRfc  PaymentNewParamsCustomerDocumentType = "MX_RFC"
	PaymentNewParamsCustomerDocumentTypePaCip  PaymentNewParamsCustomerDocumentType = "PA_CIP"
	PaymentNewParamsCustomerDocumentTypePeCe   PaymentNewParamsCustomerDocumentType = "PE_CE"
	PaymentNewParamsCustomerDocumentTypePeDni  PaymentNewParamsCustomerDocumentType = "PE_DNI"
	PaymentNewParamsCustomerDocumentTypePeOtro PaymentNewParamsCustomerDocumentType = "PE_OTRO"
	PaymentNewParamsCustomerDocumentTypePePp   PaymentNewParamsCustomerDocumentType = "PE_PP"
	PaymentNewParamsCustomerDocumentTypePeRuc  PaymentNewParamsCustomerDocumentType = "PE_RUC"
)

func (PaymentNewParamsCustomerDocumentType) IsKnown

type PaymentNewParamsPaymentMethod

type PaymentNewParamsPaymentMethod string

Payment Method

const (
	PaymentNewParamsPaymentMethodBasicCard            PaymentNewParamsPaymentMethod = "BASIC_CARD"
	PaymentNewParamsPaymentMethodCrypto               PaymentNewParamsPaymentMethod = "CRYPTO"
	PaymentNewParamsPaymentMethodFlexepin             PaymentNewParamsPaymentMethod = "FLEXEPIN"
	PaymentNewParamsPaymentMethodMacropay             PaymentNewParamsPaymentMethod = "MACROPAY"
	PaymentNewParamsPaymentMethodSkrill               PaymentNewParamsPaymentMethod = "SKRILL"
	PaymentNewParamsPaymentMethodPayretailers         PaymentNewParamsPaymentMethod = "PAYRETAILERS"
	PaymentNewParamsPaymentMethodLocalpayment         PaymentNewParamsPaymentMethod = "LOCALPAYMENT"
	PaymentNewParamsPaymentMethodMonnet               PaymentNewParamsPaymentMethod = "MONNET"
	PaymentNewParamsPaymentMethodPaypal               PaymentNewParamsPaymentMethod = "PAYPAL"
	PaymentNewParamsPaymentMethodNeteller             PaymentNewParamsPaymentMethod = "NETELLER"
	PaymentNewParamsPaymentMethodTrustpayments        PaymentNewParamsPaymentMethod = "TRUSTPAYMENTS"
	PaymentNewParamsPaymentMethodPaymaxis             PaymentNewParamsPaymentMethod = "PAYMAXIS"
	PaymentNewParamsPaymentMethodGate8Transact        PaymentNewParamsPaymentMethod = "GATE8TRANSACT"
	PaymentNewParamsPaymentMethodTink                 PaymentNewParamsPaymentMethod = "TINK"
	PaymentNewParamsPaymentMethodB2Binpay             PaymentNewParamsPaymentMethod = "B2BINPAY"
	PaymentNewParamsPaymentMethodClick                PaymentNewParamsPaymentMethod = "CLICK"
	PaymentNewParamsPaymentMethodMonetix              PaymentNewParamsPaymentMethod = "MONETIX"
	PaymentNewParamsPaymentMethodPerfectmoney         PaymentNewParamsPaymentMethod = "PERFECTMONEY"
	PaymentNewParamsPaymentMethodVolt                 PaymentNewParamsPaymentMethod = "VOLT"
	PaymentNewParamsPaymentMethodKesspay              PaymentNewParamsPaymentMethod = "KESSPAY"
	PaymentNewParamsPaymentMethodBillline             PaymentNewParamsPaymentMethod = "BILLLINE"
	PaymentNewParamsPaymentMethodNgenius              PaymentNewParamsPaymentMethod = "NGENIUS"
	PaymentNewParamsPaymentMethodAstropay             PaymentNewParamsPaymentMethod = "ASTROPAY"
	PaymentNewParamsPaymentMethodAlycepay             PaymentNewParamsPaymentMethod = "ALYCEPAY"
	PaymentNewParamsPaymentMethodPix                  PaymentNewParamsPaymentMethod = "PIX"
	PaymentNewParamsPaymentMethodBoleto               PaymentNewParamsPaymentMethod = "BOLETO"
	PaymentNewParamsPaymentMethodUpi                  PaymentNewParamsPaymentMethod = "UPI"
	PaymentNewParamsPaymentMethodPaytm                PaymentNewParamsPaymentMethod = "PAYTM"
	PaymentNewParamsPaymentMethodNetbanking           PaymentNewParamsPaymentMethod = "NETBANKING"
	PaymentNewParamsPaymentMethodFinrax               PaymentNewParamsPaymentMethod = "FINRAX"
	PaymentNewParamsPaymentMethodSpoynt               PaymentNewParamsPaymentMethod = "SPOYNT"
	PaymentNewParamsPaymentMethodXinpay               PaymentNewParamsPaymentMethod = "XINPAY"
	PaymentNewParamsPaymentMethodOmnimatrix           PaymentNewParamsPaymentMethod = "OMNIMATRIX"
	PaymentNewParamsPaymentMethodDpopay               PaymentNewParamsPaymentMethod = "DPOPAY"
	PaymentNewParamsPaymentMethodExternalHpp          PaymentNewParamsPaymentMethod = "EXTERNAL_HPP"
	PaymentNewParamsPaymentMethodXanpay               PaymentNewParamsPaymentMethod = "XANPAY"
	PaymentNewParamsPaymentMethodInrpay               PaymentNewParamsPaymentMethod = "INRPAY"
	PaymentNewParamsPaymentMethodAri10                PaymentNewParamsPaymentMethod = "ARI10"
	PaymentNewParamsPaymentMethodSofort               PaymentNewParamsPaymentMethod = "SOFORT"
	PaymentNewParamsPaymentMethodGiropay              PaymentNewParamsPaymentMethod = "GIROPAY"
	PaymentNewParamsPaymentMethodPaysafecard          PaymentNewParamsPaymentMethod = "PAYSAFECARD"
	PaymentNewParamsPaymentMethodPaysafecash          PaymentNewParamsPaymentMethod = "PAYSAFECASH"
	PaymentNewParamsPaymentMethodOpenBanking          PaymentNewParamsPaymentMethod = "OPEN_BANKING"
	PaymentNewParamsPaymentMethodKlarna               PaymentNewParamsPaymentMethod = "KLARNA"
	PaymentNewParamsPaymentMethodSpei                 PaymentNewParamsPaymentMethod = "SPEI"
	PaymentNewParamsPaymentMethodPaycash              PaymentNewParamsPaymentMethod = "PAYCASH"
	PaymentNewParamsPaymentMethodRapipago             PaymentNewParamsPaymentMethod = "RAPIPAGO"
	PaymentNewParamsPaymentMethodPagofacil            PaymentNewParamsPaymentMethod = "PAGOFACIL"
	PaymentNewParamsPaymentMethodRapidtransfer        PaymentNewParamsPaymentMethod = "RAPIDTRANSFER"
	PaymentNewParamsPaymentMethodMobileMoney          PaymentNewParamsPaymentMethod = "MOBILE_MONEY"
	PaymentNewParamsPaymentMethodInterac              PaymentNewParamsPaymentMethod = "INTERAC"
	PaymentNewParamsPaymentMethodInteracEto           PaymentNewParamsPaymentMethod = "INTERAC_ETO"
	PaymentNewParamsPaymentMethodInteracRto           PaymentNewParamsPaymentMethod = "INTERAC_RTO"
	PaymentNewParamsPaymentMethodInteracACH           PaymentNewParamsPaymentMethod = "INTERAC_ACH"
	PaymentNewParamsPaymentMethodPicpay               PaymentNewParamsPaymentMethod = "PICPAY"
	PaymentNewParamsPaymentMethodMollie               PaymentNewParamsPaymentMethod = "MOLLIE"
	PaymentNewParamsPaymentMethodTed                  PaymentNewParamsPaymentMethod = "TED"
	PaymentNewParamsPaymentMethodZipay                PaymentNewParamsPaymentMethod = "ZIPAY"
	PaymentNewParamsPaymentMethodPse                  PaymentNewParamsPaymentMethod = "PSE"
	PaymentNewParamsPaymentMethodEfecty               PaymentNewParamsPaymentMethod = "EFECTY"
	PaymentNewParamsPaymentMethodBanktransfer         PaymentNewParamsPaymentMethod = "BANKTRANSFER"
	PaymentNewParamsPaymentMethodPec                  PaymentNewParamsPaymentMethod = "PEC"
	PaymentNewParamsPaymentMethodOxxo                 PaymentNewParamsPaymentMethod = "OXXO"
	PaymentNewParamsPaymentMethodWebpay               PaymentNewParamsPaymentMethod = "WEBPAY"
	PaymentNewParamsPaymentMethodPagoefectivo         PaymentNewParamsPaymentMethod = "PAGOEFECTIVO"
	PaymentNewParamsPaymentMethodMifinity             PaymentNewParamsPaymentMethod = "MIFINITY"
	PaymentNewParamsPaymentMethodPayport              PaymentNewParamsPaymentMethod = "PAYPORT"
	PaymentNewParamsPaymentMethodJetoncash            PaymentNewParamsPaymentMethod = "JETONCASH"
	PaymentNewParamsPaymentMethodJetonwallet          PaymentNewParamsPaymentMethod = "JETONWALLET"
	PaymentNewParamsPaymentMethodNoda                 PaymentNewParamsPaymentMethod = "NODA"
	PaymentNewParamsPaymentMethodNodaRevolut          PaymentNewParamsPaymentMethod = "NODA_REVOLUT"
	PaymentNewParamsPaymentMethodAlfakit              PaymentNewParamsPaymentMethod = "ALFAKIT"
	PaymentNewParamsPaymentMethodPayfun               PaymentNewParamsPaymentMethod = "PAYFUN"
	PaymentNewParamsPaymentMethodEmanat               PaymentNewParamsPaymentMethod = "EMANAT"
	PaymentNewParamsPaymentMethodM10                  PaymentNewParamsPaymentMethod = "M10"
	PaymentNewParamsPaymentMethodRubpay               PaymentNewParamsPaymentMethod = "RUBPAY"
	PaymentNewParamsPaymentMethodMonerchy             PaymentNewParamsPaymentMethod = "MONERCHY"
	PaymentNewParamsPaymentMethodMuchbetter           PaymentNewParamsPaymentMethod = "MUCHBETTER"
	PaymentNewParamsPaymentMethodYapily               PaymentNewParamsPaymentMethod = "YAPILY"
	PaymentNewParamsPaymentMethodInai                 PaymentNewParamsPaymentMethod = "INAI"
	PaymentNewParamsPaymentMethodImps                 PaymentNewParamsPaymentMethod = "IMPS"
	PaymentNewParamsPaymentMethodRtgs                 PaymentNewParamsPaymentMethod = "RTGS"
	PaymentNewParamsPaymentMethodPayid                PaymentNewParamsPaymentMethod = "PAYID"
	PaymentNewParamsPaymentMethodZotapay              PaymentNewParamsPaymentMethod = "ZOTAPAY"
	PaymentNewParamsPaymentMethodSbp                  PaymentNewParamsPaymentMethod = "SBP"
	PaymentNewParamsPaymentMethodP2PCard              PaymentNewParamsPaymentMethod = "P2P_CARD"
	PaymentNewParamsPaymentMethodP2PIban              PaymentNewParamsPaymentMethod = "P2P_IBAN"
	PaymentNewParamsPaymentMethodP2PSbp               PaymentNewParamsPaymentMethod = "P2P_SBP"
	PaymentNewParamsPaymentMethodP2PMobile            PaymentNewParamsPaymentMethod = "P2P_MOBILE"
	PaymentNewParamsPaymentMethodPush                 PaymentNewParamsPaymentMethod = "PUSH"
	PaymentNewParamsPaymentMethodGateiq               PaymentNewParamsPaymentMethod = "GATEIQ"
	PaymentNewParamsPaymentMethodViettel              PaymentNewParamsPaymentMethod = "VIETTEL"
	PaymentNewParamsPaymentMethodZalo                 PaymentNewParamsPaymentMethod = "ZALO"
	PaymentNewParamsPaymentMethodQr                   PaymentNewParamsPaymentMethod = "QR"
	PaymentNewParamsPaymentMethodCup                  PaymentNewParamsPaymentMethod = "CUP"
	PaymentNewParamsPaymentMethodCodi                 PaymentNewParamsPaymentMethod = "CODI"
	PaymentNewParamsPaymentMethodPay2Play             PaymentNewParamsPaymentMethod = "PAY2PLAY"
	PaymentNewParamsPaymentMethodBkash                PaymentNewParamsPaymentMethod = "BKASH"
	PaymentNewParamsPaymentMethodNagad                PaymentNewParamsPaymentMethod = "NAGAD"
	PaymentNewParamsPaymentMethodRocket               PaymentNewParamsPaymentMethod = "ROCKET"
	PaymentNewParamsPaymentMethodVirtualAccount       PaymentNewParamsPaymentMethod = "VIRTUAL_ACCOUNT"
	PaymentNewParamsPaymentMethodMultibanco           PaymentNewParamsPaymentMethod = "MULTIBANCO"
	PaymentNewParamsPaymentMethodBlik                 PaymentNewParamsPaymentMethod = "BLIK"
	PaymentNewParamsPaymentMethodMbway                PaymentNewParamsPaymentMethod = "MBWAY"
	PaymentNewParamsPaymentMethodP24                  PaymentNewParamsPaymentMethod = "P24"
	PaymentNewParamsPaymentMethodMistercash           PaymentNewParamsPaymentMethod = "MISTERCASH"
	PaymentNewParamsPaymentMethodMach                 PaymentNewParamsPaymentMethod = "MACH"
	PaymentNewParamsPaymentMethodKhipu                PaymentNewParamsPaymentMethod = "KHIPU"
	PaymentNewParamsPaymentMethodNeft                 PaymentNewParamsPaymentMethod = "NEFT"
	PaymentNewParamsPaymentMethodSticpay              PaymentNewParamsPaymentMethod = "STICPAY"
	PaymentNewParamsPaymentMethodSberpay              PaymentNewParamsPaymentMethod = "SBERPAY"
	PaymentNewParamsPaymentMethodMobileCommerce       PaymentNewParamsPaymentMethod = "MOBILE_COMMERCE"
	PaymentNewParamsPaymentMethodBinancePay           PaymentNewParamsPaymentMethod = "BINANCE_PAY"
	PaymentNewParamsPaymentMethodMpay                 PaymentNewParamsPaymentMethod = "MPAY"
	PaymentNewParamsPaymentMethodChek                 PaymentNewParamsPaymentMethod = "CHEK"
	PaymentNewParamsPaymentMethodKlapEfectivo         PaymentNewParamsPaymentMethod = "KLAP_EFECTIVO"
	PaymentNewParamsPaymentMethodKlapTransferencia    PaymentNewParamsPaymentMethod = "KLAP_TRANSFERENCIA"
	PaymentNewParamsPaymentMethodPago46               PaymentNewParamsPaymentMethod = "PAGO46"
	PaymentNewParamsPaymentMethodHites                PaymentNewParamsPaymentMethod = "HITES"
	PaymentNewParamsPaymentMethodServifacil           PaymentNewParamsPaymentMethod = "SERVIFACIL"
	PaymentNewParamsPaymentMethodOpenpayd             PaymentNewParamsPaymentMethod = "OPENPAYD"
	PaymentNewParamsPaymentMethodFawry                PaymentNewParamsPaymentMethod = "FAWRY"
	PaymentNewParamsPaymentMethodEps                  PaymentNewParamsPaymentMethod = "EPS"
	PaymentNewParamsPaymentMethodIdeal                PaymentNewParamsPaymentMethod = "IDEAL"
	PaymentNewParamsPaymentMethodTrustly              PaymentNewParamsPaymentMethod = "TRUSTLY"
	PaymentNewParamsPaymentMethodUssd                 PaymentNewParamsPaymentMethod = "USSD"
	PaymentNewParamsPaymentMethodMpesa                PaymentNewParamsPaymentMethod = "MPESA"
	PaymentNewParamsPaymentMethodEnaira               PaymentNewParamsPaymentMethod = "ENAIRA"
	PaymentNewParamsPaymentMethodOnevoucher           PaymentNewParamsPaymentMethod = "ONEVOUCHER"
	PaymentNewParamsPaymentMethodBancontact           PaymentNewParamsPaymentMethod = "BANCONTACT"
	PaymentNewParamsPaymentMethodSwish                PaymentNewParamsPaymentMethod = "SWISH"
	PaymentNewParamsPaymentMethodEft                  PaymentNewParamsPaymentMethod = "EFT"
	PaymentNewParamsPaymentMethodGcash                PaymentNewParamsPaymentMethod = "GCASH"
	PaymentNewParamsPaymentMethodPaymaya              PaymentNewParamsPaymentMethod = "PAYMAYA"
	PaymentNewParamsPaymentMethodPagoMovil            PaymentNewParamsPaymentMethod = "PAGO_MOVIL"
	PaymentNewParamsPaymentMethodPagoMovilInst        PaymentNewParamsPaymentMethod = "PAGO_MOVIL_INST"
	PaymentNewParamsPaymentMethodBiopago              PaymentNewParamsPaymentMethod = "BIOPAGO"
	PaymentNewParamsPaymentMethodCash                 PaymentNewParamsPaymentMethod = "CASH"
	PaymentNewParamsPaymentMethodVoucherry            PaymentNewParamsPaymentMethod = "VOUCHERRY"
	PaymentNewParamsPaymentMethodApplepay             PaymentNewParamsPaymentMethod = "APPLEPAY"
	PaymentNewParamsPaymentMethodGooglepay            PaymentNewParamsPaymentMethod = "GOOGLEPAY"
	PaymentNewParamsPaymentMethodBrite                PaymentNewParamsPaymentMethod = "BRITE"
	PaymentNewParamsPaymentMethodVouchstar            PaymentNewParamsPaymentMethod = "VOUCHSTAR"
	PaymentNewParamsPaymentMethodRevolut              PaymentNewParamsPaymentMethod = "REVOLUT"
	PaymentNewParamsPaymentMethodOnlineBanking        PaymentNewParamsPaymentMethod = "ONLINE_BANKING"
	PaymentNewParamsPaymentMethodPromptpay            PaymentNewParamsPaymentMethod = "PROMPTPAY"
	PaymentNewParamsPaymentMethodTruemoney            PaymentNewParamsPaymentMethod = "TRUEMONEY"
	PaymentNewParamsPaymentMethodMomopayVn            PaymentNewParamsPaymentMethod = "MOMOPAY_VN"
	PaymentNewParamsPaymentMethodMomopayRw            PaymentNewParamsPaymentMethod = "MOMOPAY_RW"
	PaymentNewParamsPaymentMethodVnpayQr              PaymentNewParamsPaymentMethod = "VNPAY_QR"
	PaymentNewParamsPaymentMethodN26                  PaymentNewParamsPaymentMethod = "N26"
	PaymentNewParamsPaymentMethodWise                 PaymentNewParamsPaymentMethod = "WISE"
	PaymentNewParamsPaymentMethodPaydoWallet          PaymentNewParamsPaymentMethod = "PAYDO_WALLET"
	PaymentNewParamsPaymentMethodPapara               PaymentNewParamsPaymentMethod = "PAPARA"
	PaymentNewParamsPaymentMethodPayoutSepaBatch      PaymentNewParamsPaymentMethod = "PAYOUT_SEPA_BATCH"
	PaymentNewParamsPaymentMethodPayoutNonsepaRequest PaymentNewParamsPaymentMethod = "PAYOUT_NONSEPA_REQUEST"
)

func (PaymentNewParamsPaymentMethod) IsKnown

func (r PaymentNewParamsPaymentMethod) IsKnown() bool

type PaymentNewParamsPaymentType

type PaymentNewParamsPaymentType string

Payment Type

const (
	PaymentNewParamsPaymentTypeDeposit    PaymentNewParamsPaymentType = "DEPOSIT"
	PaymentNewParamsPaymentTypeWithdrawal PaymentNewParamsPaymentType = "WITHDRAWAL"
	PaymentNewParamsPaymentTypeRefund     PaymentNewParamsPaymentType = "REFUND"
)

func (PaymentNewParamsPaymentType) IsKnown

func (r PaymentNewParamsPaymentType) IsKnown() bool

type PaymentNewParamsSubscription

type PaymentNewParamsSubscription struct {
	// The number of intervals after which a subscriber is billed. For example, if the
	// frequencyUnit is DAY with an frequency of 2, the subscription is billed once
	// every two days.
	Frequency param.Field[int64] `json:"frequency,required"`
	// The amount to be used for subsequent payments. If not specified, the amount of
	// the original payment is used.
	Amount param.Field[float64] `json:"amount"`
	// Description for subsequent recurring payments
	Description param.Field[string] `json:"description"`
	// The interval at which the subscription is billed. Use 'MINUTE' for testing
	// purposes only.
	FrequencyUnit param.Field[PaymentNewParamsSubscriptionFrequencyUnit] `json:"frequencyUnit"`
	// Required number of subsequent recurring payments. Unlimited if value is not
	// specified.
	NumberOfCycles param.Field[int64] `json:"numberOfCycles"`
	// Retry strategy for subscription. If not specified, the subscription is canceled
	// after the first failed payment attempt.
	RetryStrategy param.Field[PaymentNewParamsSubscriptionRetryStrategy] `json:"retryStrategy"`
	// Date and time of the 1st cycle. if not specified, then calculated as
	// (initialDeposit.createTime + frequency\*frequencyUnit).
	StartTime param.Field[string] `json:"startTime" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
}

Subscription to bill customers at regular intervals. Used only with 'startRecurring=true'.

func (PaymentNewParamsSubscription) MarshalJSON

func (r PaymentNewParamsSubscription) MarshalJSON() (data []byte, err error)

type PaymentNewParamsSubscriptionFrequencyUnit

type PaymentNewParamsSubscriptionFrequencyUnit string

The interval at which the subscription is billed. Use 'MINUTE' for testing purposes only.

const (
	PaymentNewParamsSubscriptionFrequencyUnitMinute PaymentNewParamsSubscriptionFrequencyUnit = "MINUTE"
	PaymentNewParamsSubscriptionFrequencyUnitDay    PaymentNewParamsSubscriptionFrequencyUnit = "DAY"
	PaymentNewParamsSubscriptionFrequencyUnitWeek   PaymentNewParamsSubscriptionFrequencyUnit = "WEEK"
	PaymentNewParamsSubscriptionFrequencyUnitMonth  PaymentNewParamsSubscriptionFrequencyUnit = "MONTH"
)

func (PaymentNewParamsSubscriptionFrequencyUnit) IsKnown

type PaymentNewParamsSubscriptionRetryStrategy

type PaymentNewParamsSubscriptionRetryStrategy struct {
	// The number of intervals after which the system will retry the payment after an
	// unsuccessful attempt
	Frequency param.Field[int64] `json:"frequency,required"`
	// Required number of retries
	NumberOfCycles param.Field[int64] `json:"numberOfCycles,required"`
	// If specified, the nth element contains the percentage of the initial amount that
	// will be charged for the nth retry
	AmountAdjustments param.Field[[]int64] `json:"amountAdjustments"`
	// The interval at which the subscription is retried. Use 'MINUTE' for testing
	// purposes only.
	FrequencyUnit param.Field[PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit] `json:"frequencyUnit"`
}

Retry strategy for subscription. If not specified, the subscription is canceled after the first failed payment attempt.

func (PaymentNewParamsSubscriptionRetryStrategy) MarshalJSON

func (r PaymentNewParamsSubscriptionRetryStrategy) MarshalJSON() (data []byte, err error)

type PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit

type PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit string

The interval at which the subscription is retried. Use 'MINUTE' for testing purposes only.

const (
	PaymentNewParamsSubscriptionRetryStrategyFrequencyUnitMinute PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit = "MINUTE"
	PaymentNewParamsSubscriptionRetryStrategyFrequencyUnitDay    PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit = "DAY"
	PaymentNewParamsSubscriptionRetryStrategyFrequencyUnitWeek   PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit = "WEEK"
	PaymentNewParamsSubscriptionRetryStrategyFrequencyUnitMonth  PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit = "MONTH"
)

func (PaymentNewParamsSubscriptionRetryStrategyFrequencyUnit) IsKnown

type PaymentOperationService

type PaymentOperationService struct {
	Options []option.RequestOption
}

PaymentOperationService contains methods and other services that help with interacting with the paymaxis API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewPaymentOperationService method instead.

func NewPaymentOperationService

func NewPaymentOperationService(opts ...option.RequestOption) (r *PaymentOperationService)

NewPaymentOperationService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*PaymentOperationService) List

func (r *PaymentOperationService) List(ctx context.Context, id string, opts ...option.RequestOption) (res *Operation, err error)

Get a list of operations performed during payment processing sorted by time (most recent first)

type PaymentResult

type PaymentResult struct {
	// Payment Id
	ID string `json:"id"`
	// Amount sent to the payment provider
	Amount float64 `json:"amount"`
	// Customer's billing address
	BillingAddress PaymentResultBillingAddress `json:"billingAddress"`
	// Currency sent to the payment provider
	Currency string                `json:"currency" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	Customer PaymentResultCustomer `json:"customer"`
	// Amount from payment request. Filled only if the request currency differs from
	// the currency sent to the payment provider.
	CustomerAmount float64 `json:"customerAmount"`
	// Currency from payment request. Filled only if it differs from the currency sent
	// to the payment provider.
	CustomerCurrency string `json:"customerCurrency" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	// Description of the transaction
	Description string `json:"description"`
	// Check 'Error Codes' section for details
	ErrorCode string `json:"errorCode"`
	// Provider fee. Filled only if supported by the provider.
	ExternalFeeAmount float64 `json:"externalFeeAmount"`
	// Provider fee currency. Filled only if supported by the provider.
	ExternalFeeCurrency string `json:"externalFeeCurrency" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	// Result code from external provider
	ExternalResultCode string `json:"externalResultCode"`
	// Initial transaction Id from payment request
	ParentPaymentID string `json:"parentPaymentId"`
	// Payment Method
	PaymentMethod        PaymentResultPaymentMethod        `json:"paymentMethod"`
	PaymentMethodDetails PaymentResultPaymentMethodDetails `json:"paymentMethodDetails"`
	// Payment Type
	PaymentType PaymentResultPaymentType `json:"paymentType"`
	// Token that can be used to continue the recurring chain
	RecurringToken string `json:"recurringToken"`
	// URL to redirect the customer
	RedirectURL string `json:"redirectUrl"`
	// referenceId from payment request
	ReferenceID string `json:"referenceId"`
	// Indicates whether this payment has started a recurring chain
	StartRecurring bool `json:"startRecurring"`
	// Payment State
	State PaymentResultState `json:"state"`
	// The name of the provider that was used to process this payment
	TerminalName string            `json:"terminalName"`
	JSON         paymentResultJSON `json:"-"`
}

func (*PaymentResult) UnmarshalJSON

func (r *PaymentResult) UnmarshalJSON(data []byte) (err error)

type PaymentResultBillingAddress

type PaymentResultBillingAddress struct {
	// Line 1 of the address (e.g., Number, street, etc)
	AddressLine1 string `json:"addressLine1"`
	// Line 2 of the address (e.g., Suite, apt)
	AddressLine2 string `json:"addressLine2"`
	// City name
	City string `json:"city"`
	// 2-character IS0-3166-1 country code
	CountryCode string `json:"countryCode"`
	// Postal code
	PostalCode string `json:"postalCode"`
	// State code
	State string                          `json:"state"`
	JSON  paymentResultBillingAddressJSON `json:"-"`
}

Customer's billing address

func (*PaymentResultBillingAddress) UnmarshalJSON

func (r *PaymentResultBillingAddress) UnmarshalJSON(data []byte) (err error)

type PaymentResultCustomer

type PaymentResultCustomer struct {
	// Customer account name in the provider's system. Used for some types of
	// withdrawals.
	AccountName string `json:"accountName"`
	// Customer account number in the provider's system. Used for some types of
	// withdrawals.
	AccountNumber string `json:"accountNumber"`
	// Customer bank. Used for some types of withdrawals.
	Bank string `json:"bank"`
	// Customer bank branch. Used for some types of withdrawals.
	BankBranch string `json:"bankBranch"`
	// Customer country of citizenship
	CitizenshipCountryCode string `json:"citizenshipCountryCode"`
	DateOfBirth            string `json:"dateOfBirth" format:"ISO 8601 (YYYY-MM-DD)"`
	// Date of the first deposit from the customer
	DateOfFirstDeposit string `json:"dateOfFirstDeposit" format:"ISO 8601 (YYYY-MM-DD)"`
	// How much the customer has deposited, in base currency
	DepositsAmount int64 `json:"depositsAmount"`
	// How many times the customer made a deposit
	DepositsCnt int64 `json:"depositsCnt"`
	// An identifier for the customer assigned by a government authority
	DocumentNumber string `json:"documentNumber"`
	// Document Type
	DocumentType PaymentResultCustomerDocumentType `json:"documentType"`
	// Email address of the customer
	Email     string `json:"email" format:"email"`
	FirstName string `json:"firstName"`
	// Indicates whether the customer has passed KYC verification
	KYCStatus bool   `json:"kycStatus"`
	LastName  string `json:"lastName"`
	// Customer preferred display language
	Locale string `json:"locale"`
	// Indicates whether the payment instrument (usually the card number) has passed
	// KYC verification
	PaymentInstrumentKYCStatus bool `json:"paymentInstrumentKycStatus"`
	// International phone number of the customer, without the '+'. Use a space as a
	// separator between the dialing country code and local phone number.
	Phone string `json:"phone"`
	// Id of the customer assigned by Merchant
	ReferenceID string `json:"referenceId"`
	// Identify the customer as belonging to a specific group that is used for routing
	RoutingGroup string `json:"routingGroup"`
	// How much the customer has withdrawn, in base currency
	WithdrawalsAmount int64 `json:"withdrawalsAmount"`
	// How many times the customer made a withdrawal
	WithdrawalsCnt int64                     `json:"withdrawalsCnt"`
	JSON           paymentResultCustomerJSON `json:"-"`
}

func (*PaymentResultCustomer) UnmarshalJSON

func (r *PaymentResultCustomer) UnmarshalJSON(data []byte) (err error)

type PaymentResultCustomerDocumentType

type PaymentResultCustomerDocumentType string

Document Type

const (
	PaymentResultCustomerDocumentTypeArCdi  PaymentResultCustomerDocumentType = "AR_CDI"
	PaymentResultCustomerDocumentTypeArCuil PaymentResultCustomerDocumentType = "AR_CUIL"
	PaymentResultCustomerDocumentTypeArCuit PaymentResultCustomerDocumentType = "AR_CUIT"
	PaymentResultCustomerDocumentTypeArDni  PaymentResultCustomerDocumentType = "AR_DNI"
	PaymentResultCustomerDocumentTypeArOtro PaymentResultCustomerDocumentType = "AR_OTRO"
	PaymentResultCustomerDocumentTypeBrCnpj PaymentResultCustomerDocumentType = "BR_CNPJ"
	PaymentResultCustomerDocumentTypeBrCpf  PaymentResultCustomerDocumentType = "BR_CPF"
	PaymentResultCustomerDocumentTypeClOtro PaymentResultCustomerDocumentType = "CL_OTRO"
	PaymentResultCustomerDocumentTypeClRun  PaymentResultCustomerDocumentType = "CL_RUN"
	PaymentResultCustomerDocumentTypeClRut  PaymentResultCustomerDocumentType = "CL_RUT"
	PaymentResultCustomerDocumentTypeCoCc   PaymentResultCustomerDocumentType = "CO_CC"
	PaymentResultCustomerDocumentTypeCoCe   PaymentResultCustomerDocumentType = "CO_CE"
	PaymentResultCustomerDocumentTypeCoDl   PaymentResultCustomerDocumentType = "CO_DL"
	PaymentResultCustomerDocumentTypeCoDni  PaymentResultCustomerDocumentType = "CO_DNI"
	PaymentResultCustomerDocumentTypeCoNe   PaymentResultCustomerDocumentType = "CO_NE"
	PaymentResultCustomerDocumentTypeCoNit  PaymentResultCustomerDocumentType = "CO_NIT"
	PaymentResultCustomerDocumentTypeCoPp   PaymentResultCustomerDocumentType = "CO_PP"
	PaymentResultCustomerDocumentTypeCoSS   PaymentResultCustomerDocumentType = "CO_SS"
	PaymentResultCustomerDocumentTypeCoTi   PaymentResultCustomerDocumentType = "CO_TI"
	PaymentResultCustomerDocumentTypeCrCdi  PaymentResultCustomerDocumentType = "CR_CDI"
	PaymentResultCustomerDocumentTypeEcDni  PaymentResultCustomerDocumentType = "EC_DNI"
	PaymentResultCustomerDocumentTypeEcPp   PaymentResultCustomerDocumentType = "EC_PP"
	PaymentResultCustomerDocumentTypeEcRuc  PaymentResultCustomerDocumentType = "EC_RUC"
	PaymentResultCustomerDocumentTypeGtCui  PaymentResultCustomerDocumentType = "GT_CUI"
	PaymentResultCustomerDocumentTypeGtDpi  PaymentResultCustomerDocumentType = "GT_DPI"
	PaymentResultCustomerDocumentTypeGtNit  PaymentResultCustomerDocumentType = "GT_NIT"
	PaymentResultCustomerDocumentTypeMxCurp PaymentResultCustomerDocumentType = "MX_CURP"
	PaymentResultCustomerDocumentTypeMxIfe  PaymentResultCustomerDocumentType = "MX_IFE"
	PaymentResultCustomerDocumentTypeMxPp   PaymentResultCustomerDocumentType = "MX_PP"
	PaymentResultCustomerDocumentTypeMxRfc  PaymentResultCustomerDocumentType = "MX_RFC"
	PaymentResultCustomerDocumentTypePaCip  PaymentResultCustomerDocumentType = "PA_CIP"
	PaymentResultCustomerDocumentTypePeCe   PaymentResultCustomerDocumentType = "PE_CE"
	PaymentResultCustomerDocumentTypePeDni  PaymentResultCustomerDocumentType = "PE_DNI"
	PaymentResultCustomerDocumentTypePeOtro PaymentResultCustomerDocumentType = "PE_OTRO"
	PaymentResultCustomerDocumentTypePePp   PaymentResultCustomerDocumentType = "PE_PP"
	PaymentResultCustomerDocumentTypePeRuc  PaymentResultCustomerDocumentType = "PE_RUC"
)

func (PaymentResultCustomerDocumentType) IsKnown

type PaymentResultPaymentMethod

type PaymentResultPaymentMethod string

Payment Method

const (
	PaymentResultPaymentMethodBasicCard            PaymentResultPaymentMethod = "BASIC_CARD"
	PaymentResultPaymentMethodCrypto               PaymentResultPaymentMethod = "CRYPTO"
	PaymentResultPaymentMethodFlexepin             PaymentResultPaymentMethod = "FLEXEPIN"
	PaymentResultPaymentMethodMacropay             PaymentResultPaymentMethod = "MACROPAY"
	PaymentResultPaymentMethodSkrill               PaymentResultPaymentMethod = "SKRILL"
	PaymentResultPaymentMethodPayretailers         PaymentResultPaymentMethod = "PAYRETAILERS"
	PaymentResultPaymentMethodLocalpayment         PaymentResultPaymentMethod = "LOCALPAYMENT"
	PaymentResultPaymentMethodMonnet               PaymentResultPaymentMethod = "MONNET"
	PaymentResultPaymentMethodPaypal               PaymentResultPaymentMethod = "PAYPAL"
	PaymentResultPaymentMethodNeteller             PaymentResultPaymentMethod = "NETELLER"
	PaymentResultPaymentMethodTrustpayments        PaymentResultPaymentMethod = "TRUSTPAYMENTS"
	PaymentResultPaymentMethodPaymaxis             PaymentResultPaymentMethod = "PAYMAXIS"
	PaymentResultPaymentMethodGate8Transact        PaymentResultPaymentMethod = "GATE8TRANSACT"
	PaymentResultPaymentMethodTink                 PaymentResultPaymentMethod = "TINK"
	PaymentResultPaymentMethodB2Binpay             PaymentResultPaymentMethod = "B2BINPAY"
	PaymentResultPaymentMethodClick                PaymentResultPaymentMethod = "CLICK"
	PaymentResultPaymentMethodMonetix              PaymentResultPaymentMethod = "MONETIX"
	PaymentResultPaymentMethodPerfectmoney         PaymentResultPaymentMethod = "PERFECTMONEY"
	PaymentResultPaymentMethodVolt                 PaymentResultPaymentMethod = "VOLT"
	PaymentResultPaymentMethodKesspay              PaymentResultPaymentMethod = "KESSPAY"
	PaymentResultPaymentMethodBillline             PaymentResultPaymentMethod = "BILLLINE"
	PaymentResultPaymentMethodNgenius              PaymentResultPaymentMethod = "NGENIUS"
	PaymentResultPaymentMethodAstropay             PaymentResultPaymentMethod = "ASTROPAY"
	PaymentResultPaymentMethodAlycepay             PaymentResultPaymentMethod = "ALYCEPAY"
	PaymentResultPaymentMethodPix                  PaymentResultPaymentMethod = "PIX"
	PaymentResultPaymentMethodBoleto               PaymentResultPaymentMethod = "BOLETO"
	PaymentResultPaymentMethodUpi                  PaymentResultPaymentMethod = "UPI"
	PaymentResultPaymentMethodPaytm                PaymentResultPaymentMethod = "PAYTM"
	PaymentResultPaymentMethodNetbanking           PaymentResultPaymentMethod = "NETBANKING"
	PaymentResultPaymentMethodFinrax               PaymentResultPaymentMethod = "FINRAX"
	PaymentResultPaymentMethodSpoynt               PaymentResultPaymentMethod = "SPOYNT"
	PaymentResultPaymentMethodXinpay               PaymentResultPaymentMethod = "XINPAY"
	PaymentResultPaymentMethodOmnimatrix           PaymentResultPaymentMethod = "OMNIMATRIX"
	PaymentResultPaymentMethodDpopay               PaymentResultPaymentMethod = "DPOPAY"
	PaymentResultPaymentMethodExternalHpp          PaymentResultPaymentMethod = "EXTERNAL_HPP"
	PaymentResultPaymentMethodXanpay               PaymentResultPaymentMethod = "XANPAY"
	PaymentResultPaymentMethodInrpay               PaymentResultPaymentMethod = "INRPAY"
	PaymentResultPaymentMethodAri10                PaymentResultPaymentMethod = "ARI10"
	PaymentResultPaymentMethodSofort               PaymentResultPaymentMethod = "SOFORT"
	PaymentResultPaymentMethodGiropay              PaymentResultPaymentMethod = "GIROPAY"
	PaymentResultPaymentMethodPaysafecard          PaymentResultPaymentMethod = "PAYSAFECARD"
	PaymentResultPaymentMethodPaysafecash          PaymentResultPaymentMethod = "PAYSAFECASH"
	PaymentResultPaymentMethodOpenBanking          PaymentResultPaymentMethod = "OPEN_BANKING"
	PaymentResultPaymentMethodKlarna               PaymentResultPaymentMethod = "KLARNA"
	PaymentResultPaymentMethodSpei                 PaymentResultPaymentMethod = "SPEI"
	PaymentResultPaymentMethodPaycash              PaymentResultPaymentMethod = "PAYCASH"
	PaymentResultPaymentMethodRapipago             PaymentResultPaymentMethod = "RAPIPAGO"
	PaymentResultPaymentMethodPagofacil            PaymentResultPaymentMethod = "PAGOFACIL"
	PaymentResultPaymentMethodRapidtransfer        PaymentResultPaymentMethod = "RAPIDTRANSFER"
	PaymentResultPaymentMethodMobileMoney          PaymentResultPaymentMethod = "MOBILE_MONEY"
	PaymentResultPaymentMethodInterac              PaymentResultPaymentMethod = "INTERAC"
	PaymentResultPaymentMethodInteracEto           PaymentResultPaymentMethod = "INTERAC_ETO"
	PaymentResultPaymentMethodInteracRto           PaymentResultPaymentMethod = "INTERAC_RTO"
	PaymentResultPaymentMethodInteracACH           PaymentResultPaymentMethod = "INTERAC_ACH"
	PaymentResultPaymentMethodPicpay               PaymentResultPaymentMethod = "PICPAY"
	PaymentResultPaymentMethodMollie               PaymentResultPaymentMethod = "MOLLIE"
	PaymentResultPaymentMethodTed                  PaymentResultPaymentMethod = "TED"
	PaymentResultPaymentMethodZipay                PaymentResultPaymentMethod = "ZIPAY"
	PaymentResultPaymentMethodPse                  PaymentResultPaymentMethod = "PSE"
	PaymentResultPaymentMethodEfecty               PaymentResultPaymentMethod = "EFECTY"
	PaymentResultPaymentMethodBanktransfer         PaymentResultPaymentMethod = "BANKTRANSFER"
	PaymentResultPaymentMethodPec                  PaymentResultPaymentMethod = "PEC"
	PaymentResultPaymentMethodOxxo                 PaymentResultPaymentMethod = "OXXO"
	PaymentResultPaymentMethodWebpay               PaymentResultPaymentMethod = "WEBPAY"
	PaymentResultPaymentMethodPagoefectivo         PaymentResultPaymentMethod = "PAGOEFECTIVO"
	PaymentResultPaymentMethodMifinity             PaymentResultPaymentMethod = "MIFINITY"
	PaymentResultPaymentMethodPayport              PaymentResultPaymentMethod = "PAYPORT"
	PaymentResultPaymentMethodJetoncash            PaymentResultPaymentMethod = "JETONCASH"
	PaymentResultPaymentMethodJetonwallet          PaymentResultPaymentMethod = "JETONWALLET"
	PaymentResultPaymentMethodNoda                 PaymentResultPaymentMethod = "NODA"
	PaymentResultPaymentMethodNodaRevolut          PaymentResultPaymentMethod = "NODA_REVOLUT"
	PaymentResultPaymentMethodAlfakit              PaymentResultPaymentMethod = "ALFAKIT"
	PaymentResultPaymentMethodPayfun               PaymentResultPaymentMethod = "PAYFUN"
	PaymentResultPaymentMethodEmanat               PaymentResultPaymentMethod = "EMANAT"
	PaymentResultPaymentMethodM10                  PaymentResultPaymentMethod = "M10"
	PaymentResultPaymentMethodRubpay               PaymentResultPaymentMethod = "RUBPAY"
	PaymentResultPaymentMethodMonerchy             PaymentResultPaymentMethod = "MONERCHY"
	PaymentResultPaymentMethodMuchbetter           PaymentResultPaymentMethod = "MUCHBETTER"
	PaymentResultPaymentMethodYapily               PaymentResultPaymentMethod = "YAPILY"
	PaymentResultPaymentMethodInai                 PaymentResultPaymentMethod = "INAI"
	PaymentResultPaymentMethodImps                 PaymentResultPaymentMethod = "IMPS"
	PaymentResultPaymentMethodRtgs                 PaymentResultPaymentMethod = "RTGS"
	PaymentResultPaymentMethodPayid                PaymentResultPaymentMethod = "PAYID"
	PaymentResultPaymentMethodZotapay              PaymentResultPaymentMethod = "ZOTAPAY"
	PaymentResultPaymentMethodSbp                  PaymentResultPaymentMethod = "SBP"
	PaymentResultPaymentMethodP2PCard              PaymentResultPaymentMethod = "P2P_CARD"
	PaymentResultPaymentMethodP2PIban              PaymentResultPaymentMethod = "P2P_IBAN"
	PaymentResultPaymentMethodP2PSbp               PaymentResultPaymentMethod = "P2P_SBP"
	PaymentResultPaymentMethodP2PMobile            PaymentResultPaymentMethod = "P2P_MOBILE"
	PaymentResultPaymentMethodPush                 PaymentResultPaymentMethod = "PUSH"
	PaymentResultPaymentMethodGateiq               PaymentResultPaymentMethod = "GATEIQ"
	PaymentResultPaymentMethodViettel              PaymentResultPaymentMethod = "VIETTEL"
	PaymentResultPaymentMethodZalo                 PaymentResultPaymentMethod = "ZALO"
	PaymentResultPaymentMethodQr                   PaymentResultPaymentMethod = "QR"
	PaymentResultPaymentMethodCup                  PaymentResultPaymentMethod = "CUP"
	PaymentResultPaymentMethodCodi                 PaymentResultPaymentMethod = "CODI"
	PaymentResultPaymentMethodPay2Play             PaymentResultPaymentMethod = "PAY2PLAY"
	PaymentResultPaymentMethodBkash                PaymentResultPaymentMethod = "BKASH"
	PaymentResultPaymentMethodNagad                PaymentResultPaymentMethod = "NAGAD"
	PaymentResultPaymentMethodRocket               PaymentResultPaymentMethod = "ROCKET"
	PaymentResultPaymentMethodVirtualAccount       PaymentResultPaymentMethod = "VIRTUAL_ACCOUNT"
	PaymentResultPaymentMethodMultibanco           PaymentResultPaymentMethod = "MULTIBANCO"
	PaymentResultPaymentMethodBlik                 PaymentResultPaymentMethod = "BLIK"
	PaymentResultPaymentMethodMbway                PaymentResultPaymentMethod = "MBWAY"
	PaymentResultPaymentMethodP24                  PaymentResultPaymentMethod = "P24"
	PaymentResultPaymentMethodMistercash           PaymentResultPaymentMethod = "MISTERCASH"
	PaymentResultPaymentMethodMach                 PaymentResultPaymentMethod = "MACH"
	PaymentResultPaymentMethodKhipu                PaymentResultPaymentMethod = "KHIPU"
	PaymentResultPaymentMethodNeft                 PaymentResultPaymentMethod = "NEFT"
	PaymentResultPaymentMethodSticpay              PaymentResultPaymentMethod = "STICPAY"
	PaymentResultPaymentMethodSberpay              PaymentResultPaymentMethod = "SBERPAY"
	PaymentResultPaymentMethodMobileCommerce       PaymentResultPaymentMethod = "MOBILE_COMMERCE"
	PaymentResultPaymentMethodBinancePay           PaymentResultPaymentMethod = "BINANCE_PAY"
	PaymentResultPaymentMethodMpay                 PaymentResultPaymentMethod = "MPAY"
	PaymentResultPaymentMethodChek                 PaymentResultPaymentMethod = "CHEK"
	PaymentResultPaymentMethodKlapEfectivo         PaymentResultPaymentMethod = "KLAP_EFECTIVO"
	PaymentResultPaymentMethodKlapTransferencia    PaymentResultPaymentMethod = "KLAP_TRANSFERENCIA"
	PaymentResultPaymentMethodPago46               PaymentResultPaymentMethod = "PAGO46"
	PaymentResultPaymentMethodHites                PaymentResultPaymentMethod = "HITES"
	PaymentResultPaymentMethodServifacil           PaymentResultPaymentMethod = "SERVIFACIL"
	PaymentResultPaymentMethodOpenpayd             PaymentResultPaymentMethod = "OPENPAYD"
	PaymentResultPaymentMethodFawry                PaymentResultPaymentMethod = "FAWRY"
	PaymentResultPaymentMethodEps                  PaymentResultPaymentMethod = "EPS"
	PaymentResultPaymentMethodIdeal                PaymentResultPaymentMethod = "IDEAL"
	PaymentResultPaymentMethodTrustly              PaymentResultPaymentMethod = "TRUSTLY"
	PaymentResultPaymentMethodUssd                 PaymentResultPaymentMethod = "USSD"
	PaymentResultPaymentMethodMpesa                PaymentResultPaymentMethod = "MPESA"
	PaymentResultPaymentMethodEnaira               PaymentResultPaymentMethod = "ENAIRA"
	PaymentResultPaymentMethodOnevoucher           PaymentResultPaymentMethod = "ONEVOUCHER"
	PaymentResultPaymentMethodBancontact           PaymentResultPaymentMethod = "BANCONTACT"
	PaymentResultPaymentMethodSwish                PaymentResultPaymentMethod = "SWISH"
	PaymentResultPaymentMethodEft                  PaymentResultPaymentMethod = "EFT"
	PaymentResultPaymentMethodGcash                PaymentResultPaymentMethod = "GCASH"
	PaymentResultPaymentMethodPaymaya              PaymentResultPaymentMethod = "PAYMAYA"
	PaymentResultPaymentMethodPagoMovil            PaymentResultPaymentMethod = "PAGO_MOVIL"
	PaymentResultPaymentMethodPagoMovilInst        PaymentResultPaymentMethod = "PAGO_MOVIL_INST"
	PaymentResultPaymentMethodBiopago              PaymentResultPaymentMethod = "BIOPAGO"
	PaymentResultPaymentMethodCash                 PaymentResultPaymentMethod = "CASH"
	PaymentResultPaymentMethodVoucherry            PaymentResultPaymentMethod = "VOUCHERRY"
	PaymentResultPaymentMethodApplepay             PaymentResultPaymentMethod = "APPLEPAY"
	PaymentResultPaymentMethodGooglepay            PaymentResultPaymentMethod = "GOOGLEPAY"
	PaymentResultPaymentMethodBrite                PaymentResultPaymentMethod = "BRITE"
	PaymentResultPaymentMethodVouchstar            PaymentResultPaymentMethod = "VOUCHSTAR"
	PaymentResultPaymentMethodRevolut              PaymentResultPaymentMethod = "REVOLUT"
	PaymentResultPaymentMethodOnlineBanking        PaymentResultPaymentMethod = "ONLINE_BANKING"
	PaymentResultPaymentMethodPromptpay            PaymentResultPaymentMethod = "PROMPTPAY"
	PaymentResultPaymentMethodTruemoney            PaymentResultPaymentMethod = "TRUEMONEY"
	PaymentResultPaymentMethodMomopayVn            PaymentResultPaymentMethod = "MOMOPAY_VN"
	PaymentResultPaymentMethodMomopayRw            PaymentResultPaymentMethod = "MOMOPAY_RW"
	PaymentResultPaymentMethodVnpayQr              PaymentResultPaymentMethod = "VNPAY_QR"
	PaymentResultPaymentMethodN26                  PaymentResultPaymentMethod = "N26"
	PaymentResultPaymentMethodWise                 PaymentResultPaymentMethod = "WISE"
	PaymentResultPaymentMethodPaydoWallet          PaymentResultPaymentMethod = "PAYDO_WALLET"
	PaymentResultPaymentMethodPapara               PaymentResultPaymentMethod = "PAPARA"
	PaymentResultPaymentMethodPayoutSepaBatch      PaymentResultPaymentMethod = "PAYOUT_SEPA_BATCH"
	PaymentResultPaymentMethodPayoutNonsepaRequest PaymentResultPaymentMethod = "PAYOUT_NONSEPA_REQUEST"
)

func (PaymentResultPaymentMethod) IsKnown

func (r PaymentResultPaymentMethod) IsKnown() bool

type PaymentResultPaymentMethodDetails

type PaymentResultPaymentMethodDetails struct {
	// Card expiration month (for BASIC_CARD payment method only)
	CardExpiryMonth string `json:"cardExpiryMonth"`
	// Card expiration year (for BASIC_CARD payment method only)
	CardExpiryYear string `json:"cardExpiryYear"`
	// Cardholder name (for BASIC_CARD payment method only)
	CardholderName string `json:"cardholderName"`
	// Card issuing country code (for BASIC_CARD payment method only)
	CardIssuingCountryCode string `json:"cardIssuingCountryCode"`
	// Customer account Id in external system or masked card PAN
	CustomerAccountNumber string                                `json:"customerAccountNumber"`
	JSON                  paymentResultPaymentMethodDetailsJSON `json:"-"`
}

func (*PaymentResultPaymentMethodDetails) UnmarshalJSON

func (r *PaymentResultPaymentMethodDetails) UnmarshalJSON(data []byte) (err error)

type PaymentResultPaymentType

type PaymentResultPaymentType string

Payment Type

const (
	PaymentResultPaymentTypeDeposit    PaymentResultPaymentType = "DEPOSIT"
	PaymentResultPaymentTypeWithdrawal PaymentResultPaymentType = "WITHDRAWAL"
	PaymentResultPaymentTypeRefund     PaymentResultPaymentType = "REFUND"
)

func (PaymentResultPaymentType) IsKnown

func (r PaymentResultPaymentType) IsKnown() bool

type PaymentResultState

type PaymentResultState string

Payment State

const (
	PaymentResultStateCheckout  PaymentResultState = "CHECKOUT"
	PaymentResultStatePending   PaymentResultState = "PENDING"
	PaymentResultStateCancelled PaymentResultState = "CANCELLED"
	PaymentResultStateDeclined  PaymentResultState = "DECLINED"
	PaymentResultStateCompleted PaymentResultState = "COMPLETED"
)

func (PaymentResultState) IsKnown

func (r PaymentResultState) IsKnown() bool

type PaymentService

type PaymentService struct {
	Options    []option.RequestOption
	Operations *PaymentOperationService
}

PaymentService contains methods and other services that help with interacting with the paymaxis API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewPaymentService method instead.

func NewPaymentService

func NewPaymentService(opts ...option.RequestOption) (r *PaymentService)

NewPaymentService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*PaymentService) Get

func (r *PaymentService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *Payment, err error)

Find Payment by Id

func (*PaymentService) List

Get a list of payments sorted by creation date (most recent first)

func (*PaymentService) New

func (r *PaymentService) New(ctx context.Context, body PaymentNewParams, opts ...option.RequestOption) (res *Payment, err error)

Payment request, used for DEPOSITS, WITHDRAWALS and REFUNDS

type Subscription

type Subscription struct {
	Result SubscriptionResult `json:"result"`
	// HTTP status code
	Status    int64            `json:"status"`
	Timestamp string           `json:"timestamp" format:"ISO 8601"`
	JSON      subscriptionJSON `json:"-"`
}

func (*Subscription) UnmarshalJSON

func (r *Subscription) UnmarshalJSON(data []byte) (err error)

type SubscriptionResult

type SubscriptionResult struct {
	// Subscription Id
	ID string `json:"id"`
	// The amount to be used for subsequent payments
	Amount float64 `json:"amount"`
	// Date and time the subscription was created
	CreateTime string `json:"createTime" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
	// Payment currency
	Currency string `json:"currency" format:"ISO 4217 code for FIAT currencies or cryptocurrency symbol"`
	// Id of the customer from initial payment
	CustomerReferenceID string `json:"customerReferenceId"`
	// List of payments automatically generated for this subscription
	Cycles []SubscriptionResultCycle `json:"cycles"`
	// Description for subsequent recurring payments
	Description string `json:"description"`
	// The number of intervals after which a subscriber is billed. For example, if the
	// frequencyUnit is DAY with an frequency of 2, the subscription is billed once
	// every two days.
	Frequency int64 `json:"frequency"`
	// The interval at which the subscription is billed. Use 'MINUTE' for testing
	// purposes only.
	FrequencyUnit SubscriptionResultFrequencyUnit `json:"frequencyUnit"`
	// Token that is used to continue the recurring chain
	RecurringToken string `json:"recurringToken"`
	// Required number of subsequent recurring payments. Unlimited if value is not
	// specified.
	RequestedNumberOfCycles int64 `json:"requestedNumberOfCycles"`
	// Retry strategy for subscription. If not specified, the subscription is canceled
	// after the first failed payment attempt.
	RetryStrategy SubscriptionResultRetryStrategy `json:"retryStrategy"`
	// Date and time of the 1st cycle
	StartTime string `json:"startTime" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
	// Subscription state
	State SubscriptionResultState `json:"state"`
	JSON  subscriptionResultJSON  `json:"-"`
}

func (*SubscriptionResult) UnmarshalJSON

func (r *SubscriptionResult) UnmarshalJSON(data []byte) (err error)

type SubscriptionResultCycle

type SubscriptionResultCycle struct {
	// Payment amount
	Amount float64 `json:"amount"`
	// Payment Id
	PaymentID string `json:"paymentId"`
	// Payment State
	PaymentState SubscriptionResultCyclesPaymentState `json:"paymentState"`
	// Sequence number of the cycle
	Sequence int64 `json:"sequence"`
	// Date and time when this cycle was supposed to be created according to the
	// schedule
	StartTime string `json:"startTime" format:"ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)"`
	// Cycle type
	Type SubscriptionResultCyclesType `json:"type"`
	JSON subscriptionResultCycleJSON  `json:"-"`
}

func (*SubscriptionResultCycle) UnmarshalJSON

func (r *SubscriptionResultCycle) UnmarshalJSON(data []byte) (err error)

type SubscriptionResultCyclesPaymentState

type SubscriptionResultCyclesPaymentState string

Payment State

const (
	SubscriptionResultCyclesPaymentStateCheckout  SubscriptionResultCyclesPaymentState = "CHECKOUT"
	SubscriptionResultCyclesPaymentStatePending   SubscriptionResultCyclesPaymentState = "PENDING"
	SubscriptionResultCyclesPaymentStateCancelled SubscriptionResultCyclesPaymentState = "CANCELLED"
	SubscriptionResultCyclesPaymentStateDeclined  SubscriptionResultCyclesPaymentState = "DECLINED"
	SubscriptionResultCyclesPaymentStateCompleted SubscriptionResultCyclesPaymentState = "COMPLETED"
)

func (SubscriptionResultCyclesPaymentState) IsKnown

type SubscriptionResultCyclesType

type SubscriptionResultCyclesType string

Cycle type

const (
	SubscriptionResultCyclesTypeRegular SubscriptionResultCyclesType = "REGULAR"
	SubscriptionResultCyclesTypeRetry   SubscriptionResultCyclesType = "RETRY"
)

func (SubscriptionResultCyclesType) IsKnown

func (r SubscriptionResultCyclesType) IsKnown() bool

type SubscriptionResultFrequencyUnit

type SubscriptionResultFrequencyUnit string

The interval at which the subscription is billed. Use 'MINUTE' for testing purposes only.

const (
	SubscriptionResultFrequencyUnitMinute SubscriptionResultFrequencyUnit = "MINUTE"
	SubscriptionResultFrequencyUnitDay    SubscriptionResultFrequencyUnit = "DAY"
	SubscriptionResultFrequencyUnitWeek   SubscriptionResultFrequencyUnit = "WEEK"
	SubscriptionResultFrequencyUnitMonth  SubscriptionResultFrequencyUnit = "MONTH"
)

func (SubscriptionResultFrequencyUnit) IsKnown

type SubscriptionResultRetryStrategy

type SubscriptionResultRetryStrategy struct {
	// The number of intervals after which the system will retry the payment after an
	// unsuccessful attempt
	Frequency int64 `json:"frequency,required"`
	// Required number of retries
	NumberOfCycles int64 `json:"numberOfCycles,required"`
	// If specified, the nth element contains the percentage of the initial amount that
	// will be charged for the nth retry
	AmountAdjustments []int64 `json:"amountAdjustments"`
	// The interval at which the subscription is retried. Use 'MINUTE' for testing
	// purposes only.
	FrequencyUnit SubscriptionResultRetryStrategyFrequencyUnit `json:"frequencyUnit"`
	JSON          subscriptionResultRetryStrategyJSON          `json:"-"`
}

Retry strategy for subscription. If not specified, the subscription is canceled after the first failed payment attempt.

func (*SubscriptionResultRetryStrategy) UnmarshalJSON

func (r *SubscriptionResultRetryStrategy) UnmarshalJSON(data []byte) (err error)

type SubscriptionResultRetryStrategyFrequencyUnit

type SubscriptionResultRetryStrategyFrequencyUnit string

The interval at which the subscription is retried. Use 'MINUTE' for testing purposes only.

const (
	SubscriptionResultRetryStrategyFrequencyUnitMinute SubscriptionResultRetryStrategyFrequencyUnit = "MINUTE"
	SubscriptionResultRetryStrategyFrequencyUnitDay    SubscriptionResultRetryStrategyFrequencyUnit = "DAY"
	SubscriptionResultRetryStrategyFrequencyUnitWeek   SubscriptionResultRetryStrategyFrequencyUnit = "WEEK"
	SubscriptionResultRetryStrategyFrequencyUnitMonth  SubscriptionResultRetryStrategyFrequencyUnit = "MONTH"
)

func (SubscriptionResultRetryStrategyFrequencyUnit) IsKnown

type SubscriptionResultState

type SubscriptionResultState string

Subscription state

const (
	SubscriptionResultStateActive    SubscriptionResultState = "ACTIVE"
	SubscriptionResultStateCancelled SubscriptionResultState = "CANCELLED"
	SubscriptionResultStateCompleted SubscriptionResultState = "COMPLETED"
)

func (SubscriptionResultState) IsKnown

func (r SubscriptionResultState) IsKnown() bool

type SubscriptionService

type SubscriptionService struct {
	Options []option.RequestOption
}

SubscriptionService contains methods and other services that help with interacting with the paymaxis API.

Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewSubscriptionService method instead.

func NewSubscriptionService

func NewSubscriptionService(opts ...option.RequestOption) (r *SubscriptionService)

NewSubscriptionService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*SubscriptionService) Get

func (r *SubscriptionService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *Subscription, err error)

Find Subscription by Id

func (*SubscriptionService) Update

Patch Subscription

type SubscriptionUpdateParams

type SubscriptionUpdateParams struct {
	// New subscription state
	State param.Field[SubscriptionUpdateParamsState] `json:"state"`
}

func (SubscriptionUpdateParams) MarshalJSON

func (r SubscriptionUpdateParams) MarshalJSON() (data []byte, err error)

type SubscriptionUpdateParamsState

type SubscriptionUpdateParamsState string

New subscription state

const (
	SubscriptionUpdateParamsStateCancelled SubscriptionUpdateParamsState = "CANCELLED"
)

func (SubscriptionUpdateParamsState) IsKnown

func (r SubscriptionUpdateParamsState) IsKnown() bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL