rize

package module
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2022 License: MIT Imports: 15 Imported by: 0

README


Rize Go SDK

Rize makes financial services simple and accessible by enabling fintechs, financial institutions and brands to build across multiple account types with one API. The Rize Go SDK enables access to all platform services in our sandbox, integration and production environments.

When you're ready to build, open a sandbox environment. If you have questions, feedback, or a use case you want to discuss with us, contact us at hello@rizemoney.com.

For more information, check out our Platform API Documentation.

See the Examples ReadMe for a full walk-through of Customer Onboarding.

Supported Go Versions

The Rize Go SDK is compatible with the two most recent, major Go releases.

We currently support Go v1.18 and higher.

Getting Started

Installation

To install the latest Rize Go SDK, add the module as a dependency using go mod:

go get github.com/rizefinance/rize-go-sdk@latest

To install a specific release version:

go get github.com/rizefinance/rize-go-sdk@v1.0.0
Configuration

The SDK requires program configuration credentials in order to interact with the API.

You can find these in the Rize Admin Portal.

Parameter Description Default
HMACKey HMAC key for the target environment ""
ProgramUID Program UID for the target environment ""
Environment The Rize environment to be used:
"sandbox", "integration" or "production"
"sandbox"
Debug Enable debug logging false
Import the SDK

Import the SDK module into your code:

import "github.com/rizefinance/rize-go-sdk"
Start Making API Calls
import "github.com/rizefinance/rize-go-sdk"

func main() {
	config := rize.Config{
		HMACKey:     hmac,
		ProgramUID:  programUID,
		Environment: environment,
		Debug:       false,
	}
	rc, err := rize.NewClient(&config)
	if err != nil {
		log.Fatal("Error building RizeClient\n", err)
	}
	
	// Create a new Compliance Workflow
	wcp := rize.WorkflowCreateParams{
		CustomerUID:              "h9MzupcjtA3LPW2e",
		ProductCompliancePlanUID: "25NQX3GGXpAtpUmP",
	}
	c, err := rc.ComplianceWorkflows.Create(context.Background(), &wcp)
	if err != nil {
		log.Fatal("Error creating new Compliance Workflow\n", err)
	}
}
Configure http.Client

You have the option to supply your own http.Client. By default, the SDK uses DefaultClient with a 30s timeout.

To set a proxy for all requests, configure the Transport for the http.Client:

config := rize.Config{
	HMACKey:     hmac,
	ProgramUID:  programUID,
	Environment: environment,
	HTTPClient: &http.Client{
		Transport: &http.Transport{
			Proxy: http.ProxyURL(proxyUrl),
		},
	},
	Debug:       false,
}

Similarly, to configure the timeout, set it on the http.Client:

config := rize.Config{
	HMACKey:     hmac,
	ProgramUID:  programUID,
	Environment: environment,
	HTTPClient: &http.Client{
		Timeout: time.Minute,
	},
	Debug:       false,
}

Rize Message Queue

The SDK provides a package to connect to the Rize Message Queue using the STOMP protocol. The mq package wraps go-stomp with configuration settings necessary for connecting and subscribing to events from the RMQ.

Invoking MessageQueue.Subscribe will return a *stomp.Subscription type containing a channel from which to receive event messages.

import "github.com/rizefinance/rize-go-sdk/mq"

func main() {
	config := mq.Config{
		Username:    "mq_username",
		Password:    "mq_password",
		ClientID:    "mq_client_id",
		Environment: "environment",
		Debug:       true,
	}

	// Create new Rize MQ client
	mc, err := mq.NewClient(&config)
	if err != nil {
		log.Fatal("Error building MQ client\n", err)
	}

	// Create MQ connection
	if err := mc.MessageQueue.Connect(); err != nil {
		log.Fatal("Error creation MQ connection:\n", err)
	}

	// Subscribe to customer MQ topics
	sub, err := mc.MessageQueue.Subscribe("customer", "customerSubscription")
	if err != nil {
		log.Printf("Subscribe failed: %s\n", err)
	}

	// Unsubscribe from a subscription
	if err := mc.MessageQueue.Unsubscribe(sub); err != nil {
		log.Printf("Unsubscribe failed: %s\n", err)
	}
}

Examples

The examples directory provides basic implementation examples for each API endpoint that can be executed via the command line. Running the examples will require configuration credentials to be set as environment variables.

Use the provided dotenv file to set environment variables for local testing.

# Generate a local configuration file
$ cp .env-example .env
# Run an example Platform API method <SERVICE_NAME> <METHOD_NAME>
$ go run cmd/platform/main.go -s CustomerService -m List

# Open help menu
$ go run cmd/platform/main.go -h
# Connect to the Rize Message Queue and subscribe to the Customer topic
$ go run cmd/mq/main.go

See the Examples ReadMe for a full walk-through of Customer Onboarding.

Unit Tests

Test files for the platform SDK can be found in the test directory.

# Install Task
$ brew install go-task/tap/go-task
# Run all unit tests
$ task test

Documentation

License

MIT License. Copyright 2021-Present Rize Money, Inc. All rights reserved.

See LICENSE

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Version

func Version() string

Version outputs the current SDK version

Types

type Adjustment

type Adjustment struct {
	UID                 string          `json:"uid,omitempty"`
	ExternalUID         string          `json:"external_uid,omitempty"`
	CustomerUID         string          `json:"customer_uid,omitempty"`
	USDAdjustmentAmount string          `json:"usd_adjustment_amount,omitempty"`
	AdjustmentType      *AdjustmentType `json:"adjustment_type,omitempty"`
	CreatedAt           time.Time       `json:"created_at,omitempty"`
	Status              string          `json:"status,omitempty"`
}

Adjustment data type

type AdjustmentCreateParams

type AdjustmentCreateParams struct {
	ExternalUID         string `json:"external_uid,omitempty"`
	CustomerUID         string `json:"customer_uid"`
	USDAdjustmentAmount string `json:"usd_adjustment_amount"`
	AdjustmentTypeUID   string `json:"adjustment_type_uid"`
}

AdjustmentCreateParams are the body params used when creating a new Adjustment

type AdjustmentListParams

type AdjustmentListParams struct {
	CustomerUID            string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	AdjustmentTypeUID      string `url:"adjustment_type_uid,omitempty" json:"adjustment_type_uid,omitempty"`
	ExternalUID            string `url:"external_uid,omitempty" json:"external_uid,omitempty"`
	USDAdjustmentAmountMax int    `url:"usd_adjustment_amount_max,omitempty" json:"usd_adjustment_amount_max,omitempty"`
	USDAdjustmentAmountMin int    `url:"usd_adjustment_amount_min,omitempty" json:"usd_adjustment_amount_min,omitempty"`
	Sort                   string `url:"sort,omitempty" json:"sort,omitempty"`
}

AdjustmentListParams builds the query parameters used in querying Adjustments

type AdjustmentListResponse added in v1.1.0

type AdjustmentListResponse struct {
	ListResponse
	Data []*Adjustment `json:"data"`
}

AdjustmentListResponse is an API response containing a list of Adjustments

type AdjustmentType

type AdjustmentType struct {
	UID         string `json:"uid,omitempty"`
	Name        string `json:"name,omitempty"`
	Description string `json:"description,omitempty"`
	Fee         bool   `json:"fee,omitempty"`
	ProgramUID  string `json:"program_uid,omitempty"`
	Deprecated  bool   `json:"deprecated,omitempty"`
}

AdjustmentType data type

type AdjustmentTypeListParams

