#[derive(thiserror::Error, Debug)]
#[non_exhaustive]
pub enum Error {
#[error("Generic error: {0}")]
Generic(String),
#[error("Failed Request Error: {0}")]
FailedRequest(String),
#[error("Transaction Error: {0}")]
Transaction(String),
#[error("Charge Error: {0}")]
Charge(String),
#[error("Transaction Split Error: {0}")]
TransactionSplit(String),
#[error("Subaccount Error: {0}")]
Subaccount(String),
#[error("Terminal Error: {0}")]
Terminal(String),
#[error("Request failed - Status Code: {0} Body: {1}")]
RequestNotSuccessful(String, String),
#[error("Response parsing error: {0}")]
ResponseParsing(String),
#[error(transparent)]
Reqwest(#[from] reqwest::Error),
}