dedicatedvirtualaccounts

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2025 License: MIT Imports: 7 Imported by: 0

README

Dedicated Virtual Accounts API

Create and manage dedicated virtual account numbers for customers.

Available Operations

  • Create - Create a dedicated virtual account
  • List - List virtual accounts
  • Fetch - Get virtual account details
  • Requery - Requery account transactions
  • Deactivate - Deactivate an account
  • Split - Configure split payments

Quick Examples

Create Virtual Account
import "github.com/huysamen/paystack-go/api/dedicatedvirtualaccounts"

request := dedicatedvirtualaccounts.NewCreateRequestBuilder().
    Customer("customer@example.com").
    PreferredBank("wema-bank").  // Optional bank preference
    Build()

result, err := client.DedicatedVirtualAccounts.Create(ctx, *request)
if err != nil {
    return err
}

account := result.Data
fmt.Printf("Virtual Account: %s - %s\n", 
    account.AccountNumber.String(), 
    account.BankName.String())
List Virtual Accounts
query := dedicatedvirtualaccounts.NewListRequestBuilder().
    PerPage(50).
    Page(1).
    Active(true).
    Currency(enums.NGN).
    Build()

result, err := client.DedicatedVirtualAccounts.List(ctx, *query)
Deactivate Account
request := dedicatedvirtualaccounts.NewDeactivateRequestBuilder().
    DedicatedAccountID(12345).
    Build()

result, err := client.DedicatedVirtualAccounts.Deactivate(ctx, *request)

Use Cases

Customer Wallet System
// Create virtual account for each customer
func createCustomerWallet(customerEmail string) (*types.DedicatedAccount, error) {
    request := dedicatedvirtualaccounts.NewCreateRequestBuilder().
        Customer(customerEmail).
        Build()
        
    result, err := client.DedicatedVirtualAccounts.Create(ctx, *request)
    if err != nil {
        return nil, err
    }
    
    if err := result.Err(); err != nil {
        return nil, err
    }
    
    return &result.Data, nil
}
Split Payments
request := dedicatedvirtualaccounts.NewSplitRequestBuilder().
    DedicatedAccountID(12345).
    SubAccount("ACCT_subaccount_code").
    SplitCode("SPL_split_code").
    Build()

result, err := client.DedicatedVirtualAccounts.Split(ctx, *request)

Perfect for creating unique bank account numbers for each customer, enabling easy bank transfer payments.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AssignDedicatedVirtualAccountResponseData

type AssignDedicatedVirtualAccountResponseData = any

type AssignRequestBuilder

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

func NewAssignRequestBuilder

func NewAssignRequestBuilder() *AssignRequestBuilder

func (*AssignRequestBuilder) AccountNumber

func (b *AssignRequestBuilder) AccountNumber(accountNumber string) *AssignRequestBuilder

func (*AssignRequestBuilder) BVN

func (*AssignRequestBuilder) BankCode

func (b *AssignRequestBuilder) BankCode(bankCode string) *AssignRequestBuilder

func (*AssignRequestBuilder) Build

func (b *AssignRequestBuilder) Build() *assignRequest

func (*AssignRequestBuilder) Country

func (b *AssignRequestBuilder) Country(country string) *AssignRequestBuilder

func (*AssignRequestBuilder) Email

func (*AssignRequestBuilder) FirstName

func (b *AssignRequestBuilder) FirstName(firstName string) *AssignRequestBuilder

func (*AssignRequestBuilder) LastName

func (b *AssignRequestBuilder) LastName(lastName string) *AssignRequestBuilder

func (*AssignRequestBuilder) MiddleName

func (b *AssignRequestBuilder) MiddleName(middleName string) *AssignRequestBuilder

func (*AssignRequestBuilder) Phone

func (*AssignRequestBuilder) PreferredBank

func (b *AssignRequestBuilder) PreferredBank(preferredBank string) *AssignRequestBuilder

func (*AssignRequestBuilder) SplitCode

func (b *AssignRequestBuilder) SplitCode(splitCode string) *AssignRequestBuilder

func (*AssignRequestBuilder) Subaccount

func (b *AssignRequestBuilder) Subaccount(subaccount string) *AssignRequestBuilder

type Client

type Client api.API

func (*Client) Create

func (c *Client) Create(ctx context.Context, builder CreateRequestBuilder) (*CreateResponse, error)

func (*Client) Deactivate

func (c *Client) Deactivate(ctx context.Context, dedicatedAccountID string) (*DeactivateResponse, error)

func (*Client) Fetch

func (c *Client) Fetch(ctx context.Context, dedicatedAccountID string) (*FetchResponse, error)

func (*Client) FetchBankProviders

func (c *Client) FetchBankProviders(ctx context.Context) (*FetchBankProvidersResponse, error)

func (*Client) List

func (c *Client) List(ctx context.Context, builder ListRequestBuilder) (*ListResponse, error)

func (*Client) RemoveSplit

func (c *Client) RemoveSplit(ctx context.Context, builder RemoveSplitRequestBuilder) (*RemoveSplitResponse, error)

func (*Client) Requery

func (c *Client) Requery(ctx context.Context, builder RequeryRequestBuilder) (*RequeryResponse, error)

