Class PaymentResponse
A Payment transaction represents a transfer of value from one account to another.
Inherited Members
Namespace: Xrpl.Models.Transactions
Assembly: Xrpl.dll
Syntax
public class PaymentResponse : TransactionResponse, ITransactionResponse, IBaseTransactionResponse, IPayment, ITransactionCommon, IDestination
Properties
| Edit this page View SourceAmount
API v1
The amount of currency to deliver.
For non-XRP amounts, the nested field names MUST be lower-case.
If the tfPartialPayment flag is set, deliver up to this amount instead.
Alias to DeliverMax
API v2: The maximum amount of currency to deliver.
Partial payments can deliver less than this amount and still succeed;
other payments fail unless they deliver the exact amount.
Declaration
[JsonIgnore]
public Currency Amount { get; set; }
Property Value
| Type | Description |
|---|---|
| Currency |
Remarks
The single value callers read, regardless of whether the node sent it as "Amount" (API v1), "DeliverMax" (API v2), or both (API v1, confirmed live - see Xrpl.Models.Transactions.PaymentResponse._receivedAsAmount). Excluded from JSON directly: Xrpl.Models.Transactions.PaymentResponse.AmountAlias and Xrpl.Models.Transactions.PaymentResponse.DeliverMax below own the wire representation, so every field name a value came in under is one it goes back out under — callers never have to guess which one(s) fired.
One value behind two names, which is exact for every response rippled actually produces:
v2 sends DeliverMax alone, v1 sends both carrying the same amount. It is not exact if the
two ever disagree - the setters run in document order, the later one wins, and both names
then re-serialize with that single value. Measured on a hand-built payload where the node
"sent" Amount 1000000 and DeliverMax 999, the round trip emits 999 under both names, so
Amount reads as a value that was never sent. rippled cannot produce that response - the v1
path duplicates one field rather than computing two - so this is a property of malformed
or hostile input, not of the protocol. Raw keeps the truth either way; a consumer
that must detect tampering should compare against it rather than trusting this projection.
CredentialIDs
(Optional) Set of Credentials (object IDs, hex 64-char each) to authorize a deposit when the destination account requires Deposit Authorization with credential-based preauth (XLS-70). Maximum 8 entries.
Declaration
[JsonPropertyName("CredentialIDs")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public List<string> CredentialIDs { get; set; }
Property Value
| Type | Description |
|---|---|
| List<string> |
DeliverMin
Minimum amount of destination currency this transaction should deliver.
Only valid if this is a partial payment.
For non-XRP amounts, the nested field names are lower-case.
Declaration
[JsonConverter(typeof(CurrencyConverter))]
public Currency DeliverMin { get; set; }
Property Value
| Type | Description |
|---|---|
| Currency |
Destination
The unique address of the account receiving the payment.
Declaration
public string Destination { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
DestinationTag
Arbitrary tag that identifies the reason for the payment to the destination, or a hosted recipient to pay.
Declaration
public uint? DestinationTag { get; set; }
Property Value
| Type | Description |
|---|---|
| uint? |
DomainID
The domain the sender intends to use for cross-currency payments through the permissioned DEX. Both sender and destination must be part of this domain if it interacts with the DEX.
Declaration
public string DomainID { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Flags
Payment Transaction Flags
Declaration
public PaymentFlags? Flags { get; set; }
Property Value
| Type | Description |
|---|---|
| PaymentFlags? |
InvoiceID
Arbitrary 256-bit hash representing a specific reason or identifier for this payment.
Declaration
public string InvoiceID { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Paths
Array of payment paths to be used for this transaction.
Must be omitted for XRP-to-XRP transactions.
Declaration
public List<List<PathStep>> Paths { get; set; }
Property Value
| Type | Description |
|---|---|
| List<List<PathStep>> |
SendMax
Highest amount of source currency this transaction is allowed to cost, including transfer fees, exchange rates, and slippage.
Does not include the XRP destroyed as a cost for submitting the transaction.
For non-XRP amounts, the nested field names MUST be lower-case.
Must be supplied for cross-currency/cross-issue payments.
Must be omitted for XRP-to-XRP Payments.
Declaration
[JsonConverter(typeof(CurrencyConverter))]
public Currency SendMax { get; set; }
Property Value
| Type | Description |
|---|---|
| Currency |