type AdjustmentTypeListParams struct {
	CustomerUID    string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	ProgramUID     string `url:"program_uid,omitempty" json:"program_uid,omitempty"`
	ShowDeprecated bool   `url:"show_deprecated,omitempty" json:"show_deprecated,omitempty"`
}

AdjustmentTypeListParams builds the query parameters used in querying Adjustment Types

type AdjustmentTypeListResponse added in v1.1.0

type AdjustmentTypeListResponse struct {
	ListResponse
	Data []*AdjustmentType `json:"data"`
}

AdjustmentTypeListResponse is an API response containing a list of Adjustments Types

type AuthTokenResponse

type AuthTokenResponse struct {
	Token string `json:"token"`
}

AuthTokenResponse is the response format received when fetching an Auth token

type CardArtwork

type CardArtwork struct {
	UID        string `json:"uid,omitempty"`
	IsDefault  bool   `json:"is_default,omitempty"`
	Name       string `json:"name,omitempty"`
	ProgramUID string `json:"program_uid,omitempty"`
	Staged     bool   `json:"staged,omitempty"`
	StyleID    string `json:"style_id,omitempty"`
}

CardArtwork data type

type CardArtworkListParams

type CardArtworkListParams struct {
	ProgramUID string `url:"program_uid,omitempty" json:"program_uid,omitempty"`
	Limit      int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset     int    `url:"offset,omitempty" json:"offset,omitempty"`
}

CardArtworkListParams builds the query parameters used in querying Card Artwork

type CardArtworkListResponse added in v1.1.0

type CardArtworkListResponse struct {
	ListResponse
	Data []*CardArtwork `json:"data"`
}

CardArtworkListResponse is an API response containing a list of Card Artwork

type Client

type Client struct {

	// Cached Auth token data
	*TokenCache
	// All available Rize API services
	Adjustments         *adjustmentService
	Auth                *authService
	CardArtworks        *cardArtworkService
	ComplianceWorkflows *complianceWorkflowService
	CustodialAccounts   *custodialAccountService
	CustodialPartners   *custodialPartnerService
	CustomerProducts    *customerProductService
	Customers           *customerService
	DebitCards          *debitCardService
	Documents           *documentService
	Evaluations         *evaluationService
	KYCDocuments        *kycDocumentService
	PinwheelJobs        *pinwheelJobService
	Pools               *poolService
	Products            *productService
	Sandbox             *sandboxService
	SyntheticAccounts   *syntheticAccountService
	Transactions        *transactionService
	Transfers           *transferService
	// contains filtered or unexported fields
}

Client is the top-level client containing all APIs

func NewClient

func NewClient(cfg *Config) (*Client, error)

NewClient initializes the Client and all services

type Config

type Config struct {
	// Program within the target environment
	ProgramUID string
	// HMAC key for the target environment
	HMACKey string
	// Rize infrastructure target environment. Defaults to `sandbox“
	Environment string
	// Provide your own HTTPClient configuration (optional)
	HTTPClient *http.Client
	// Change the API base URL for local/unit testing
	BaseURL string
	// Enable debug logging
	Debug bool
}

Config stores Rize configuration values

type CustodialAccount

type CustodialAccount struct {
	UID                    string                          `json:"uid,omitempty"`
	ExternalUID            string                          `json:"external_uid,omitempty"`
	CustomerUID            string                          `json:"customer_uid,omitempty"`
	PoolUID                string                          `json:"pool_uid,omitempty"`
	Type                   string                          `json:"type,omitempty"`
	Liability              bool                            `json:"liability,omitempty"`
	Name                   string                          `json:"name,omitempty"`
	PrimaryAccount         bool                            `json:"primary_account,omitempty"`
	Status                 string                          `json:"status,omitempty"`
	AccountErrors          []*CustodialAccountError        `json:"account_errors,omitempty"`
	NetUSDBalance          string                          `json:"net_usd_balance,omitempty"`
	NetUSDPendingBalance   string                          `json:"net_usd_pending_balance,omitempty"`
	NetUSDAvailableBalance string                          `json:"net_usd_available_balance,omitempty"`
	AssetBalances          []*CustodialAccountAssetBalance `json:"asset_balances,omitempty"`
	AccountNumber          string                          `json:"account_number,omitempty"`
	AccountNumberMasked    string                          `json:"account_number_masked,omitempty"`
	RoutingNumber          string                          `json:"routing_number,omitempty"`
	OpenedAt               time.Time                       `json:"opened_at,omitempty"`
	ClosedAt               time.Time                       `json:"closed_at,omitempty"`
}

CustodialAccount data type

type CustodialAccountAssetBalance

type CustodialAccountAssetBalance struct {
	AssetQuantity   string `json:"asset_quantity,omitempty"`
	AssetType       string `json:"asset_type,omitempty"`
	CurrentUSDValue string `json:"current_usd_value,omitempty"`
	Debit           bool   `json:"debit,omitempty"`
}

CustodialAccountAssetBalance provides balance info for the various asset types held in this Custodial Account

type CustodialAccountError

type CustodialAccountError struct {
	ErrorCode        string `json:"error_code,omitempty"`
	ErrorName        string `json:"error_name,omitempty"`
	ErrorDescription string `json:"error_description,omitempty"`
}

CustodialAccountError provides errors info related to this account

type CustodialAccountListParams

type CustodialAccountListParams struct {
	CustomerUID string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	ExternalUID string `url:"external_uid,omitempty" json:"external_uid,omitempty"`
	Limit       int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset      int    `url:"offset,omitempty" json:"offset,omitempty"`
	Liability   bool   `url:"liability,omitempty" json:"liability,omitempty"`
	Type        string `url:"type,omitempty" json:"type,omitempty"`
}

CustodialAccountListParams builds the query parameters used in querying Custodial Accounts

type CustodialAccountListResponse added in v1.1.0

type CustodialAccountListResponse struct {
	ListResponse
	Data []*CustodialAccount `json:"data"`
}

CustodialAccountListResponse is an API response containing a list of Custodial Accounts

type CustodialLineItem

type CustodialLineItem struct {
	UID                    string    `json:"uid,omitempty"`
	SettledIndex           int       `json:"settled_index,omitempty"`
	TransactionUID         string    `json:"transaction_uid,omitempty"`
	TransactionEventUID    string    `json:"transaction_event_uid,omitempty"`
	CustodialAccountUID    string    `json:"custodial_account_uid,omitempty"`
	DebitCardUID           string    `json:"debit_card_uid,omitempty"`
	Status                 string    `json:"status,omitempty"`
	USDollarAmount         string    `json:"us_dollar_amount,omitempty"`
	RunningUSDollarBalance string    `json:"running_us_dollar_balance,omitempty"`
	RunningAssetBalance    string    `json:"running_asset_balance,omitempty"`
	AssetQuantity          string    `json:"asset_quantity,omitempty"`
	AssetType              string    `json:"asset_type,omitempty"`
	ClosingPrice           string    `json:"closing_price,omitempty"`
	Type                   string    `json:"type,omitempty"`
	Description            string    `json:"description,omitempty"`
	CreatedAt              time.Time `json:"created_at,omitempty"`
	OccurredAt             time.Time `json:"occurred_at,omitempty"`
	SettledAt              time.Time `json:"settled_at,omitempty"`
}

CustodialLineItem data type

type CustodialLineItemListParams

