GET /api/v1/wallet/payment-reviews/{id}
Parameters
| Name | Location | Details |
|---|---|---|
X-Juicebox-Account | header / required | Enrolled account identity, including authority chain and lowercase owner address. Enrollment derives this identity before the account exists. |
X-Juicebox-Signer | header / required | Owner wallet or authorized bot address that signed this request. |
X-Juicebox-Issued-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; at most 30 seconds ahead of server time. |
X-Juicebox-Expires-At | header / required | Unix seconds, sent as 1–13 decimal digits without leading zeros; in the future and within 300 seconds of issuedAt. |
X-Juicebox-Nonce | header / required | Fresh random 32-byte lowercase nonce. A consumed nonce cannot be retried. |
X-Juicebox-Signature | header / required | EIP-712 CenterRequest signature over every signed field. Contract-owner signatures may vary in length. This is a computed request proof, not a reusable API key. |
X-Juicebox-Grant | header / optional | Authorized bot grant ID. Required for a bot; omit for the owner, signing grantId as the empty string. |
Idempotency-Key | header / optional | Signed retry identity. Required on plan creation and transaction submission. Preserve exact method, target, Content-Type, and body bytes; use a fresh request nonce and signature. |
id | path / required | string |
Response 200
| Field | Type | Details | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
version | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
id | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
state | string required | Canonical base64url encoding of 32 random bytes retained by the initiating app. | ||||||||||||||||||||||||||||||||||||||||||||||||
issuer | string (uri) required | |||||||||||||||||||||||||||||||||||||||||||||||||
accountId | string required | Authority chain and lowercase owner address; the authority chain is independent of a transaction's destination chain. | ||||||||||||||||||||||||||||||||||||||||||||||||
app | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
planId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
planCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationId | string (uuid) required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationCommitment | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationHash | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
stepIndexes | array required | |||||||||||||||||||||||||||||||||||||||||||||||||
operation | object required | Unpacked EntryPoint v0.7 operation. RPC integers are hexadecimal quantities; reviewed policy amounts use decimal strings. No v0.8 or EIP-7702 extensions.Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
chainId | integer required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
entryPoint | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
safe7579 | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
payment | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
signing | object required | Fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
createdAtMs | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
expiresAtMs | integer required | |||||||||||||||||||||||||||||||||||||||||||||||||
status | string required | Values: | ||||||||||||||||||||||||||||||||||||||||||||||||
approvedAtMs | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
cancelledAtMs | one of required | |||||||||||||||||||||||||||||||||||||||||||||||||
operationState | string required | |||||||||||||||||||||||||||||||||||||||||||||||||
approval | one of required |
JSON schema
{
"type": "object",
"properties": {
"version": {
"type": "string",
"const": "center-wallet-payment-review-v1"
},
"id": {
"$ref": "#/components/schemas/ResourceId"
},
"state": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "Canonical base64url encoding of 32 random bytes retained by the initiating app."
},
"issuer": {
"type": "string",
"format": "uri"
},
"accountId": {
"$ref": "#/components/schemas/AccountId"
},
"app": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"format": "uri"
},
"callbackUri": {
"type": "string",
"format": "uri"
},
"grantId": {
"$ref": "#/components/schemas/ResourceId"
},
"grantIncarnation": {
"$ref": "#/components/schemas/PositiveUint256"
}
},
"required": [
"origin",
"callbackUri",
"grantId",
"grantIncarnation"
],
"additionalProperties": false
},
"planId": {
"$ref": "#/components/schemas/ResourceId"
},
"planCommitment": {
"$ref": "#/components/schemas/Hash"
},
"operationId": {
"$ref": "#/components/schemas/ResourceId"
},
"operationCommitment": {
"$ref": "#/components/schemas/Hash"
},
"operationHash": {
"$ref": "#/components/schemas/Hash"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
"operation": {
"$ref": "#/components/schemas/UserOperationV07"
},
"chainId": {
"type": "integer",
"const": 8453
},
"entryPoint": {
"$ref": "#/components/schemas/Address"
},
"safe7579": {
"$ref": "#/components/schemas/Address"
},
"payment": {
"type": "object",
"properties": {
"kind": {
"const": "v6-usdc-pay",
"type": "string"
},
"chainId": {
"const": 8453,
"type": "integer"
},
"account": {
"$ref": "#/components/schemas/Address"
},
"token": {
"$ref": "#/components/schemas/Address"
},
"terminal": {
"$ref": "#/components/schemas/Address"
},
"projectId": {
"$ref": "#/components/schemas/Uint256"
},
"amount": {
"$ref": "#/components/schemas/PositiveUint256"
},
"beneficiary": {
"$ref": "#/components/schemas/Address"
},
"minimumReturnedTokens": {
"$ref": "#/components/schemas/Uint256"
},
"memo": {
"type": "string",
"maxLength": 32768
},
"metadata": {
"$ref": "#/components/schemas/HexBytes"
},
"stepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 1,
"maxItems": 3,
"uniqueItems": true
},
"approvalStepIndexes": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"minItems": 0,
"maxItems": 2,
"uniqueItems": true
},
"paymentStepIndex": {
"type": "integer",
"minimum": 0,
"maximum": 31
},
"resetAllowance": {
"type": "boolean"
}
},
"required": [
"kind",
"chainId",
"account",
"token",
"terminal",
"projectId",
"amount",
"beneficiary",
"minimumReturnedTokens",
"memo",
"metadata",
"stepIndexes",
"approvalStepIndexes",
"paymentStepIndex",
"resetAllowance"
],
"additionalProperties": false
},
"signing": {
"type": "object",
"properties": {
"digest": {
"$ref": "#/components/schemas/Hash"
},
"signedData": {
"$ref": "#/components/schemas/HexBytes"
},
"validAfter": {
"$ref": "#/components/schemas/Uint256"
},
"validUntil": {
"$ref": "#/components/schemas/Uint256"
}
},
"required": [
"digest",
"signedData",
"validAfter",
"validUntil"
],
"additionalProperties": false
},
"createdAtMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"expiresAtMs": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"cancelled"
]
},
"approvedAtMs": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"cancelledAtMs": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"operationState": {
"type": "string"
},
"approval": {
"anyOf": [
{
"type": "object",
"properties": {
"signature": {
"$ref": "#/components/schemas/HexBytes"
},
"signedCommitment": {
"$ref": "#/components/schemas/Hash"
}
},
"required": [
"signature",
"signedCommitment"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"version",
"id",
"state",
"issuer",
"accountId",
"app",
"planId",
"planCommitment",
"operationId",
"operationCommitment",
"operationHash",
"stepIndexes",
"operation",
"chainId",
"entryPoint",
"safe7579",
"payment",
"signing",
"createdAtMs",
"expiresAtMs",
"status",
"approvedAtMs",
"cancelledAtMs",
"operationState",
"approval"
],
"additionalProperties": false
}