Module: NOWPayments::API::FiatPayouts

Included in:
Client
Defined in:
lib/nowpayments/api/fiat_payouts.rb

Overview

Fiat Payouts API endpoints (Beta) All endpoints require JWT authentication Note: This is a Beta feature with limited availability

Instance Method Summary collapse

Instance Method Details

#create_fiat_payout(account_id:, crypto_currency:, crypto_amount:, request_id: nil) ⇒ Hash

Create a fiat payout POST /v1/fiat-payouts

Parameters:

  • account_id (String, Integer)

    Payout account ID

  • crypto_currency (String)

    Cryptocurrency code (e.g., “btc”, “eth”)

  • crypto_amount (Numeric)

    Amount in cryptocurrency

  • request_id (String, nil) (defaults to: nil)

    Optional unique request ID

Returns:

  • (Hash)

    Created payout details



65
66
67
68
69
70
71
72
73
# File 'lib/nowpayments/api/fiat_payouts.rb', line 65

def create_fiat_payout(account_id:, crypto_currency:, crypto_amount:, request_id: nil)
  params = {
    accountId: ,
    cryptoCurrency: crypto_currency,
    cryptoAmount: crypto_amount
  }
  params[:requestId] = request_id if request_id
  post("fiat-payouts", body: params).body
end

#create_fiat_payout_account(provider:, fiat_currency:, account_data:) ⇒ Hash

Create a fiat payout account POST /v1/fiat-payouts/account

Parameters:

  • provider (String)

    Payment provider (e.g., “transfi”)

  • fiat_currency (String)

    Fiat currency code (e.g., “EUR”, “USD”)

  • account_data (Hash)

    Provider-specific account data

Returns:

  • (Hash)

    Created account details



25
26
27
28
29
30
31
32
# File 'lib/nowpayments/api/fiat_payouts.rb', line 25

def (provider:, fiat_currency:, account_data:)
  params = {
    provider: provider,
    fiatCurrency: fiat_currency,
    accountData: 
  }
  post("fiat-payouts/account", body: params).body
end

#fiat_payout_accounts(provider: nil, fiat_currency: nil, limit: 10, page: 0) ⇒ Hash

Get list of fiat payout accounts GET /v1/fiat-payouts/account

Parameters:

  • provider (String, nil) (defaults to: nil)

    Optional filter by provider

  • fiat_currency (String, nil) (defaults to: nil)

    Optional filter by fiat currency

  • limit (Integer) (defaults to: 10)

    Number of results per page (default: 10)

  • page (Integer) (defaults to: 0)

    Page number (default: 0)

Returns:

  • (Hash)

    List of payout accounts



41
42
43
44
45
46
# File 'lib/nowpayments/api/fiat_payouts.rb', line 41

def fiat_payout_accounts(provider: nil, fiat_currency: nil, limit: 10, page: 0)
  params = { limit: limit, page: page }
  params[:provider] = provider if provider
  params[:fiatCurrency] = fiat_currency if fiat_currency
  get("fiat-payouts/account", params: params).body
end

#fiat_payout_payment_methods(fiat_currency: nil) ⇒ Hash

Get available fiat payment methods GET /v1/fiat-payouts/payment-methods

Parameters:

  • fiat_currency (String, nil) (defaults to: nil)

    Optional filter by fiat currency (e.g., “EUR”, “USD”)

Returns:

  • (Hash)

    Available payment methods



13
14
15
16
17
# File 'lib/nowpayments/api/fiat_payouts.rb', line 13

def fiat_payout_payment_methods(fiat_currency: nil)
  params = {}
  params[:fiatCurrency] = fiat_currency if fiat_currency
  get("fiat-payouts/payment-methods", params: params).body
end

#fiat_payout_rates(crypto_currency:, fiat_currency:, crypto_amount: nil, fiat_amount: nil) ⇒ Hash

Get fiat conversion rates POST /v1/fiat-payouts/rates

Parameters:

  • crypto_currency (String)

    Cryptocurrency code (e.g., “btc”, “eth”)

  • fiat_currency (String)

    Fiat currency code (e.g., “EUR”, “USD”)

  • crypto_amount (Numeric, nil) (defaults to: nil)

    Optional crypto amount to convert

  • fiat_amount (Numeric, nil) (defaults to: nil)

    Optional fiat amount to convert

