Skip to main content

X402PurchaseResult

paymentIdstringrequired
successbooleanrequired
errorReasonstring
txHashTxHash

Possible values: Value must match regular expression ^[0-9a-f]{64}$

intentIdIntentId

<sender bech32>:<nonce> - the natural intent key (sender, nonce).

Possible values: Value must match regular expression ^erd1[02-9ac-hj-np-z]{58}:[0-9]{1,20}$

accountAddress

MultiversX bech32 address.

Possible values: Value must match regular expression ^erd1[02-9ac-hj-np-z]{58}$

Example: erd1mf4u0jr6786wtz7s7dj6gmpyfafg8e0exh5wvye5cygvvxyyxhpsmj8q0e
creditedMicroUsdcDecimalString

Non-negative integer as decimal string (pricing document family).

Possible values: Value must match regular expression ^[0-9]+$

quota object

Quota of an account: service state, current period, cap, grant, PAYG, auto-renew, credits, senders and rate limits.

stateServiceStaterequired

Service state derived by the backend from chain and usage data. There is no matching on-chain flag.

Possible values: [ACTIVE_CAP, ACTIVE_PAYG, RENEWAL_PENDING, HALTED_CAP, HALTED_PAYG_EMPTY, LAPSED, NO_ACCOUNT, SUSPENDED]

haltedbooleanrequired

True for HALTED_CAP, HALTED_PAYG_EMPTY, LAPSED, NO_ACCOUNT, SUSPENDED.

chainTimeMsinteger<int64>required

Unix time in milliseconds.

Possible values: >= 0

accountAddress

The account that would be billed.

Possible values: Value must match regular expression ^erd1[02-9ac-hj-np-z]{58}$

Example: erd1mf4u0jr6786wtz7s7dj6gmpyfafg8e0exh5wvye5cygvvxyyxhpsmj8q0e
resolvedFromAuthMode

How the billed account was found.

Possible values: [own_account, authorized_sender, api_key, free_list, internal]

period object
idinteger
startMsinteger<int64>

Unix time in milliseconds.

Possible values: >= 0

endMs(integer | null)<int64>nullable
tierstring
tierIdinteger
cap object
ruinteger<int64>

Relay Units.

Possible values: >= 0

usedinteger<int64>

Relay Units.

Possible values: >= 0

reservedinteger<int64>

Relay Units.

Possible values: >= 0

leftinteger<int64>

Relay Units.

Possible values: >= 0

bonusLeftinteger<int64>

Relay Units.

Possible values: >= 0

carryOverinteger<int64>

Unused cap carried over from the previous plan on an upgrade. It expires with the first period of the new plan.

Possible values: >= 0

grant object

Owner-granted RU, consumed first.

leftinteger<int64>

Relay Units.

Possible values: >= 0

expiryMsinteger<int64>

Unix time in milliseconds.

Possible values: >= 0

payg object
enabledboolean
pricePerRuMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

floatingboolean
escrowMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

unsettledMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

reservedMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

leftRuinteger<int64>

Relay Units.

Possible values: >= 0

budgetMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

autoRenew object
enabledboolean
maxRenewPriceMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

nextPriceMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

predictedOutcomestring

Outcome that the contract view quoteRenew predicts for the next renewal. The values are the contract's nine RenewOutcome names in upper snake case (Ok, NotDue, NotEnabled, Price, Credits, TierInactive, QueuedStarted, NoAccount, Paused).

Possible values: [OK, NOT_DUE, NOT_ENABLED, PRICE, CREDITS, TIER_INACTIVE, QUEUED_STARTED, NO_ACCOUNT, PAUSED]

creditsMicrointeger<int64>

micro-USDC (6 decimals) as JSON integer - operational endpoints.

Possible values: >= 0

senders object
countinteger
maxinteger
rate object

Per-account ceilings of the tier's rate class.

rateClassintegerrequired

Possible values: >= 1

ruPerSecSustainedintegerrequired
ruPerSecBurstintegerrequired
gasLimitPerSecPerShardDecimalStringrequired

Non-negative integer as decimal string (pricing document family).

Possible values: Value must match regular expression ^[0-9]+$

gasBurstDecimalString

Non-negative integer as decimal string (pricing document family).

Possible values: Value must match regular expression ^[0-9]+$

maxGasLimitDecimalString

Non-negative integer as decimal string (pricing document family).

Possible values: Value must match regular expression ^[0-9]+$

maxRuPerTxDecimalString

Per-transaction RU ceiling of the class, including the data term: 15 for classes 1 and 6, 25 for classes 2-5. admission.maxRuPerTx is the largest value of any class (admission.maxRuPerTxNote).

Possible values: Value must match regular expression ^[0-9]+$

ruPerHourinteger
settlement object
lastSeqinteger<int64>
lastBatchIdinteger<int64>
lagMsinteger<int64>

Possible values: >= 0

relayEndpointstring<uri>
assignEndpointstring<uri>
X402PurchaseResult
{
"paymentId": "string",
"success": true,
"errorReason": "string",
"txHash": "string",
"intentId": "string",
"account": "erd1mf4u0jr6786wtz7s7dj6gmpyfafg8e0exh5wvye5cygvvxyyxhpsmj8q0e",
"creditedMicroUsdc": "string",
"quota": {
"state": "ACTIVE_CAP",
"halted": true,
"chainTimeMs": 0,
"account": "erd1mf4u0jr6786wtz7s7dj6gmpyfafg8e0exh5wvye5cygvvxyyxhpsmj8q0e",
"resolvedFrom": "own_account",
"period": {
"id": 0,
"startMs": 0,
"endMs": 0,
"tier": "string",
"tierId": 0
},
"cap": {
"ru": 0,
"used": 0,
"reserved": 0,
"left": 0,
"bonusLeft": 0,
"carryOver": 0
},
"grant": {
"left": 0,
"expiryMs": 0
},
"payg": {
"enabled": true,
"pricePerRuMicro": 0,
"floating": true,
"escrowMicro": 0,
"unsettledMicro": 0,
"reservedMicro": 0,
"leftRu": 0,
"budgetMicro": 0
},
"autoRenew": {
"enabled": true,
"maxRenewPriceMicro": 0,
"nextPriceMicro": 0,
"predictedOutcome": "OK"
},
"creditsMicro": 0,
"senders": {
"count": 0,
"max": 0
},
"rate": {
"rateClass": 1,
"ruPerSecSustained": 1,
"ruPerSecBurst": 15,
"gasLimitPerSecPerShard": "20000000",
"gasBurst": "200000000",
"maxGasLimit": "100000000",
"maxRuPerTx": "15",
"ruPerHour": 300
},
"settlement": {
"lastSeq": 0,
"lastBatchId": 0,
"lagMs": 0
}
},
"relayEndpoint": "string",
"assignEndpoint": "string"
}