type CustodialLineItemListParams struct {
	CustomerUID         string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	CustodialAccountUID string `url:"custodial_account_uid,omitempty" json:"custodial_account_uid,omitempty"`
	Status              string `url:"status,omitempty" json:"status,omitempty"`
	USDollarAmountMax   int    `url:"us_dollar_amount_max,omitempty" json:"us_dollar_amount_max,omitempty"`
	USDollarAmountMin   int    `url:"us_dollar_amount_min,omitempty" json:"us_dollar_amount_min,omitempty"`
	TransactionEventUID string `url:"transaction_event_uid,omitempty" json:"transaction_event_uid,omitempty"`
	TransactionUID      string `url:"transaction_uid,omitempty" json:"transaction_uid,omitempty"`
	Limit               int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset              int    `url:"offset,omitempty" json:"offset,omitempty"`
	Sort                string `url:"sort,omitempty" json:"sort,omitempty"`
}

CustodialLineItemListParams builds the query parameters used in querying CustodialLineItems

type CustodialLineItemListResponse added in v1.1.0

type CustodialLineItemListResponse struct {
	ListResponse
	Data []*CustodialLineItem `json:"data"`
}

CustodialLineItemListResponse is an API response containing a list of CustodialLineItems

type CustodialPartner

type CustodialPartner struct {
	UID  string `json:"uid,omitempty"`
	Name string `json:"name,omitempty"`
	Type string `json:"type,omitempty"`
}

CustodialPartner data type

type CustodialPartnerListResponse added in v1.1.0

type CustodialPartnerListResponse struct {
	ListResponse
	Data []*CustodialPartner `json:"data"`
}

CustodialPartnerListResponse is an API response containing a list of Custodial Partners

type Customer

type Customer struct {
	UID                   string                     `json:"uid,omitempty"`
	ExternalUID           string                     `json:"external_uid,omitempty"`
	ActivatedAt           time.Time                  `json:"activated_at,omitempty"`
	CreatedAt             time.Time                  `json:"created_at,omitempty"`
	CustomerType          string                     `json:"customer_type,omitempty"`
	Email                 string                     `json:"email,omitempty"`
	Details               *CustomerDetails           `json:"details,omitempty"`
	KYCStatus             string                     `json:"kyc_status,omitempty"`
	KYCStatusReasons      []string                   `json:"kyc_status_reasons,omitempty"`
	LockReason            string                     `json:"lock_reason,omitempty"`
	LockedAt              time.Time                  `json:"locked_at,omitempty"`
	PIIConfirmedAt        time.Time                  `json:"pii_confirmed_at,omitempty"`
	PoolUIDs              []string                   `json:"pool_uids,omitempty"`
	PrimaryCustomerUID    string                     `json:"primary_customer_uid,omitempty"`
	ProfileResponses      []*CustomerProfileResponse `json:"profile_responses,omitempty"`
	ProgramUID            string                     `json:"program_uid,omitempty"`
	SecondaryCustomerUIDs []string                   `json:"secondary_customer_uids,omitempty"`
	Status                string                     `json:"status,omitempty"`
	TotalBalance          string                     `json:"total_balance,omitempty"`
}

Customer data type

type CustomerAddress

type CustomerAddress struct {
	Street1    string `json:"street1,omitempty"`
	Street2    string `json:"street2,omitempty"`
	City       string `json:"city,omitempty"`
	State      string `json:"state,omitempty"`
	PostalCode string `json:"postal_code,omitempty"`
}

CustomerAddress information

type CustomerCreateParams

type CustomerCreateParams struct {
	CustomerType       string           `json:"customer_type,omitempty"`
	PrimaryCustomerUID string           `json:"primary_customer_uid,omitempty"`
	ExternalUID        string           `json:"external_uid,omitempty"`
	Email              string           `json:"email,omitempty"`
	Details            *CustomerDetails `json:"details,omitempty"`
}

CustomerCreateParams are the body params used when creating a new Customer

type CustomerDeleteParams

type CustomerDeleteParams struct {
	ArchiveNote string `json:"archive_note,omitempty"`
}

CustomerDeleteParams are the body params used when deleting/archiving a Customer

type CustomerDetails

type CustomerDetails struct {
	FirstName    string           `json:"first_name,omitempty"`
	MiddleName   string           `json:"middle_name,omitempty"`
	LastName     string           `json:"last_name,omitempty"`
	Suffix       string           `json:"suffix,omitempty"`
	Phone        string           `json:"phone,omitempty"`
	BusinessName string           `json:"business_name,omitempty"`
	DOB          internal.DOB     `json:"dob,omitempty"`
	SSN          string           `json:"ssn,omitempty"`
	SSNLastFour  string           `json:"ssn_last_four,omitempty"`
	Address      *CustomerAddress `json:"address,omitempty"`
}

CustomerDetails is an object containing the supplied identifying information for the Customer

type CustomerListParams

type CustomerListParams struct {
	UID              string `url:"uid,omitempty" json:"uid,omitempty"`
	Status           string `url:"status,omitempty" json:"status,omitempty"`
	IncludeInitiated bool   `url:"include_initiated,omitempty" json:"include_initiated"`
	KYCStatus        string `url:"kyc_status,omitempty" json:"kyc_status,omitempty"`
	CustomerType     string `url:"customer_type,omitempty" json:"customer_type,omitempty"`
	FirstName        string `url:"first_name,omitempty" json:"first_name,omitempty"`
	LastName         string `url:"last_name,omitempty" json:"last_name,omitempty"`
	Email            string `url:"email,omitempty" json:"email,omitempty"`
	Locked           bool   `url:"locked,omitempty" json:"locked"`
	ProgramUID       string `url:"program_uid,omitempty" json:"program_uid,omitempty"`
	BusinessName     string `url:"business_name,omitempty" json:"business_name,omitempty"`
	ExternalUID      string `url:"external_uid,omitempty" json:"external_uid,omitempty"`
	PoolUID          string `url:"pool_uid,omitempty" json:"pool_uid,omitempty"`
	Limit            int    `url:"limit,omitempty" json:"limit"`
	Offset           int    `url:"offset,omitempty" json:"offset"`
	Sort             string `url:"sort,omitempty" json:"sort,omitempty"`
}

CustomerListParams builds the query parameters used in querying Customers

type CustomerListResponse added in v1.1.0

type CustomerListResponse struct {
	ListResponse
	Data []*Customer `json:"data"`
}

CustomerListResponse is an API response containing a list of Customers

type CustomerLockParams

type CustomerLockParams struct {
	LockNote     string `json:"lock_note,omitempty"`
	LockReason   string `json:"lock_reason,omitempty"`
	UnlockReason string `json:"unlock_reason,omitempty"`
}

CustomerLockParams are the body params used when locking/unlocking a Customer

type CustomerProduct

type CustomerProduct struct {
	UID           string `json:"uid,omitempty"`
	Status        string `json:"status,omitempty"`
	CustomerUID   string `json:"customer_uid,omitempty"`
	CustomerEmail string `json:"customer_email,omitempty"`
	ProductUID    string `json:"product_uid,omitempty"`
	ProductName   string `json:"product_name,omitempty"`
	ProgramUID    string `json:"program_uid,omitempty"`
}

CustomerProduct data type

type CustomerProductCreateParams

type CustomerProductCreateParams struct {
	CustomerUID string `json:"customer_uid"`
	ProductUID  string `json:"product_uid"`
}

CustomerProductCreateParams are the body params used when creating a new Customer Product

type CustomerProductListParams

type CustomerProductListParams struct {
	ProgramUID  string `url:"program_uid,omitempty" json:"program_uid,omitempty"`
	ProductUID  string `url:"product_uid,omitempty" json:"product_uid,omitempty"`
	CustomerUID string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
}

CustomerProductListParams builds the query parameters used in querying Customer Products

type CustomerProductListResponse added in v1.1.0

type CustomerProductListResponse struct {
	ListResponse
	Data []*CustomerProduct `json:"data"`
}

CustomerProductListResponse is an API response containing a list of Customer Products

