Skip to main content

Payload Fields Reference

Flat field-level reference for all structures and payload types. For normative rules see SSF-SPEC-001, Sections 7–8.


ERC20RelayerSig

Reused as permitSig and payWithPermitSig in all payload types.

FieldTypeFormatRequiredConstraints
hashbytes3266-char hex stringREQUIRED0x + 64 lowercase hex chars. The EIP-712 digest that was signed.
vuint8integerREQUIRED27 or 28. Normalise 027, 128. Reject all other values.
rbytes3266-char hex stringREQUIRED0x + 64 lowercase hex chars. Leading zeros MUST be preserved.
sbytes3266-char hex stringREQUIRED0x + 64 lowercase hex chars. Leading zeros MUST be preserved.

PermitParams

Nested inside PayWithPermitParams and BuyAcquiringPackPermitParams.

FieldTypeFormatRequiredConstraints
owneraddress42-char hex stringREQUIRED0x + 40 lowercase hex chars. MUST match signer recovered from payWithPermitSig.
spenderaddress42-char hex stringREQUIRED0x + 40 lowercase hex chars. Typically the Settlement Contract address.
valueuint256decimal or hex stringREQUIREDNon-negative integer in uint256 range. Total amount inclusive of all fees.
nonceuint256decimal or hex stringREQUIREDMUST match current on-chain ERC-2612 nonce of owner on the token contract.
deadlineuint256Unix timestamp (seconds)REQUIREDMUST be strictly greater than processor clock at submission time.

PayWithPermitParams

FieldTypeFormatRequiredConstraints
tokenaddress42-char hex stringREQUIREDERC-2612-compliant stablecoin contract address.
beneficiaryaddress42-char hex stringREQUIREDMerchant's receiving address.
refbytes3266-char hex stringREQUIRED16-byte Order Reference || 16-byte Acquirer ID. Missing parts MUST be zero-padded. Always REQUIRED.
permitParamsPermitParamsnested objectREQUIREDowner MUST match recovered signer of payWithPermitSig.

ref field composition

ref (32 bytes) = orderReference (16 bytes) || acquirerId (16 bytes)
Scenarioref value
Both presentorderReference + acquirerId
No acquirerorderReference + 0x00000000000000000000000000000000
No order reference0x00000000000000000000000000000000 + acquirerId
Neither0x0000000000000000000000000000000000000000000000000000000000000000

BuyAcquiringPackPermitParams

FieldTypeFormatRequiredConstraints
tokenaddress42-char hex stringREQUIREDMust be present in acquiringAllowedTokens on the Settlement Contract.
feeValueuint256decimal or hex stringREQUIREDMUST equal permitParams.value and current acquiringPrice.
acquiringaddress42-char hex stringREQUIREDMust not already be registered as an Acquirer.
permitParamsPermitParamsnested objectREQUIREDvalue MUST equal feeValue. owner MUST match recovered signer of payWithPermitSig.

TransferRequest (full payload)

FieldTypeRequiredDescription
payWithPermitParamsPayWithPermitParamsREQUIREDPayment parameters.
payWithPermitSigERC20RelayerSigREQUIREDBinding Signature over payWithPermitParams. Recovered signer MUST equal permitParams.owner.
permitSigERC20RelayerSigREQUIREDPermit Signature. Forwarded verbatim to the Settlement Contract.
payloadIdstringREQUIREDClient-generated UUID. MUST correspond to a known, unprocessed checkout session.

BuyAcquiringPackRequest (full payload)

FieldTypeRequiredDescription
buyAcquiringPackParamsBuyAcquiringPackPermitParamsREQUIREDRegistration parameters.
payWithPermitSigERC20RelayerSigREQUIREDBinding Signature over buyAcquiringPackParams. Recovered signer MUST equal permitParams.owner.
permitSigERC20RelayerSigREQUIREDPermit Signature. Signed value MUST equal buyAcquiringPackParams.feeValue.

Encoding Rules

RuleDetail
Hex prefixAll hex strings MUST begin with 0x
CaseLowercase hex digits only (af). Uppercase MUST be normalised before processing.
Address lengthExactly 42 characters (0x + 40 hex digits)
bytes32 lengthExactly 66 characters (0x + 64 hex digits)
Leading zerosMUST be preserved to full field width
uint256 range0 to 2²⁵⁶ − 1
v normalisation027, 128. Values outside {0, 1, 27, 28} MUST be rejected.

Error Categories

CodeTrigger
STRUCTURAL_ERRORMissing field, wrong type, encoding violation (length, prefix, non-hex character)
SEMANTIC_ERRORExpired deadline, nonce mismatch, unknown payloadId, feeValuepermitParams.value
CRYPTOGRAPHIC_ERRORSignature recovery failure, signer ≠ owner, hash field mismatch
BROADCAST_ERROROn-chain transaction revert or submission failure after successful validation