diff --git a/crates/api_models/src/errors/actix.rs b/crates/api_models/src/errors/actix.rs
index 725bc64843..5c05b6e80d 100644
--- a/crates/api_models/src/errors/actix.rs
+++ b/crates/api_models/src/errors/actix.rs
@@ -17,6 +17,7 @@ impl actix_web::ResponseError for ApiErrorResponse {
Self::MethodNotAllowed(_) => StatusCode::METHOD_NOT_ALLOWED,
Self::NotFound(_) => StatusCode::NOT_FOUND,
Self::BadRequest(_) => StatusCode::BAD_REQUEST,
+ Self::DomainError(_) => StatusCode::OK,
}
}
diff --git a/crates/api_models/src/errors/types.rs b/crates/api_models/src/errors/types.rs
index 5f303f93c5..538a75e1b2 100644
--- a/crates/api_models/src/errors/types.rs
+++ b/crates/api_models/src/errors/types.rs
@@ -94,6 +94,7 @@ pub enum ApiErrorResponse {
NotFound(ApiError),
MethodNotAllowed(ApiError),
BadRequest(ApiError),
+ DomainError(ApiError),
}
impl ::core::fmt::Display for ApiErrorResponse {
@@ -122,6 +123,7 @@ impl ApiErrorResponse {
| Self::NotFound(i)
| Self::MethodNotAllowed(i)
| Self::BadRequest(i)
+ | Self::DomainError(i)
| Self::ConnectorError(i, _) => i,
}
}
@@ -139,6 +141,7 @@ impl ApiErrorResponse {
| Self::NotFound(i)
| Self::MethodNotAllowed(i)
| Self::BadRequest(i)
+ | Self::DomainError(i)
| Self::ConnectorError(i, _) => i,
}
}
@@ -156,6 +159,7 @@ impl ApiErrorResponse {
| Self::NotFound(_)
| Self::BadRequest(_) => "invalid_request",
Self::InternalServerError(_) => "api",
+ Self::DomainError(_) => "blocked",
Self::ConnectorError(_, _) => "connector",
}
}
diff --git a/crates/data_models/src/payments/payment_attempt.rs b/crates/data_models/src/payments/payment_attempt.rs
index e6b9950b45..2b5705c155 100644
--- a/crates/data_models/src/payments/payment_attempt.rs
+++ b/crates/data_models/src/payments/payment_attempt.rs
@@ -308,6 +308,12 @@ pub enum PaymentAttemptUpdate {
error_message: Option