type CustomerProfileResponse

type CustomerProfileResponse struct {
	ProfileRequirement    string                                `json:"profile_requirement,omitempty"`
	ProfileRequirementUID string                                `json:"profile_requirement_uid,omitempty"`
	ProfileResponse       *internal.CustomerProfileResponseItem `json:"profile_response,omitempty"`
}

CustomerProfileResponse contains Profile Response info

type CustomerProfileResponseParams

type CustomerProfileResponseParams struct {
	ProfileRequirementUID string                                `json:"profile_requirement_uid"`
	ProfileResponse       *internal.CustomerProfileResponseItem `json:"profile_response"`
}

CustomerProfileResponseParams are the body params used when updating Customer Profile responses

type CustomerUpdateParams

type CustomerUpdateParams struct {
	Email       string           `json:"email,omitempty"`
	Details     *CustomerDetails `json:"details,omitempty"`
	ExternalUID string           `json:"external_uid,omitempty"`
}

CustomerUpdateParams are the body params used when updating a Customer

type DebitCard

type DebitCard struct {
	UID                   string                    `json:"uid,omitempty"`
	ExternalUID           string                    `json:"external_uid,omitempty"`
	CustomerUID           string                    `json:"customer_uid,omitempty"`
	PoolUID               string                    `json:"pool_uid,omitempty"`
	SyntheticAccountUID   string                    `json:"synthetic_account_uid,omitempty"`
	CustodialAccountUID   string                    `json:"custodial_account_uid,omitempty"`
	CardArtworkUID        string                    `json:"card_artwork_uid,omitempty"`
	CardLastFourDigits    string                    `json:"card_last_four_digits,omitempty"`
	Status                string                    `json:"status,omitempty"`
	Type                  string                    `json:"type,omitempty"`
	ReadyToUse            bool                      `json:"ready_to_use,omitempty"`
	LockReason            string                    `json:"lock_reason,omitempty"`
	IssuedOn              string                    `json:"issued_on,omitempty"`
	LockedAt              time.Time                 `json:"locked_at,omitempty"`
	ClosedAt              time.Time                 `json:"closed_at,omitempty"`
	LatestShippingAddress *DebitCardShippingAddress `json:"latest_shipping_address,omitempty"`
}

DebitCard data type

type DebitCardAccessToken

type DebitCardAccessToken struct {
	Token    string `json:"token"`
	ConfigID string `json:"config_id"`
}

DebitCardAccessToken contains the token necessary to retrieve a virtual Debit Card image.

type DebitCardActivateParams

type DebitCardActivateParams struct {
	CardLastFourDigits string `json:"card_last_four_digits"`
	CVV                string `json:"cvv"`
	ExpiryDate         string `json:"expiry_date"`
}

DebitCardActivateParams are the body params used when activating a new Debit Card

type DebitCardCreateParams

type DebitCardCreateParams struct {
	ExternalUID     string                    `json:"external_uid,omitempty"`
	CardArtworkUID  string                    `json:"card_artwork_uid,omitempty"`
	CustomerUID     string                    `json:"customer_uid"`
	PoolUID         string                    `json:"pool_uid"`
	ShippingAddress *DebitCardShippingAddress `json:"shipping_address,omitempty"`
}

DebitCardCreateParams are the body params used when creating a new Debit Card

type DebitCardGetPINTokenParams

type DebitCardGetPINTokenParams struct {
	ForceReset bool `url:"force_reset" json:"force_reset"`
}

DebitCardGetPINTokenParams are the query params used fetching a Debit Card PIN reset token

type DebitCardListParams

type DebitCardListParams struct {
	CustomerUID string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	ExternalUID string `url:"external_uid,omitempty" json:"external_uid,omitempty"`
	Limit       int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset      int    `url:"offset,omitempty" json:"offset,omitempty"`
	PoolUID     string `url:"pool_uid,omitempty" json:"pool_uid,omitempty"`
	Locked      bool   `url:"locked,omitempty" json:"locked,omitempty"`
	Status      string `url:"status,omitempty" json:"status,omitempty"`
}

DebitCardListParams builds the query parameters used in querying Debit Cards

type DebitCardListResponse added in v1.1.0

type DebitCardListResponse struct {
	ListResponse
	Data []*DebitCard `json:"data"`
}

DebitCardListResponse is an API response containing a list of Debit Cards

type DebitCardLockParams

type DebitCardLockParams struct {
	LockReason string `json:"lock_reason"`
}

DebitCardLockParams are the body params used when locking a Debit Card

type DebitCardPINTokenResponse

type DebitCardPINTokenResponse struct {
	PinChangeToken string `json:"pin_change_token"`
}

DebitCardPINTokenResponse is an API response containing a token necessary to change a Debit Card's PIN

type DebitCardReissueParams

type DebitCardReissueParams struct {
	CardArtworkUID  string                    `json:"card_artwork_uid,omitempty"`
	ReissueReason   string                    `json:"reissue_reason"`
	ShippingAddress *DebitCardShippingAddress `json:"shipping_address,omitempty"`
}

DebitCardReissueParams are the body params used when reissuing a Debit Card

type DebitCardShippingAddress

type DebitCardShippingAddress struct {
	Street1    string `json:"street1,omitempty"`
	Street2    string `json:"street2,omitempty"`
	City       string `json:"city,omitempty"`
	State      string `json:"state,omitempty"`
	PostalCode string `json:"postal_code,omitempty"`
}

DebitCardShippingAddress is an optional field used to specify the shipping address for a physical Debit Card.

type Document

type Document struct {
	UID                  string    `json:"uid,omitempty"`
	DocumentType         string    `json:"document_type,omitempty"`
	ScopeType            string    `json:"scope_type,omitempty"`
	Name                 string    `json:"name,omitempty"`
	PeriodStartedAt      time.Time `json:"period_started_at,omitempty"`
	PeriodEndedAt        time.Time `json:"period_ended_at,omitempty"`
	CreatedAt            time.Time `json:"created_at,omitempty"`
	CustomerUIDs         []string  `json:"customer_uids,omitempty"`
	CustodialAccountUIDs []string  `json:"custodial_account_uids,omitempty"`
	SyntheticAccountUIDs []string  `json:"synthetic_account_uids,omitempty"`
}

Document data type

type DocumentListParams

type DocumentListParams struct {
	DocumentType        string `url:"document_type,omitempty" json:"document_type,omitempty"`
	Month               int    `url:"month,omitempty" json:"month,omitempty"`
	Year                int    `url:"year,omitempty" json:"year,omitempty"`
	CustodialAccountUID string `url:"custodial_account_uid,omitempty" json:"custodial_account_uid,omitempty"`
	CustomerUID         string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	SyntheticAccountUID string `url:"synthetic_account_uid,omitempty" json:"synthetic_account_uid,omitempty"`
	Limit               int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset              int    `url:"offset,omitempty" json:"offset,omitempty"`
}

DocumentListParams builds the query parameters used in querying Documents

type DocumentListResponse added in v1.1.0

type DocumentListResponse struct {
	ListResponse
	Data []*Document `json:"data"`
}

DocumentListResponse is an API response containing a list of Documents

type Error

type Error struct {
	Errors []*ErrorDetails `json:"errors"`
	Status int             `json:"status"`
}

Error is the default API error format

func (*Error) Error

func (e *Error) Error() string

Format error output

type ErrorDetails

type ErrorDetails struct {
	Code       int       `json:"code,omitempty"`
	Title      string    `json:"title,omitempty"`
	Detail     string    `json:"detail,omitempty"`
	OccurredAt time.Time `json:"occurred_at,omitempty"`
}

ErrorDetails from the error response

type Evaluation