func (*Client) SplitTransaction

type CreateRequestBuilder

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

func NewCreateRequestBuilder

func NewCreateRequestBuilder() *CreateRequestBuilder

func (*CreateRequestBuilder) Build

func (b *CreateRequestBuilder) Build() *createRequest

func (*CreateRequestBuilder) Customer

func (b *CreateRequestBuilder) Customer(customer string) *CreateRequestBuilder

func (*CreateRequestBuilder) FirstName

func (b *CreateRequestBuilder) FirstName(firstName string) *CreateRequestBuilder

func (*CreateRequestBuilder) LastName

func (b *CreateRequestBuilder) LastName(lastName string) *CreateRequestBuilder

func (*CreateRequestBuilder) Phone

func (*CreateRequestBuilder) PreferredBank

func (b *CreateRequestBuilder) PreferredBank(preferredBank string) *CreateRequestBuilder

func (*CreateRequestBuilder) SplitCode

func (b *CreateRequestBuilder) SplitCode(splitCode string) *CreateRequestBuilder

func (*CreateRequestBuilder) Subaccount

func (b *CreateRequestBuilder) Subaccount(subaccount string) *CreateRequestBuilder

type CreateResponse

type CreateResponse = types.Response[CreateResponseData]

type CreateResponseData

type CreateResponseData = types.DedicatedVirtualAccount

type DeactivateResponse

type DeactivateResponse = types.Response[DeactivateResponseData]

type DeactivateResponseData

type DeactivateResponseData = types.DedicatedVirtualAccount

type FetchBankProvidersResponseData

type FetchBankProvidersResponseData = []types.BankProvider

type FetchResponse

type FetchResponse = types.Response[FetchResponseData]

type FetchResponseData

type FetchResponseData = types.DedicatedVirtualAccount

type ListRequestBuilder

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

func NewListRequestBuilder

func NewListRequestBuilder() *ListRequestBuilder

func (*ListRequestBuilder) Active

func (b *ListRequestBuilder) Active(active bool) *ListRequestBuilder

func (*ListRequestBuilder) BankID

func (b *ListRequestBuilder) BankID(bankID string) *ListRequestBuilder

func (*ListRequestBuilder) Build

func (b *ListRequestBuilder) Build() *listRequest

func (*ListRequestBuilder) Currency

func (b *ListRequestBuilder) Currency(currency string) *ListRequestBuilder

func (*ListRequestBuilder) Customer

func (b *ListRequestBuilder) Customer(customer string) *ListRequestBuilder

func (*ListRequestBuilder) ProviderSlug

func (b *ListRequestBuilder) ProviderSlug(providerSlug string) *ListRequestBuilder

type ListResponse

type ListResponse = types.Response[ListResponseData]

type ListResponseData

type ListResponseData = []types.DedicatedVirtualAccount

type RemoveSplitRequestBuilder

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

func NewRemoveSplitRequestBuilder

func NewRemoveSplitRequestBuilder() *RemoveSplitRequestBuilder

func (*RemoveSplitRequestBuilder) AccountNumber

func (b *RemoveSplitRequestBuilder) AccountNumber(accountNumber string) *RemoveSplitRequestBuilder

func (*RemoveSplitRequestBuilder) Build

func (b *RemoveSplitRequestBuilder) Build() *removeSplitRequest

type RemoveSplitResponse

type RemoveSplitResponse = types.Response[RemoveSplitResponseData]

type RemoveSplitResponseData

type RemoveSplitResponseData = types.DedicatedVirtualAccount

type RequeryRequestBuilder

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

func NewRequeryRequestBuilder

func NewRequeryRequestBuilder() *RequeryRequestBuilder

func (*RequeryRequestBuilder) AccountNumber

func (b *RequeryRequestBuilder) AccountNumber(accountNumber string) *RequeryRequestBuilder

func (*RequeryRequestBuilder) Build

func (b *RequeryRequestBuilder) Build() *requeryRequest

func (*RequeryRequestBuilder) Date

func (*RequeryRequestBuilder) ProviderSlug

func (b *RequeryRequestBuilder) ProviderSlug(providerSlug string) *RequeryRequestBuilder

type RequeryResponse

type RequeryResponse = types.Response[RequeryResponseData]

type RequeryResponseData

type RequeryResponseData = any

type SplitTransactionRequestBuilder

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

func NewSplitTransactionRequestBuilder

func NewSplitTransactionRequestBuilder() *SplitTransactionRequestBuilder

func (*SplitTransactionRequestBuilder) Build

func (b *SplitTransactionRequestBuilder) Build() *splitTransactionRequest

func (*SplitTransactionRequestBuilder) Customer

func (*SplitTransactionRequestBuilder) PreferredBank

func (b *SplitTransactionRequestBuilder) PreferredBank(preferredBank string) *SplitTransactionRequestBuilder

func (*SplitTransactionRequestBuilder) SplitCode

func (*SplitTransactionRequestBuilder) Subaccount

type SplitTransactionResponseData

type SplitTransactionResponseData = types.DedicatedVirtualAccount

Jump to

Keyboard shortcuts

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