verification

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: 5 Imported by: 0

README

Verification API

Verify bank accounts, BVN, and other identity information.

Available Operations

  • Resolve Account - Verify bank account details
  • Validate Account - Validate account ownership
  • Resolve BIN - Get card BIN information

Quick Examples

Resolve Bank Account
import "github.com/huysamen/paystack-go/api/verification"

request := verification.NewResolveAccountRequestBuilder().
    AccountNumber("0123456789").
    BankCode("044").  // Access Bank
    Build()

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

if err := result.Err(); err != nil {
    return fmt.Errorf("account verification failed: %w", err)
}

account := result.Data
fmt.Printf("Account Name: %s\n", account.AccountName.String())
fmt.Printf("Account Number: %s\n", account.AccountNumber.String())
Validate Account
request := verification.NewValidateAccountRequestBuilder().
    AccountName("John Doe").
    AccountNumber("0123456789").
    AccountType("personal").
    BankCode("044").
    CountryCode("NG").
    DocumentType("identityNumber").
    DocumentNumber("12345678901").
    Build()

result, err := client.Verification.ValidateAccount(ctx, *request)
Resolve Card BIN
result, err := client.Verification.ResolveBIN(ctx, "539983")
if err != nil {
    return err
}

bin := result.Data  
fmt.Printf("Card Type: %s\n", bin.CardType.String())
fmt.Printf("Bank: %s\n", bin.Bank.String())
fmt.Printf("Country: %s\n", bin.CountryName.String())

Use Cases

Pre-Transfer Verification
func verifyRecipientAccount(accountNumber, bankCode string) error {
    request := verification.NewResolveAccountRequestBuilder().
        AccountNumber(accountNumber).
        BankCode(bankCode).
        Build()
        
    result, err := client.Verification.ResolveAccount(ctx, *request)
    if err != nil {
        return fmt.Errorf("verification failed: %w", err)
    }
    
    if err := result.Err(); err != nil {
        return fmt.Errorf("invalid account: %w", err)
    }
    
    fmt.Printf("✓ Account verified: %s\n", result.Data.AccountName.String())
    return nil
}
Card Validation
func validateCard(bin string) (*types.BINData, error) {
    result, err := client.Verification.ResolveBIN(ctx, bin)
    if err != nil {
        return nil, err
    }
    
    if err := result.Err(); err != nil {
        return nil, err
    }
    
    return &result.Data, nil
}

Essential for preventing fraud and ensuring accurate recipient information before processing transfers.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client api.API

func (*Client) ResolveAccount

func (c *Client) ResolveAccount(ctx context.Context, builder ResolveAccountRequestBuilder) (*ResolveAccountResponse, error)

func (*Client) ResolveCardBIN

func (c *Client) ResolveCardBIN(ctx context.Context, bin string) (*ResolveCardBINResponse, error)

func (*Client) ValidateAccount

type ResolveAccountRequestBuilder

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

func NewResolveAccountRequestBuilder

func NewResolveAccountRequestBuilder() *ResolveAccountRequestBuilder

func (*ResolveAccountRequestBuilder) AccountNumber

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

func (*ResolveAccountRequestBuilder) BankCode

func (*ResolveAccountRequestBuilder) Build

func (b *ResolveAccountRequestBuilder) Build() *resolveAccountRequest

type ResolveAccountResponse

type ResolveAccountResponse = types.Response[ResolveAccountResponseData]

type ResolveAccountResponseData

type ResolveAccountResponseData = types.AccountResolution

type ResolveCardBINResponse

type ResolveCardBINResponse = types.Response[ResolveCardBINResponseData]

type ResolveCardBINResponseData

type ResolveCardBINResponseData = types.CardBINResolution

type ValidateAccountRequestBuilder

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

func NewValidateAccountRequestBuilder

func NewValidateAccountRequestBuilder(accountName, accountNumber, accountType, bankCode, countryCode, documentType string) *ValidateAccountRequestBuilder

func (*ValidateAccountRequestBuilder) Build

func (b *ValidateAccountRequestBuilder) Build() *validateAccountRequest

func (*ValidateAccountRequestBuilder) DocumentNumber

func (b *ValidateAccountRequestBuilder) DocumentNumber(documentNumber string) *ValidateAccountRequestBuilder

type ValidateAccountResponseData

type ValidateAccountResponseData = types.AccountValidation

Jump to

Keyboard shortcuts

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