type Evaluation struct {
	UID       string              `json:"uid,omitempty"`
	Outcome   string              `json:"outcome,omitempty"`
	CreatedAt time.Time           `json:"created_at,omitempty"`
	Flags     *EvaluationFlag     `json:"flags,omitempty"`
	PIIMatch  *EvaluationPIIMatch `json:"pii_match,omitempty"`
}

Evaluation data type

type EvaluationFlag

type EvaluationFlag struct {
	DocumentQualityCheck bool `json:"Document Quality Check,omitempty"`
	FraudCheck           bool `json:"Fraud Check,omitempty"`
	FinancialCheck       bool `json:"Financial Check,omitempty"`
	WatchListCheck       bool `json:"Watch List Check,omitempty"`
}

EvaluationFlag provides a mapping of categories to outcomes for those categories

type EvaluationListParams

type EvaluationListParams struct {
	CustomerUID string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	Latest      bool   `url:"latest,omitempty" json:"latest,omitempty"`
}

EvaluationListParams builds the query parameters used in querying Evaluations

type EvaluationListResponse added in v1.1.0

type EvaluationListResponse struct {
	ListResponse
	Data []*Evaluation `json:"data"`
}

EvaluationListResponse is an API response containing a list of Evaluations

type EvaluationPIIMatch

type EvaluationPIIMatch struct {
	DOBMatch     bool `json:"DOB Match,omitempty"`
	SSNMatch     bool `json:"SSN Match,omitempty"`
	NameMatch    bool `json:"Name Match,omitempty"`
	EmailMatch   bool `json:"Email Match,omitempty"`
	PhoneMatch   bool `json:"Phone Match,omitempty"`
	AddressMatch bool `json:"Address Match,omitempty"`
}

EvaluationPIIMatch provides a mapping of KYC categories to results returned from various services

type KYCDocument

type KYCDocument struct {
	UID       string    `json:"uid,omitempty"`
	Type      string    `json:"type,omitempty"`
	Filename  string    `json:"filename,omitempty"`
	Note      string    `json:"note,omitempty"`
	Extension string    `json:"extension,omitempty"`
	CreatedAt time.Time `json:"created_at,omitempty"`
}

KYCDocument data type

type KYCDocumentListParams

type KYCDocumentListParams struct {
	EvaluationUID string `url:"evaluation_uid,omitempty" json:"evaluation_uid,omitempty"`
}

KYCDocumentListParams builds the query parameters used in querying KYCDocuments

type KYCDocumentListResponse added in v1.1.0

type KYCDocumentListResponse struct {
	ListResponse
	Data []*KYCDocument `json:"data"`
}

KYCDocumentListResponse is an API response containing a list of KYC Documents

type KYCDocumentUploadParams

type KYCDocumentUploadParams struct {
	EvaluationUID string `json:"evaluation_uid"`
	Filename      string `json:"filename"`
	FileContent   string `json:"file_content"`
	Note          string `json:"note"`
	Type          string `json:"type"`
}

KYCDocumentUploadParams are the body params used when uploading a new KYC Document

type ListResponse added in v1.1.0

type ListResponse struct {
	TotalCount int `json:"total_count"`
	Count      int `json:"count"`
	Limit      int `json:"limit"`
	Offset     int `json:"offset"`
}

ListResponse is the default 'List' endpoint response. It is intended to be included in a response type specific to a service, which includes a Data array specific to that service type

type PinwheelJob

type PinwheelJob struct {
	UID                  string    `json:"uid,omitempty"`
	SyntheticAccountUID  string    `json:"synthetic_account_uid,omitempty"`
	Status               string    `json:"status,omitempty"`
	CreatedAt            time.Time `json:"created_at,omitempty"`
	StatusUpdatedAt      time.Time `json:"status_updated_at,omitempty"`
	CustomerUID          string    `json:"customer_uid,omitempty"`
	LinkToken            string    `json:"link_token,omitempty"`
	ExpiresAt            time.Time `json:"expires_at,omitempty"`
	JobNames             []string  `json:"job_names,omitempty"`
	Amount               int       `json:"amount,omitempty"`
	DisablePartialSwitch bool      `json:"disable_partial_switch,omitempty"`
	OrganizationName     string    `json:"organization_name,omitempty"`
	SkipWelcomeScreen    bool      `json:"skip_welcome_screen,omitempty"`
}

PinwheelJob data type

type PinwheelJobCreateParams

type PinwheelJobCreateParams struct {
	JobNames             []string `json:"job_names"`
	SyntheticAccountUID  string   `json:"synthetic_account_uid"`
	Amount               int      `json:"amount,omitempty"`
	DisablePartialSwitch bool     `json:"disable_partial_switch,omitempty"`
	OrganizationName     string   `json:"organization_name,omitempty"`
	SkipWelcomeScreen    bool     `json:"skip_welcome_screen,omitempty"`
}

PinwheelJobCreateParams are the body params used when creating a new Pinwheel Job

type PinwheelJobListParams

type PinwheelJobListParams struct {
	CustomerUID         string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	SyntheticAccountUID string `url:"synthetic_account_uid,omitempty" json:"synthetic_account_uid,omitempty"`
	Limit               int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset              int    `url:"offset,omitempty" json:"offset,omitempty"`
}

PinwheelJobListParams builds the query parameters used in querying Pinwheel Jobs

type PinwheelJobListResponse added in v1.1.0

type PinwheelJobListResponse struct {
	ListResponse
	Data []*PinwheelJob `json:"data"`
}

PinwheelJobListResponse is an API response containing a list of Pinwheel Jobs

type Pool

type Pool struct {
	UID              string   `json:"uid,omitempty"`
	Name             string   `json:"name,omitempty"`
	OwnerCustomerUID string   `json:"owner_customer_uid,omitempty"`
	CustomerUIDs     []string `json:"customer_uids,omitempty"`
}

Pool data type

type PoolListParams

type PoolListParams struct {
	CustomerUID string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	ExternalUID string `url:"external_uid,omitempty" json:"external_uid,omitempty"`
	Limit       int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset      int    `url:"offset,omitempty" json:"offset,omitempty"`
}

PoolListParams builds the query parameters used in querying Pools

type PoolListResponse added in v1.1.0

type PoolListResponse struct {
	ListResponse
	Data []*Pool `json:"data"`
}

PoolListResponse is an API response containing a list of Pools

type Product

type Product struct {
	UID                      string                `json:"uid,omitempty"`
	Name                     string                `json:"name,omitempty"`
	Description              string                `json:"description,omitempty"`
	ProductCompliancePlanUID string                `json:"product_compliance_plan_uid,omitempty"`
	CompliancePlanName       string                `json:"compliance_plan_name,omitempty"`
	CustomerTypes            []string              `json:"customer_types,omitempty"`
	PrerequisiteProductUIDs  []string              `json:"prerequisite_product_uids,omitempty"`
	ProgramUID               string                `json:"program_uid,omitempty"`
	ProfileRequirements      []*ProfileRequirement `json:"profile_requirements,omitempty"`
}

Product data type

type ProductListParams

type ProductListParams struct {
	ProgramUID string `url:"program_uid,omitempty" json:"program_uid,omitempty"`
}

ProductListParams builds the query parameters used in querying Products

type ProductListResponse added in v1.1.0

type ProductListResponse struct {
	ListResponse
	Data []*Product `json:"data"`
}

ProductListResponse is an API response containing a list of Products

type ProfileRequirement

