Stellar PHP SDK API Documentation

PaymentsRequestBuilder extends RequestBuilder

Builds requests for the payments endpoint in Horizon

This class provides methods to query payment-related operations on the Stellar network. Payment operations include create_account, payment, account_merge, and path payment operations (both strict send and strict receive variants).

Query Methods:

  • forAccount(): Get payments for a specific account
  • forLedger(): Get payments in a specific ledger
  • forTransaction(): Get payments in a specific transaction
  • includeFailed(): Include payments from failed transactions
  • includeTransactions(): Embed transaction data in payment responses

This endpoint returns a subset of operation types that represent payments or transfers of value between accounts.

Usage Examples:

// Get recent payments for an account $payments = $sdk->payments() ->forAccount("GDAT5...") ->limit(20) ->order("desc") ->execute();

// Stream real-time payments with transaction data $sdk->payments() ->cursor("now") ->includeTransactions(true) ->stream(function(OperationResponse $payment) { echo "Payment: " . $payment->getId() . PHP_EOL; });

// Get all payments in a specific ledger $payments = $sdk->payments() ->forLedger("123456") ->execute();

Tags
see
OperationsPageResponse

For the response format

see
https://developers.stellar.org

Stellar developer docs Horizon API Payments endpoint

Table of Contents

Constants

HEADERS  = ["X-Client-Name" => "stellar_php_sdk", "X-Client-Version" => \Soneso\StellarSDK\StellarSDK::VERSION_NR]

Properties

$httpClient  : Client
$queryParameters  : array<string|int, mixed>
$segments  : array<string|int, mixed>

Methods

__construct()  : mixed
Constructor
buildUrl()  : string
Builds the complete request URL with all segments and query parameters
cursor()  : PaymentsRequestBuilder
Sets <code>cursor</code> parameter on the request.
execute()  : Response
Build and execute request.
executeRequest()  : Response
Executes an HTTP request to Horizon and returns a parsed response object
forAccount()  : PaymentsRequestBuilder
Builds request to <code>GET /accounts/{account}/payments</code>
forLedger()  : PaymentsRequestBuilder
Builds request to <code>GET /ledgers/{ledgerSeq}/payments</code>
forTransaction()  : PaymentsRequestBuilder
Builds request to <code>GET /transactions/{transactionId}/payments</code>
getAndStream()  : void
Streams Server-Sent Events from Horizon to a callback function
includeFailed()  : PaymentsRequestBuilder
Adds a parameter defining whether to include payments of failed transactions. By default, only payments of successful transactions are returned.
includeTransactions()  : PaymentsRequestBuilder
Adds a parameter defining whether to include transactions in the response. By default, transaction data is not included.
limit()  : PaymentsRequestBuilder
Sets <code>limit</code> parameter on the request.
order()  : PaymentsRequestBuilder
Sets <code>order</code> parameter on the request.
request()  : OperationsPageResponse
Requests specific <code>url</code> and returns {@link OperationsPageResponse}.
stream()  : mixed
Streams Payment or CreateAccount objects to $callback
setSegments()  : RequestBuilder
Sets the URL path segments for this request

Constants

HEADERS

public mixed HEADERS = ["X-Client-Name" => "stellar_php_sdk", "X-Client-Version" => \Soneso\StellarSDK\StellarSDK::VERSION_NR]

Properties

$queryParameters

protected array<string|int, mixed> $queryParameters

Methods

__construct()

Constructor

public __construct(Client $httpClient) : mixed
Parameters
$httpClient : Client

The HTTP client used for making requests to Horizon

buildUrl()

Builds the complete request URL with all segments and query parameters

public buildUrl() : string

Combines the URL path segments with query parameters to create the final request URL string that will be sent to Horizon.

Return values
string

The constructed URL with query parameters

executeRequest()

Executes an HTTP request to Horizon and returns a parsed response object

public executeRequest(string $url, string $requestType[, string|null $requestMethod = "GET" ]) : Response

This method sends the HTTP request to the Horizon server, handles errors, and parses the JSON response into the appropriate response type.

Parameters
$url : string

The complete request URL to fetch

$requestType : string

The expected response type for parsing

$requestMethod : string|null = "GET"

The HTTP method to use (default: "GET")

Tags
throws
HorizonRequestException

If the request fails or response cannot be parsed

Return values
Response

The parsed response object of the specified type

getAndStream()

Streams Server-Sent Events from Horizon to a callback function

public getAndStream(string $relativeUrl, callable $callback[, bool $retryOnServerException = true ]) : void

This method establishes a persistent connection to Horizon's streaming endpoints using Server-Sent Events (SSE). It processes each event and passes the parsed data to the provided callback function. The stream automatically reconnects on server exceptions if retryOnServerException is true.

Horizon streaming uses SSE to push real-time updates. The stream sends:

  • "hello" message on connection
  • "byebye" message on disconnection
  • JSON data objects for actual events
Parameters
$relativeUrl : string

The relative URL to stream from

$callback : callable

Function to receive parsed event data

$retryOnServerException : bool = true

If true, automatically retry on server errors (default: true)

Tags
throws
GuzzleException

If a network error occurs and retryOnServerException is false

Return values
void

This method runs indefinitely until interrupted

includeFailed()

Adds a parameter defining whether to include payments of failed transactions. By default, only payments of successful transactions are returned.

public includeFailed(bool $value) : PaymentsRequestBuilder
Parameters
$value : bool

Set to true to include payments of failed transactions.

Return values
PaymentsRequestBuilder

includeTransactions()

Adds a parameter defining whether to include transactions in the response. By default, transaction data is not included.

public includeTransactions(bool $include) : PaymentsRequestBuilder
Parameters
$include : bool

Set to true to include transaction data in the payment response.

Return values
PaymentsRequestBuilder

limit()

Sets <code>limit</code> parameter on the request.

public limit(int $number) : PaymentsRequestBuilder

It defines maximum number of records to return. For range and default values check documentation of the endpoint requested.

Parameters
$number : int

Maximum number of records to return

Return values
PaymentsRequestBuilder

stream()

Streams Payment or CreateAccount objects to $callback

public stream([callable|null $callback = null ]) : mixed

$callback should have arguments: OperationResponse

For example:

$sdk = StellarSDK::getTestNetInstance(); $sdk->payments()->cursor("now")->stream(function(OperationResponse $payment) { printf('Payment operation id %s' . PHP_EOL, $payment->getOperationId()); });

Parameters
$callback : callable|null = null
Tags
throws
GuzzleException

setSegments()

Sets the URL path segments for this request

protected setSegments(string ...$segments) : RequestBuilder

This method constructs the URL path by combining multiple segments. Can only be called once per request builder instance.

Parameters
$segments : string

Variable number of URL path segments

Tags
throws
RuntimeException

If segments have already been set

Return values
RequestBuilder

This instance for method chaining


        
On this page

Search results