Class: Airwallex::GlobalAccount

Inherits:
APIResource show all
Extended by:
APIOperations::Create, APIOperations::List, APIOperations::Retrieve
Includes:
APIOperations::Update
Defined in:
lib/airwallex/resources/global_account.rb

Overview

Represents a Global Account (Virtual Account Number) used to collect local bank transfers into a specific currency and jurisdiction.

Examples:

Provision a VAN

 = Airwallex::GlobalAccount.create(
  country_code: "AU",
  nick_name: "booking_12345",
  required_features: [{ transfer_method: "LOCAL" }]
)

Reconcile inbound deposits

.transactions.each { |txn| puts "#{txn.amount} from #{txn.remitter}" }

Add and verify an alias (e.g. a phone number or email VAN)

alias_record = .create_alias(type: "PAYID_PHONE", value: "+61400000000")
alias_record.submit_verification_code(code: "123456")

Instance Attribute Summary

Attributes inherited from APIResource

#attributes, #id

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIOperations::Create

create

Methods included from APIOperations::Retrieve

retrieve

Methods included from APIOperations::List

list

Methods included from APIOperations::Update

included, #save, #update

Methods inherited from APIResource

#changed_attributes, #dirty?, #initialize, #inspect, #method_missing, #refresh, #refresh_from, resource_name, #respond_to_missing?, #to_hash, #to_json, #to_s

Constructor Details

This class inherits a constructor from Airwallex::APIResource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Airwallex::APIResource

Class Method Details

.resource_pathString

Returns API resource path for global accounts.

Returns:

  • (String)

    API resource path for global accounts



27
28
29
# File 'lib/airwallex/resources/global_account.rb', line 27

def self.resource_path
  "/api/v1/global_accounts"
end

Instance Method Details

#alias(alias_id) ⇒ GlobalAccountAlias

Retrieve a single alias on this account

Parameters:

  • alias_id (String)

Returns:



75
76
77
78
# File 'lib/airwallex/resources/global_account.rb', line 75

def alias(alias_id)
  response = Airwallex.client.get("#{GlobalAccountAlias.resource_path(id)}/#{alias_id}")
  GlobalAccountAlias.new(response)
end

#aliases(params = {}) ⇒ ListObject<GlobalAccountAlias>

List aliases on this account

Parameters:

  • params (Hash) (defaults to: {})

    additional query params (e.g. pagination)

Returns:



84
85
86
87
# File 'lib/airwallex/resources/global_account.rb', line 84

def aliases(params = {})
  response = Airwallex.client.get(GlobalAccountAlias.resource_path(id), params)
  build_list(response, GlobalAccountAlias, params)
end

#close(params = {}) ⇒ GlobalAccount

Close this global account

Parameters:

  • params (Hash) (defaults to: {})

    additional closure params

Returns:



35
36
37
38
39
# File 'lib/airwallex/resources/global_account.rb', line 35

def close(params = {})
  response = Airwallex.client.post("#{self.class.resource_path}/#{id}/close", params)
  refresh_from(response)
  self
end

#create_alias(params = {}) ⇒ GlobalAccountAlias

Create an alias (e.g. PayID, email, or phone-linked VAN) on this account

Parameters:

  • params (Hash) (defaults to: {})

    alias attributes

Returns:



66
67
68
69
# File 'lib/airwallex/resources/global_account.rb', line 66

def create_alias(params = {})
  response = Airwallex.client.post("#{GlobalAccountAlias.resource_path(id)}/create", params)
  GlobalAccountAlias.new(response)
end

#generate_statement_letter(params = {}) ⇒ Hash

Generate a bank-ownership statement letter for this account — e.g. for marketplace seller verification (known value: "AMAZON"; other marketplace-specific values likely exist).

Parameters:

  • params (Hash) (defaults to: {})

    account_statement_type: (e.g. "AMAZON"), registration_info: { agreement:, registered_name:, registered_email:, registered_address: { address:, city:, state:, postcode:, country: } }

Returns:

  • (Hash)

    raw response (the generated letter/document reference)



49
50
51
# File 'lib/airwallex/resources/global_account.rb', line 49

def generate_statement_letter(params = {})
  Airwallex.client.post("#{self.class.resource_path}/#{id}/generate_statement_letter", params)
end

#mandate(mandate_id) ⇒ GlobalAccountMandate

Retrieve a single direct debit mandate on this account

Parameters:

  • mandate_id (String)

Returns:



93
94
95
96
# File 'lib/airwallex/resources/global_account.rb', line 93

def mandate(mandate_id)
  response = Airwallex.client.get("#{GlobalAccountMandate.resource_path(id)}/#{mandate_id}")
  GlobalAccountMandate.new(response)
end

#mandates(params = {}) ⇒ ListObject<GlobalAccountMandate>

List direct debit mandates on this account

Parameters:

  • params (Hash) (defaults to: {})

    additional query params (e.g. pagination)

Returns:



102
103
104
105
# File 'lib/airwallex/resources/global_account.rb', line 102

def mandates(params = {})
  response = Airwallex.client.get(GlobalAccountMandate.resource_path(id), params)
  build_list(response, GlobalAccountMandate, params)
end

#transactions(params = {}) ⇒ ListObject<GlobalAccountTransaction>

List inbound transactions (deposits) received into this account

Parameters:

  • params (Hash) (defaults to: {})

    additional query params (e.g. pagination)

Returns:



57
58
59
60
# File 'lib/airwallex/resources/global_account.rb', line 57

def transactions(params = {})
  response = Airwallex.client.get("#{self.class.resource_path}/#{id}/transactions", params)
  build_list(response, GlobalAccountTransaction, params)
end