type ProfileRequirement struct {
	ProfileRequirementUID string   `json:"profile_requirement_uid,omitempty"`
	ProfileRequirement    string   `json:"profile_requirement,omitempty"`
	Category              string   `json:"category,omitempty"`
	Required              bool     `json:"required,omitempty"`
	RequirementType       string   `json:"requirement_type,omitempty"`
	ResponseValues        []string `json:"response_values,omitempty"`
}

ProfileRequirement is a list of Profile Requirements a Customer must provide Profile Responses to

type SandboxCreateParams

type SandboxCreateParams struct {
	TransactionType  string  `json:"transaction_type"`
	CustomerUID      string  `json:"customer_uid"`
	DebitCardUID     string  `json:"debit_card_uid"`
	DenialReason     string  `json:"denial_reason,omitempty"`
	USDollarAmount   float64 `json:"us_dollar_amount"`
	Mcc              string  `json:"mcc,omitempty"`
	MerchantLocation string  `json:"merchant_location,omitempty"`
	MerchantName     string  `json:"merchant_name,omitempty"`
	MerchantNumber   string  `json:"merchant_number,omitempty"`
	Description      string  `json:"description,omitempty"`
}

SandboxCreateParams are the body params used when creating a new Sandbox transaction

type SandboxResponse

type SandboxResponse struct {
	Success string `json:"success"`
}

SandboxResponse is an API response

type SyntheticAccount

type SyntheticAccount struct {
	UID                         string                          `json:"uid,omitempty"`
	ExternalUID                 string                          `json:"external_uid,omitempty"`
	Name                        string                          `json:"name,omitempty"`
	PoolUID                     string                          `json:"pool_uid,omitempty"`
	CustomerUID                 string                          `json:"customer_uid,omitempty"`
	SyntheticAccountTypeUID     string                          `json:"synthetic_account_type_uid,omitempty"`
	SyntheticAccountCategory    string                          `json:"synthetic_account_category,omitempty"`
	Status                      string                          `json:"status,omitempty"`
	Liability                   bool                            `json:"liability,omitempty"`
	NetUSDBalance               string                          `json:"net_usd_balance,omitempty"`
	NetUSDPendingBalance        string                          `json:"net_usd_pending_balance,omitempty"`
	NetUSDAvailableBalance      string                          `json:"net_usd_available_balance,omitempty"`
	AssetBalances               []*SyntheticAccountAssetBalance `json:"asset_balances,omitempty"`
	MasterAccount               bool                            `json:"master_account,omitempty"`
	AccountNumber               string                          `json:"account_number,omitempty"`
	AccountNumberLastFour       string                          `json:"account_number_last_four,omitempty"`
	RoutingNumber               string                          `json:"routing_number,omitempty"`
	OpenedAt                    time.Time                       `json:"opened_at,omitempty"`
	ClosedAt                    time.Time                       `json:"closed_at,omitempty"`
	ClosedToSyntheticAccountUID string                          `json:"closed_to_synthetic_account_uid,omitempty"`
}

SyntheticAccount data type

type SyntheticAccountAssetBalance

type SyntheticAccountAssetBalance struct {
	AssetQuantity        string `json:"asset_quantity,omitempty"`
	AssetType            string `json:"asset_type,omitempty"`
	CurrentUSDValue      string `json:"current_usd_value,omitempty"`
	CustodialAccountUID  string `json:"custodial_account_uid,omitempty"`
	CustodialAccountName string `json:"custodial_account_name,omitempty"`
	Debit                bool   `json:"debit,omitempty"`
}

SyntheticAccountAssetBalance provides a list of balances for the various asset types

type SyntheticAccountCreateParams

type SyntheticAccountCreateParams struct {
	ExternalUID             string `json:"external_uid,omitempty"`
	Name                    string `json:"name"`
	PoolUID                 string `json:"pool_uid"`
	SyntheticAccountTypeUID string `json:"synthetic_account_type_uid"`
	AccountNumber           string `json:"account_number,omitempty"`
	RoutingNumber           string `json:"routing_number,omitempty"`
	PlaidProcessorToken     string `json:"plaid_processor_token,omitempty"` // Deprecated
	ExternalProcessorToken  string `json:"external_processor_token,omitempty"`
}

SyntheticAccountCreateParams are the body params used when creating a new Synthetic Account

type SyntheticAccountListParams

type SyntheticAccountListParams struct {
	CustomerUID              string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	ExternalUID              string `url:"external_uid,omitempty" json:"external_uid,omitempty"`
	PoolUID                  string `url:"pool_uid,omitempty" json:"pool_uid,omitempty"`
	Limit                    int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset                   int    `url:"offset,omitempty" json:"offset,omitempty"`
	SyntheticAccountTypeUID  string `url:"synthetic_account_type_uid,omitempty" json:"synthetic_account_type_uid,omitempty"`
	SyntheticAccountCategory string `url:"synthetic_account_category,omitempty" json:"synthetic_account_category,omitempty"`
	Liability                bool   `url:"liability,omitempty" json:"liability,omitempty"`
	Status                   string `url:"status,omitempty" json:"status,omitempty"`
	Sort                     string `url:"sort,omitempty" json:"sort,omitempty"`
}

SyntheticAccountListParams builds the query parameters used in querying Synthetic Accounts

type SyntheticAccountListResponse added in v1.1.0

type SyntheticAccountListResponse struct {
	ListResponse
	Data []*SyntheticAccount `json:"data"`
}

SyntheticAccountListResponse is an API response containing a list of Synthetic Accounts

type SyntheticAccountType

type SyntheticAccountType struct {
	UID                      string  `json:"uid,omitempty"`
	Name                     string  `json:"name,omitempty"`
	Description              string  `json:"description,omitempty"`
	ProgramUID               string  `json:"program_uid,omitempty"`
	SyntheticAccountCategory string  `json:"synthetic_account_category,omitempty"`
	TargetAnnualYieldPercent float64 `json:"target_annual_yield_percent,omitempty"`
}

SyntheticAccountType data type

type SyntheticAccountTypeListParams

type SyntheticAccountTypeListParams struct {
	ProgramUID string `url:"program_uid,omitempty" json:"program_uid,omitempty"`
	Limit      int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset     int    `url:"offset,omitempty" json:"offset,omitempty"`
}

SyntheticAccountTypeListParams builds the query parameters used in querying Synthetic Account Types

type SyntheticAccountTypeListResponse added in v1.1.0

type SyntheticAccountTypeListResponse struct {
	ListResponse
	Data []*SyntheticAccountType `json:"data"`
}

SyntheticAccountTypeListResponse is an API response containing a list of Synthetic Account Types

type SyntheticAccountUpdateParams

type SyntheticAccountUpdateParams struct {
	Name string `json:"name,omitempty"`
	Note string `json:"note,omitempty"`
}

SyntheticAccountUpdateParams are the body params used when updating a Synthetic Account

type SyntheticLineItem

type SyntheticLineItem struct {
	UID                    string    `json:"uid,omitempty"`
	SettledIndex           int       `json:"settled_index,omitempty"`
	TransactionUID         string    `json:"transaction_uid,omitempty"`
	SyntheticAccountUID    string    `json:"synthetic_account_uid,omitempty"`
	Status                 string    `json:"status,omitempty"`
	USDollarAmount         string    `json:"us_dollar_amount,omitempty"`
	RunningUSDollarBalance string    `json:"running_us_dollar_balance,omitempty"`
	RunningAssetBalance    string    `json:"running_asset_balance,omitempty"`
	AssetQuantity          string    `json:"asset_quantity,omitempty"`
	AssetType              string    `json:"asset_type,omitempty"`
	ClosingPrice           string    `json:"closing_price,omitempty"`
	CustodialAccountUID    string    `json:"custodial_account_uid,omitempty"`
	CustodialAccountName   string    `json:"custodial_account_name,omitempty"`
	Description            string    `json:"description,omitempty"`
	CreatedAt              time.Time `json:"created_at,omitempty"`
	SettledAt              time.Time `json:"settled_at,omitempty"`
}

