OpenAPI Specification
openapi: 3.0.0
info:
title: Palisade Addresses Transactions API
description: The Palisade API enables programmatic interaction with the various features of the Palisade platform
version: '2.0'
servers:
- url: https://api.sandbox.palisade.co
description: Sandbox server (uses TESTNET data, private keys and accounts)
- url: https://api.palisade.co
description: Palisade server (uses MAINNET data, private keys and accounts)
security:
- TokenAuth: []
tags:
- name: Transactions
description: Used to manage transactions
paths:
/v2/transactions:
get:
summary: List transactions
description: List organization transactions with optional filtering, search, sorting, and pagination. Supports both GET (bookmarkable, simple queries) and POST :list (complex filter objects as a JSON body).
operationId: TransactionsService_ListTransactions
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v2ListTransactionsResponse'
'400':
description: Returned when the request is malformed or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: 'validation error: - name: value length must be at least 1 characters [string.min_len].'
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'401':
description: Returned when the request was unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authorization requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'403':
description: Returned when the request was forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authentication requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The resource does not exist.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
parameters:
- name: filter.status.eq
description: Exact transaction status match
in: query
required: false
schema:
type: string
enum:
- REQUESTED
- POLICY_CHECK_PENDING
- POLICY_CHECK_PASSED
- APPROVAL_CHECK_PENDING
- APPROVAL_CHECK_PASSED
- COMPILATION_PENDING
- COMPILED
- SIGNATURE_PENDING
- SIGNED
- PUBLISH_PENDING
- PUBLISHED
- CONFIRMATION_PENDING
- CONFIRMED
- REJECTED
- FAILED
- name: filter.status.notEq
description: Exclude this transaction status
in: query
required: false
schema:
type: string
enum:
- REQUESTED
- POLICY_CHECK_PENDING
- POLICY_CHECK_PASSED
- APPROVAL_CHECK_PENDING
- APPROVAL_CHECK_PASSED
- COMPILATION_PENDING
- COMPILED
- SIGNATURE_PENDING
- SIGNED
- PUBLISH_PENDING
- PUBLISHED
- CONFIRMATION_PENDING
- CONFIRMED
- REJECTED
- FAILED
- name: filter.status.in
description: Transaction status is in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- REQUESTED
- POLICY_CHECK_PENDING
- POLICY_CHECK_PASSED
- APPROVAL_CHECK_PENDING
- APPROVAL_CHECK_PASSED
- COMPILATION_PENDING
- COMPILED
- SIGNATURE_PENDING
- SIGNED
- PUBLISH_PENDING
- PUBLISHED
- CONFIRMATION_PENDING
- CONFIRMED
- REJECTED
- FAILED
- name: filter.status.notIn
description: Transaction status is not in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- REQUESTED
- POLICY_CHECK_PENDING
- POLICY_CHECK_PASSED
- APPROVAL_CHECK_PENDING
- APPROVAL_CHECK_PASSED
- COMPILATION_PENDING
- COMPILED
- SIGNATURE_PENDING
- SIGNED
- PUBLISH_PENDING
- PUBLISHED
- CONFIRMATION_PENDING
- CONFIRMED
- REJECTED
- FAILED
- name: filter.blockchain.eq
description: Exact blockchain match
in: query
required: false
schema:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.blockchain.notEq
description: Exclude this blockchain
in: query
required: false
schema:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.blockchain.in
description: Blockchain is in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.blockchain.notIn
description: Blockchain is not in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- AVALANCHE
- ETHEREUM
- XRP_LEDGER
- POLYGON
- BNBCHAIN
- BASE
- HEDERA
- ARBITRUM
- ONE_MONEY
- SOLANA
- TRON
- BITCOIN
- name: filter.assetSymbol.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.assetSymbol.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.assetSymbol.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.assetSymbol.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.createdAt.eq
description: Exact timestamp match
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.notEq
description: Not equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.before
description: Before this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.after
description: After this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.gte
description: Greater than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.lte
description: Less than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.between.start
description: Start of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.between.end
description: End of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.createdAt.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.createdAt.relativeDays
description: Relative days from now (negative for past, positive for future)
in: query
required: false
schema:
type: integer
format: int32
- name: filter.qty.eq
description: Equals
in: query
required: false
schema:
type: string
- name: filter.qty.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.qty.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.qty.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.qty.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.qty.gt
description: Greater than
in: query
required: false
schema:
type: string
- name: filter.qty.gte
description: Greater than or equal to
in: query
required: false
schema:
type: string
- name: filter.qty.lt
description: Less than
in: query
required: false
schema:
type: string
- name: filter.qty.lte
description: Less than or equal to
in: query
required: false
schema:
type: string
- name: filter.originAddress.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.originAddress.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.originAddress.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.originAddress.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.originAddress.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.originAddress.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.originAddress.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.originAddress.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.destinationAddress.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.destinationAddress.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.destinationAddress.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.destinationAddress.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.destinationAddress.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.destinationAddress.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.destinationAddress.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.destinationAddress.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.transactionId.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.transactionId.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.transactionId.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.transactionId.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.transactionId.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.transactionId.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.transactionId.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.transactionId.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.transactionHash.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.transactionHash.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.transactionHash.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.transactionHash.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.transactionHash.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.transactionHash.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.transactionHash.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.transactionHash.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.externalId.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.externalId.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.externalId.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.externalId.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.externalId.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.externalId.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.externalId.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.externalId.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.updatedAt.eq
description: Exact timestamp match
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.notEq
description: Not equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.before
description: Before this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.after
description: After this timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.gte
description: Greater than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.lte
description: Less than or equal to timestamp
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.between.start
description: Start of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.between.end
description: End of time range (inclusive)
in: query
required: false
schema:
type: string
format: date-time
- name: filter.updatedAt.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.updatedAt.relativeDays
description: Relative days from now (negative for past, positive for future)
in: query
required: false
schema:
type: integer
format: int32
- name: filter.correlationId.eq
description: Exact match
in: query
required: false
schema:
type: string
- name: filter.correlationId.notEq
description: Not equal to
in: query
required: false
schema:
type: string
- name: filter.correlationId.contains
description: Contains substring (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.correlationId.startsWith
description: Starts with prefix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.correlationId.endsWith
description: Ends with suffix (case-insensitive)
in: query
required: false
schema:
type: string
- name: filter.correlationId.in
description: Value is in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.correlationId.notIn
description: Value is not in the list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
- name: filter.correlationId.isNull
description: Check if field is null
in: query
required: false
schema:
type: boolean
- name: filter.type.eq
description: Exact transaction type match
in: query
required: false
schema:
type: string
enum:
- DEPOSIT
- WITHDRAWAL
- WEB3_RAW
- WEB3_SIGN
- PASSKEY_RAW
- PASSKEY_SIGN
- PALISADE_TRANSFER
- PALISADE_RAW
- PALISADE_MANAGED
- PALISADE_SIGN_PLAINTEXT
- PALISADE_SWEEP
- name: filter.type.notEq
description: Exclude this transaction type
in: query
required: false
schema:
type: string
enum:
- DEPOSIT
- WITHDRAWAL
- WEB3_RAW
- WEB3_SIGN
- PASSKEY_RAW
- PASSKEY_SIGN
- PALISADE_TRANSFER
- PALISADE_RAW
- PALISADE_MANAGED
- PALISADE_SIGN_PLAINTEXT
- PALISADE_SWEEP
- name: filter.type.in
description: Transaction type is in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- DEPOSIT
- WITHDRAWAL
- WEB3_RAW
- WEB3_SIGN
- PASSKEY_RAW
- PASSKEY_SIGN
- PALISADE_TRANSFER
- PALISADE_RAW
- PALISADE_MANAGED
- PALISADE_SIGN_PLAINTEXT
- PALISADE_SWEEP
- name: filter.type.notIn
description: Transaction type is not in this list
in: query
required: false
explode: true
schema:
type: array
items:
type: string
enum:
- DEPOSIT
- WITHDRAWAL
- WEB3_RAW
- WEB3_SIGN
- PASSKEY_RAW
- PASSKEY_SIGN
- PALISADE_TRANSFER
- PALISADE_RAW
- PALISADE_MANAGED
- PALISADE_SIGN_PLAINTEXT
- PALISADE_SWEEP
- name: pagination.pageSize
description: Number of results per page (default 50, max 1000)
in: query
required: false
schema:
type: integer
format: int32
- name: pagination.pageToken
description: Token for pagination from previous response
in: query
required: false
schema:
type: string
- name: pagination.orderBy
description: Field to order results by
in: query
required: false
schema:
type: string
- name: pagination.order
description: Sort order (ASC or DESC)
in: query
required: false
schema:
type: string
enum:
- SORT_ORDER_ASC
- SORT_ORDER_DESC
- name: search
description: Case-insensitive free-text search over transaction ID, transaction hash, external ID, correlation ID, asset symbol, origin address, and destination address.
in: query
required: false
schema:
type: string
tags:
- Transactions
/v2/transactions/transfer/estimate-fee:
post:
summary: Estimate the fee for a transfer transaction
description: Estimate the fee for a transfer transaction
operationId: TransactionsService_EstimateTransferFee
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/v2FeeEstimate'
'400':
description: Returned when the request is malformed or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: 'validation error: - name: value length must be at least 1 characters [string.min_len].'
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'401':
description: Returned when the request was unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authorization requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'403':
description: Returned when the request was forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The access token provided does not meet the authentication requirements.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
'404':
description: Returned when the resource does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
examples:
response:
value:
code: 123
message: The resource does not exist.
details:
- '@type': type.googleapis.com/google.rpc.ErrorInfo
reason: PAL000.000
domain: app.development.palisade.co/api
metadata: {}
- '@type': type.googleapis.com/google.rpc.RequestInfo
requestId: c817569e-b765-4e6e-a3af-bdb1d07e7517
servingData: ''
default:
description: An unexpected error response.
content:
application/json:
schema:
$ref: '#/components/schemas/rpcStatus'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v2EstimateTransferFeeRequest'
required: true
tags:
- Transactions
/v2/transactions:list:
post:
summary: List transactions
description: List organization transactions with optional filtering, search, sorting, and pagination. Supports both GET (bookmarkable, simple queries) and POST :list (complex filter objects as a JSON body).
operationId: TransactionsService_ListTransactions2
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v2ListTransactionsResponse'
'400':
description: Returned when the request is malformed or invalid.
content:
applica
# --- truncated at 32 KB (143 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ripple-labs/refs/heads/main/openapi/ripple-labs-transactions-api-openapi.yml