Returns:

  • (Hash)

    Conversion rates and amounts



139
140
141
142
143
144
145
146
147
# File 'lib/nowpayments/api/fiat_payouts.rb', line 139

def fiat_payout_rates(crypto_currency:, fiat_currency:, crypto_amount: nil, fiat_amount: nil)
  params = {
    cryptoCurrency: crypto_currency,
    fiatCurrency: fiat_currency
  }
  params[:cryptoAmount] = crypto_amount if crypto_amount
  params[:fiatAmount] = fiat_amount if fiat_amount
  post("fiat-payouts/rates", body: params).body
end

#fiat_payout_status(payout_id) ⇒ Hash

Get fiat payout status GET /v1/fiat-payouts/:payout_id

Parameters:

  • payout_id (String, Integer)

    Payout ID

Returns:

  • (Hash)

    Payout details and status



79
80
81
# File 'lib/nowpayments/api/fiat_payouts.rb', line 79

def fiat_payout_status(payout_id)
  get("fiat-payouts/#{payout_id}").body
end

#fiat_payouts(id: nil, provider: nil, request_id: nil, fiat_currency: nil, crypto_currency: nil, status: nil, filter: nil, provider_payout_id: nil, limit: 10, page: 0, order_by: nil, sort_by: nil, date_from: nil, date_to: nil) ⇒ Hash

Get list of fiat payouts GET /v1/fiat-payouts

Parameters:

  • id (String, Integer, nil) (defaults to: nil)

    Optional filter by payout ID

  • provider (String, nil) (defaults to: nil)

    Optional filter by provider

  • request_id (String, nil) (defaults to: nil)

    Optional filter by request ID

  • fiat_currency (String, nil) (defaults to: nil)

    Optional filter by fiat currency

  • crypto_currency (String, nil) (defaults to: nil)

    Optional filter by crypto currency

  • status (String, nil) (defaults to: nil)

    Optional filter by status (e.g., “FINISHED”, “PENDING”)

  • filter (String, nil) (defaults to: nil)

    Optional text filter

  • provider_payout_id (String, nil) (defaults to: nil)

    Optional filter by provider’s payout ID

  • limit (Integer) (defaults to: 10)

    Number of results per page (default: 10)

  • page (Integer) (defaults to: 0)

    Page number (default: 0)

  • order_by (String, nil) (defaults to: nil)

    Optional field to order by

  • sort_by (String, nil) (defaults to: nil)

    Optional sort direction (“asc” or “desc”)

  • date_from (String, nil) (defaults to: nil)

    Optional start date (ISO 8601)

  • date_to (String, nil) (defaults to: nil)

    Optional end date (ISO 8601)

Returns:

  • (Hash)

    List of payouts



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/nowpayments/api/fiat_payouts.rb', line 100

def fiat_payouts(
  id: nil,
  provider: nil,
  request_id: nil,
  fiat_currency: nil,
  crypto_currency: nil,
  status: nil,
  filter: nil,
  provider_payout_id: nil,
  limit: 10,
  page: 0,
  order_by: nil,
  sort_by: nil,
  date_from: nil,
  date_to: nil
)
  params = { limit: limit, page: page }
  params[:id] = id if id
  params[:provider] = provider if provider
  params[:requestId] = request_id if request_id
  params[:fiatCurrency] = fiat_currency if fiat_currency
  params[:cryptoCurrency] = crypto_currency if crypto_currency
  params[:status] = status if status
  params[:filter] = filter if filter
  params[:provider_payout_id] = provider_payout_id if provider_payout_id
  params[:orderBy] = order_by if order_by
  params[:sortBy] = sort_by if sort_by
  params[:dateFrom] = date_from if date_from
  params[:dateTo] = date_to if date_to
  get("fiat-payouts", params: params).body
end

#update_fiat_payout_account(account_id:, account_data:) ⇒ Hash

Update a fiat payout account PATCH /v1/fiat-payouts/account/:account_id

Parameters:

  • account_id (String, Integer)

    Account ID

  • account_data (Hash)

    Updated account data

Returns:

  • (Hash)

    Updated account details



53
54
55
56
# File 'lib/nowpayments/api/fiat_payouts.rb', line 53

def (account_id:, account_data:)
  params = { accountData:  }
  patch("fiat-payouts/account/#{}", body: params).body
end