SyntheticLineItem data type

type SyntheticLineItemListParams

type SyntheticLineItemListParams struct {
	CustomerUID         string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	PoolUID             string `url:"pool_uid,omitempty" json:"pool_uid,omitempty"`
	SyntheticAccountUID string `url:"synthetic_account_uid,omitempty" json:"synthetic_account_uid,omitempty"`
	Limit               int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset              int    `url:"offset,omitempty" json:"offset,omitempty"`
	TransactionUID      string `url:"transaction_uid,omitempty" json:"transaction_uid,omitempty"`
	Status              string `url:"status,omitempty" json:"status,omitempty"`
	Sort                string `url:"sort,omitempty" json:"sort,omitempty"`
}

SyntheticLineItemListParams builds the query parameters used in querying SyntheticLineItems

type SyntheticLineItemListResponse added in v1.1.0

type SyntheticLineItemListResponse struct {
	ListResponse
	Data []*SyntheticLineItem `json:"data"`
}

SyntheticLineItemListResponse is an API response containing a list of SyntheticLineItems

type TokenCache

type TokenCache struct {
	Token     string
	Timestamp int64
}

TokenCache stores Auth token data

type Transaction

type Transaction struct {
	AdjustmentUID                  string    `json:"adjustment_uid,omitempty"`
	CustomerUID                    string    `json:"customer_uid,omitempty"`
	CreatedAt                      time.Time `json:"created_at,omitempty"`
	CustodialAccountUIDs           []string  `json:"custodial_account_uids,omitempty"`
	DebitCardUID                   string    `json:"debit_card_uid,omitempty"`
	DenialReason                   string    `json:"denial_reason,omitempty"`
	Description                    string    `json:"description,omitempty"`
	DestinationSyntheticAccountUID string    `json:"destination_synthetic_account_uid,omitempty"`
	ID                             int       `json:"id,omitempty"`
	InitialActionAt                time.Time `json:"initial_action_at,omitempty"`
	MCC                            string    `json:"mcc,omitempty"`
	MerchantLocation               string    `json:"merchant_location,omitempty"`
	MerchantName                   string    `json:"merchant_name,omitempty"`
	MerchantNumber                 string    `json:"merchant_number,omitempty"`
	NetAsset                       string    `json:"net_asset,omitempty"`
	SettledAt                      time.Time `json:"settled_at,omitempty"`
	SettledIndex                   int       `json:"settled_index,omitempty"`
	SourceSyntheticAccountUID      string    `json:"source_synthetic_account_uid,omitempty"`
	Status                         string    `json:"status,omitempty"`
	TransactionEventUIDs           []string  `json:"transaction_event_uids,omitempty"`
	TransferUID                    string    `json:"transfer_uid,omitempty"`
	Type                           string    `json:"type,omitempty"`
	UID                            string    `json:"uid,omitempty"`
	USDollarAmount                 string    `json:"us_dollar_amount,omitempty"`
}

Transaction data type

type TransactionEvent

type TransactionEvent struct {
	UID                            string    `json:"uid,omitempty"`
	SettledIndex                   int       `json:"settled_index,omitempty"`
	TransactionUIDs                []string  `json:"transaction_uids,omitempty"`
	SourceCustodialAccountUID      string    `json:"source_custodial_account_uid,omitempty"`
	DestinationCustodialAccountUID string    `json:"destination_custodial_account_uid,omitempty"`
	CustodialLineItemUIDs          []string  `json:"custodial_line_item_uids,omitempty"`
	Status                         string    `json:"status,omitempty"`
	USDollarAmount                 string    `json:"us_dollar_amount,omitempty"`
	Type                           string    `json:"type,omitempty"`
	DebitCardUID                   string    `json:"debit_card_uid,omitempty"`
	NetAsset                       string    `json:"net_asset,omitempty"`
	Description                    string    `json:"description,omitempty"`
	CreatedAt                      time.Time `json:"created_at,omitempty"`
	SettledAt                      time.Time `json:"settled_at,omitempty"`
}

TransactionEvent data type

type TransactionEventListParams

type TransactionEventListParams struct {
	SourceCustodialAccountUID      string `url:"source_custodial_account_uid,omitempty" json:"source_custodial_account_uid,omitempty"`
	DestinationCustodialAccountUID string `url:"destination_custodial_account_uid,omitempty" json:"destination_custodial_account_uid,omitempty"`
	CustodialAccountUID            string `url:"custodial_account_uid,omitempty" json:"custodial_account_uid,omitempty"`
	Type                           string `url:"type,omitempty" json:"type,omitempty"`
	TransactionUID                 string `url:"transaction_uid,omitempty" json:"transaction_uid,omitempty"`
	Limit                          int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset                         int    `url:"offset,omitempty" json:"offset,omitempty"`
	Sort                           string `url:"sort,omitempty" json:"sort,omitempty"`
}

TransactionEventListParams builds the query parameters used in querying TransactionEvents

type TransactionEventListResponse added in v1.1.0

type TransactionEventListResponse struct {
	ListResponse
	Data []*TransactionEvent `json:"data"`
}

TransactionEventListResponse is an API response containing a list of TransactionEvents

type TransactionListParams

type TransactionListParams struct {
	CustomerUID                    string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	PoolUID                        string `url:"pool_uid,omitempty" json:"pool_uid,omitempty"`
	DebitCardUID                   string `url:"debit_card_uid,omitempty" json:"debit_card_uid,omitempty"`
	SourceSyntheticAccountUID      string `url:"source_synthetic_account_uid,omitempty" json:"source_synthetic_account_uid,omitempty"`
	DestinationSyntheticAccountUID string `url:"destination_synthetic_account_uid,omitempty" json:"destination_synthetic_account_uid,omitempty"`
	Type                           string `url:"type,omitempty" json:"type,omitempty"`
	SyntheticAccountUID            string `url:"synthetic_account_uid,omitempty" json:"synthetic_account_uid,omitempty"`
	ShowDeniedAuths                bool   `url:"show_denied_auths,omitempty" json:"show_denied_auths,omitempty"`
	ShowExpired                    bool   `url:"show_expired,omitempty" json:"show_expired,omitempty"`
	Status                         string `url:"status,omitempty" json:"status,omitempty"`
	SearchDescription              string `url:"search_description,omitempty" json:"search_description,omitempty"`
	IncludeZero                    bool   `url:"include_zero,omitempty" json:"include_zero,omitempty"`
	Limit                          int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset                         int    `url:"offset,omitempty" json:"offset,omitempty"`
	Sort                           string `url:"sort,omitempty" json:"sort,omitempty"`
}

TransactionListParams builds the query parameters used in querying Transactions

type TransactionListResponse added in v1.1.0

type TransactionListResponse struct {
	ListResponse
	Data []*Transaction `json:"data"`
}

TransactionListResponse is an API response containing a list of Transactions

type Transfer

type Transfer struct {
	UID                            string    `json:"uid,omitempty"`
	ExternalUID                    string    `json:"external_uid,omitempty"`
	SourceSyntheticAccountUID      string    `json:"source_synthetic_account_uid,omitempty"`
	DestinationSyntheticAccountUID string    `json:"destination_synthetic_account_uid,omitempty"`
	InitiatingCustomerUID          string    `json:"initiating_customer_uid,omitempty"`
	Status                         string    `json:"status,omitempty"`
	CreatedAt                      time.Time `json:"created_at,omitempty"`
	USDTransferAmount              string    `json:"usd_transfer_amount,omitempty"`
	USDRequestedAmount             string    `json:"usd_requested_amount,omitempty"`
}

