Overview
Last updated
Was this helpful?
Last updated
Was this helpful?
The 8Pay REST API provides developers with a straightforward and efficient way to retrieve information about operations performed on the blockchain. While the API allows for reading data, it does not support sending payments, creating recurring payments, or other blockchain interactions, which require direct interaction with the blockchain through a wallet or utilizing the 8Pay JavaScript SDK.
To access the 8Pay REST API, developers need to authenticate their requests using an API key that can be generated in the section.
The API key should be included in the Headers
section of the HTTP request using the format:
The base URL for making API requests is:
The :chain
parameter in the base URL is a placeholder that should be replaced with the desired chain identifier when making API requests. Depending on the specific chain you want to interact with, you would replace :chain
with one of the supported chain identifiers:
bsc (BNB Chain)
ethereum (Ethereum)
sandbox (BNB Chain Testnet)
API endpoints returning lists of objects can have a lot of items and are thus paginated.
Pagination can be controlled passing the following query parameters in your HTTP request:
limit: the number of items to fetch in the request (default 100, max 1000)
offset: an arbitrary offset at which to start retrieving items (default 0)
The formatting of a paginated result is always:
For simplicity, only the data field will be shown from now on.
8Pay uses conventional HTTP response codes to indicate the success or failure of an API request.
As a general rule:
Codes in the 2xx
range indicate success
Codes in the 4xx
range indicate incorrect or incomplete parameters (e.g., a required parameter was omitted, an operation failed with a 3rd party, etc.)
Codes in the 5xx
range indicate an error with 8Pay's servers (these are rare)
8Pay also outputs an error message and an error code formatted in JSON:
Every operation on the blockchain is performed sending a transaction, uniquely identified by an hash. This identifier will be referred to as transactionHash
in API responses.
Due to blockchain nature, the results produced by a transaction included in a block are not immediately final and can be reverted if a reorganization occurs. Finality is probabilistic and increases with the number of subsequent blocks mined after the block containing the transaction.
8Pay waits for a certain number of blocks depending on the chain before considering transactions confirmed:
BNB Chain: 15 blocks
Ethereum: 12 blocks
This status is referred to as transactionStatus
.
At this time, the public APIs only support confirmed transactions.