Transfer data type

type TransferCreateParams

type TransferCreateParams struct {
	ExternalUID                    string `json:"external_uid,omitempty"`
	SourceSyntheticAccountUID      string `json:"source_synthetic_account_uid"`
	DestinationSyntheticAccountUID string `json:"destination_synthetic_account_uid"`
	InitiatingCustomerUID          string `json:"initiating_customer_uid"`
	USDTransferAmount              string `json:"usd_transfer_amount"`
}

TransferCreateParams are the body params used when creating a new Transfer

type TransferListParams

type TransferListParams struct {
	CustomerUID         string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	ExternalUID         string `url:"external_uid,omitempty" json:"external_uid,omitempty"`
	PoolUID             string `url:"pool_uid,omitempty" json:"pool_uid,omitempty"`
	SyntheticAccountUID string `url:"synthetic_account_uid,omitempty" json:"synthetic_account_uid,omitempty"`
	Limit               int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset              int    `url:"offset,omitempty" json:"offset,omitempty"`
}

TransferListParams builds the query parameters used in querying Transfers

type TransferListResponse added in v1.1.0

type TransferListResponse struct {
	ListResponse
	Data []*Transfer `json:"data"`
}

TransferListResponse is an API response containing a list of Transfers

type VirtualDebitCardMigrateParams

type VirtualDebitCardMigrateParams struct {
	ExternalUID     string                    `json:"external_uid,omitempty"`
	CardArtworkUID  string                    `json:"card_artwork_uid,omitempty"`
	ShippingAddress *DebitCardShippingAddress `json:"shipping_address,omitempty"`
}

VirtualDebitCardMigrateParams are the body params used when migrating a Virtual Debit Card

type VirtualDebitCardQueryParams added in v1.1.1

type VirtualDebitCardQueryParams struct {
	Token  string `url:"token" json:"token"`
	Config string `url:"config" json:"config"`
}

VirtualDebitCardQueryParams are the query params used to retrieve a virtual Debit Card image

type Workflow

type Workflow struct {
	UID                         string                      `json:"uid,omitempty"`
	Summary                     *WorkflowSummary            `json:"summary,omitempty"`
	Customer                    *WorkflowCustomer           `json:"customer,omitempty"`
	ProductUID                  string                      `json:"product_uid,omitempty"`
	ProductCompliancePlanUID    string                      `json:"product_compliance_plan_uid,omitempty"`
	AcceptedDocuments           []*WorkflowAcceptedDocument `json:"accepted_documents,omitempty"`
	CurrentStepDocumentsPending []*WorkflowPendingDocument  `json:"current_step_documents_pending,omitempty"`
	AllDocuments                []*WorkflowDocument         `json:"all_documents,omitempty"`
}

Workflow data type

type WorkflowAcceptedDocument

type WorkflowAcceptedDocument struct {
	ElectronicSignatureRequired string    `json:"electronic_signature_required,omitempty"`
	ExternalStorageName         string    `json:"external_storage_name,omitempty"`
	ComplianceDocumentURL       string    `json:"compliance_document_url,omitempty"`
	Name                        string    `json:"name,omitempty"`
	Step                        int       `json:"step,omitempty"`
	Version                     int       `json:"version,omitempty"`
	UID                         string    `json:"uid,omitempty"`
	AcceptedAt                  time.Time `json:"accepted_at,omitempty"`
}

WorkflowAcceptedDocument contains information about accepted Compliance Workflow documents

type WorkflowBatchDocumentsParams

type WorkflowBatchDocumentsParams struct {
	CustomerUID string                    `json:"customer_uid"`
	Documents   []*WorkflowDocumentParams `json:"documents"`
}

WorkflowBatchDocumentsParams are the body params used when acknowledging multiple compliance documents

type WorkflowCreateParams

type WorkflowCreateParams struct {
	CustomerUID              string `json:"customer_uid"`
	ProductCompliancePlanUID string `json:"product_compliance_plan_uid"`
}

WorkflowCreateParams are the body params used when creating a new Compliance Workflow

type WorkflowCustomer

type WorkflowCustomer struct {
	Email       string `json:"email,omitempty"`
	ExternalUID string `json:"external_uid,omitempty"`
	UID         string `json:"uid,omitempty"`
}

WorkflowCustomer contains Customer information related to this Compliance Workflow

type WorkflowDocument

type WorkflowDocument struct {
	ElectronicSignatureRequired string `json:"electronic_signature_required,omitempty"`
	ExternalStorageName         string `json:"external_storage_name,omitempty"`
	ComplianceDocumentURL       string `json:"compliance_document_url,omitempty"`
	Name                        string `json:"name,omitempty"`
	Step                        int    `json:"step,omitempty"`
	Version                     int    `json:"version,omitempty"`
}

WorkflowDocument contains information about all Compliance Workflow documents

type WorkflowDocumentParams

type WorkflowDocumentParams struct {
	Accept      string `json:"accept"`
	DocumentUID string `json:"document_uid"`
	IPAddress   string `json:"ip_address,omitempty"`
	UserName    string `json:"user_name,omitempty"`
	// Required for AcknowledgeDocument but omitted for BatchAcknowledgeDocuments
	CustomerUID string `json:"customer_uid,omitempty"`
}

WorkflowDocumentParams are the body params used when acknowledging a compliance document

type WorkflowLatestParams

type WorkflowLatestParams struct {
	ProductCompliancePlanUID string `url:"product_compliance_plan_uid,omitempty" json:"product_compliance_plan_uid,omitempty"`
}

WorkflowLatestParams builds the query parameters used in querying the latest Compliance Workflow for a customer

type WorkflowListParams

type WorkflowListParams struct {
	CustomerUID string `url:"customer_uid,omitempty" json:"customer_uid,omitempty"`
	ProductUID  string `url:"product_uid,omitempty" json:"product_uid,omitempty"`
	InProgress  bool   `url:"in_progress,omitempty" json:"in_progress,omitempty"`
	Limit       int    `url:"limit,omitempty" json:"limit,omitempty"`
	Offset      int    `url:"offset,omitempty" json:"offset,omitempty"`
}

WorkflowListParams builds the query parameters used in querying Compliance Workflows

type WorkflowListResponse added in v1.1.0

type WorkflowListResponse struct {
	ListResponse
	Data []*Workflow `json:"data"`
}

WorkflowListResponse is an API response containing a list of Compliance Workflows

type WorkflowPendingDocument

type WorkflowPendingDocument struct {
	ElectronicSignatureRequired string `json:"electronic_signature_required,omitempty"`
	ExternalStorageName         string `json:"external_storage_name,omitempty"`
	ComplianceDocumentURL       string `json:"compliance_document_url,omitempty"`
	Name                        string `json:"name,omitempty"`
	Step                        int    `json:"step,omitempty"`
	Version                     int    `json:"version,omitempty"`
	UID                         string `json:"uid,omitempty"`
}

WorkflowPendingDocument contains information about pending Compliance Workflow documents

type WorkflowSummary

type WorkflowSummary struct {
	AcceptedQuantity int       `json:"accepted_quantity,omitempty"`
	BegunAt          time.Time `json:"begun_at,omitempty"`
	CompletedStep    int       `json:"completed_step,omitempty"`
	CurrentStep      int       `json:"current_step,omitempty"`
	Status           string    `json:"status,omitempty"`
}

WorkflowSummary contains a status summary of the Compliance Workflow

Directories

Path Synopsis
cmd
mq

Jump to

Keyboard shortcuts

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