Mandates
The Mandates API is part of the Clearing House. A mandate represents an authorization for a creditor partner to debit a debtor partner's customer account, identified by a 14-character account routing number (a 7-character partner routing identifier followed by a 7-character account number).
Mandates are listed and created under {% $apiBase %}/v2/ch/mandates, and managed individually under {% $apiBase %}/v2/ch/mandate/:id.
All endpoints accept authentication either as a user (a member of the creditor or debtor partner, or an admin in OVS mode) or as a partner (via a partner API key). Endpoints that mutate a mandate (answer, freeze, unfreeze, revoke) act on behalf of either the creditor or debtor partner, referred to below as the "acting partner".
Examples below use Qash (routing identifier QASHQAX) as the creditor, and the fictitious Example Bank (routing identifier EXAMPLX, account no. 4242426) as the debtor.
Get mandates
Retrieve a list of mandates.
Request
GET https://api.staging.qash.cloud/v2/ch/mandates
Request Query Parameters
| Parameter | Type | Description |
|---|---|---|
include | string | Comma-separated list of relation fields to include in the response |
partner | string | Comma-separated list of partner IDs to filter by (as creditor or debtor). Only applies for user authentication; ignored for partner (API key) authentication. See below for default scoping. |
account | string | Comma-separated list of account filters, in the form accountNo or accountNo:mode, where accountNo is a 14-character account routing number and mode is one of creditor, debtor, or both (default both) |
currency | string | Comma-separated list of currency IDs to filter by |
status | string | Comma-separated list of mandate statuses to filter by (see Response fields) |
Default partner scoping
- If authenticated as an admin user in OVS mode, and no
partnerfilter is provided, mandates are not scoped by partner (all mandates are visible, subject to other filters). - If authenticated as a non-admin (or non-OVS) user, and no valid
partnerfilter is provided, results are automatically scoped to the partners the user is a member of. - If authenticated as a partner (API key), and no valid
partnerfilter is provided (it is always ignored), results are scoped to that partner only. - If a
partnerfilter is provided by a non-OVS user, it is intersected with the partners the user is a member of.
Available inclusions
| Field | Description |
|---|---|
creditorPartner | The creditor partner |
debtorPartner | The debtor partner |
partners | Shorthand for including both creditorPartner and debtorPartner |
currency | The mandate's currency |
Authorization
This endpoint requires an authenticated user or partner.
Authorization: Bearer <your_api_token>
Response
Returns an array of mandates.
[
{
"id": "mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk",
"currencyId": "cur_30c5YSuuE30lziMuCnr1edmcBtA",
"remarks": null,
"debtorDeclaredName": "Jane Doe",
"debtorAccountNo": "EXAMPLX4242426",
"debtorPartnerId": "par_34sUzeg99uFiMRpQFoQN0ncZubp",
"creditorDisplayName": "Qash",
"creditorAccountNo": "QASHQAX4242426",
"creditorPartnerId": "par_30cDoRAkxP6gnaVBicqU7kfSFU1",
"status": "REQUESTED",
"frozenReason": null,
"freezingPartner": null,
"rejectionReason": null,
"revocationReason": null,
"revokingPartner": null,
"createdAt": "2025-08-01T12:00:00.000Z",
"updatedAt": "2025-08-01T12:00:00.000Z",
"startingAt": "2025-08-01T12:00:05.000Z",
"endingAt": null
}
]Response fields
| Field | Type | Description |
|---|---|---|
id | string | The unique identifier for the mandate. |
currencyId | string | The ID of the mandate's currency. |
remarks | string | null | Free-form remarks provided when requesting the mandate. |
debtorDeclaredName | string | null | The name of the debtor customer, as declared by the creditor when requesting the mandate. |
debtorAccountNo | string | The debtor's 14-character account routing number. |
debtorPartnerId | string | The ID of the debtor partner, resolved from debtorAccountNo's routing identifier. |
creditorDisplayName | string | null | The display name of the creditor, as declared when requesting the mandate. |
creditorAccountNo | string | The creditor's 14-character account routing number. |
creditorPartnerId | string | The ID of the creditor partner (the partner who requested the mandate). |
status | string | One of REQUESTED, PENDING_CUSTOMER, ACTIVE, REJECTED, REVOKED, FROZEN, EXPIRED. |
frozenReason | string | null | CUSTOMER_FROZE, if the mandate is currently frozen. |
freezingPartner | string | null | CREDITOR or DEBTOR; which party froze the mandate, if frozen. |
rejectionReason | string | null | One of ACCOUNT_NOT_FOUND, INTERNAL_BANK_POLICY_REJECTION, CUSTOMER_REJECTION, if the mandate was rejected. |
revocationReason | string | null | CUSTOMER_REVOKED, if the mandate was revoked. |
revokingPartner | string | null | CREDITOR or DEBTOR; which party revoked the mandate, if revoked. |
createdAt | string | The timestamp when the mandate was created. |
updatedAt | string | The timestamp when the mandate was last updated. |
startingAt | string | The timestamp from which the mandate becomes usable. |
endingAt | string | null | The timestamp at which the mandate ends or ended, if applicable. |
creditorPartner | object | The creditor partner, when include contains creditorPartner or partners. |
debtorPartner | object | The debtor partner, when include contains debtorPartner or partners. |
currency | object | The currency, when include=currency. |
Errors
| Status | Error Code | Description |
|---|---|---|
401 | unauthorized | The request was not authenticated. |
Example
curl https://api.staging.qash.cloud/v2/ch/mandates \
-H "Authorization: Bearer <your_api_token>"
Request mandate
Requests a new mandate. The authenticated partner (or the partner specified in the body, for user authentication) always acts as the creditor; the debtor partner is resolved automatically from the routing identifier embedded in debtorAccountNo.
Request
POST https://api.staging.qash.cloud/v2/ch/mandates
Request Body
| Field | Type | Description |
|---|---|---|
currency | string | The currency's ID or code |
creditorDisplayName | string | The display name of the creditor |
creditorAccountNo | string | The creditor's 14-character account routing number. The first 7 characters must match the creditor partner's own routingIdentifier. |
debtorDeclaredName | string | The declared name of the debtor customer |
debtorAccountNo | string | The debtor's 14-character account routing number. The first 7 characters must resolve to an existing, routable, clearing-house partner. |
startingAt | string | number? | ISO date string, or unix timestamp (seconds or milliseconds). Defaults to 5 seconds from now. Must not be in the past. |
endingAt | string | number? | ISO date string, or unix timestamp (seconds or milliseconds). If provided, must be after startingAt and in the future. |
partner | string? | The ID of the creditor partner. Required when authenticating as a user; ignored when authenticating as a partner (the authenticated partner is always used). |
remarks | string? | Free-form remarks |
Authorization
This endpoint requires an authenticated user or partner. If authenticated as a user, the user must be a member of the partner specified in the body.
Authorization: Bearer <your_api_token>
Response
Returns the newly created mandate, with status set to REQUESTED.
{
"id": "mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk",
"currencyId": "cur_30c5YSuuE30lziMuCnr1edmcBtA",
"remarks": null,
"debtorDeclaredName": "Jane Doe",
"debtorAccountNo": "EXAMPLX4242426",
"debtorPartnerId": "par_34sUzeg99uFiMRpQFoQN0ncZubp",
"creditorDisplayName": "Qash",
"creditorAccountNo": "QASHQAX4242426",
"creditorPartnerId": "par_30cDoRAkxP6gnaVBicqU7kfSFU1",
"status": "REQUESTED",
"frozenReason": null,
"freezingPartner": null,
"rejectionReason": null,
"revocationReason": null,
"revokingPartner": null,
"createdAt": "2025-08-01T12:00:00.000Z",
"updatedAt": "2025-08-01T12:00:00.000Z",
"startingAt": "2025-08-01T12:00:05.000Z",
"endingAt": null
}Response fields
Same fields as Get mandates.
Errors
| Status | Error Code | Description |
|---|---|---|
400 | missing_or_invalid_currency | currency is missing or not a string. |
400 | missing_or_invalid_creditor_display_name | creditorDisplayName is missing or not a string. |
400 | missing_or_invalid_creditor_account_no | creditorAccountNo is missing, not a string, or not exactly 14 characters. |
400 | missing_or_invalid_debtor_declared_name | debtorDeclaredName is missing or not a string. |
400 | missing_or_invalid_debtor_account_no | debtorAccountNo is missing, not a string, or not exactly 14 characters. |
400 | invalid_starting_at | startingAt could not be parsed as a valid date. |
400 | invalid_ending_at | endingAt could not be parsed as a valid date. |
400 | invalid_partner | partner is not a string. |
400 | invalid_remarks | remarks is not a string. |
400 | missing_partner | partner was not provided (or is not a string), while authenticated as a user. |
400 | credit_account_routing_no_luhn_failed | The 7-character account portion of creditorAccountNo failed the Luhn check. |
400 | credit_account_out_of_partner_routing | The routing portion of creditorAccountNo does not match the creditor partner's own routingIdentifier. |
400 | debtor_account_routing_no_luhn_failed | The 7-character account portion of debtorAccountNo failed the Luhn check. |
400 | debtor_account_partner_not_found | No partner is registered with the routing identifier embedded in debtorAccountNo. |
400 | debtor_account_partner_unroutable | The debtor partner resolved from debtorAccountNo is not routable. |
400 | debtor_account_partner_not_clearing_house_partnered | The debtor partner resolved from debtorAccountNo is not a clearing house partner. |
400 | mandate_cant_start_in_the_past | The resolved startingAt is in the past. |
400 | mandate_ends_before_starting | endingAt is before startingAt. |
400 | mandate_ends_too_soon | endingAt is in the past. |
401 | unauthorized | The request was not authenticated. |
403 | unpermitted | The authenticated user is not a member of the specified partner. |
404 | partner_not_found | The specified partner was not found. |
404 | currency_not_found | The currency was not found. |
409 | unroutable_partner | The creditor partner is not routable, or has no routingIdentifier configured. |
409 | no_partner_clearing_house_partnership | The creditor partner is not a clearing house partner. |
409 | no_platform_account_holder | The creditor partner has no platform account holder configured. |
409 | no_platform_account_available | The creditor partner has no platform account for the specified currency. |
Example
curl -X POST https://api.staging.qash.cloud/v2/ch/mandates \
-H "Authorization: Bearer <your_api_token>" \
-H "Content-Type: application/json" \
-d '{"currency": "USD", "creditorDisplayName": "Qash", "creditorAccountNo": "QASHQAX4242426", "debtorDeclaredName": "Jane Doe", "debtorAccountNo": "EXAMPLX4242426"}'
Get mandate
Retrieve a single mandate by its ID.
Request
GET https://api.staging.qash.cloud/v2/ch/mandate/:id
Request Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The ID of the mandate |
Request Query Parameters
| Parameter | Type | Description |
|---|---|---|
include | string | Comma-separated list of relation fields to include in the response |
Available inclusions
| Field | Description |
|---|---|
creditorPartner | The creditor partner |
debtorPartner | The debtor partner |
partners | Shorthand for including both creditorPartner and debtorPartner |
currency | The mandate's currency |
relatedNetworkTransactions | The network transactions related to this mandate |
operateAs | Adds an operateAs object to the response, reflecting which party (creditor and/or debtor) the requester can act as |
Authorization
This endpoint requires an authenticated user or partner:
- If authenticated as a partner, the partner must be the mandate's creditor or debtor.
- If authenticated as a non-OVS user, the user must be a member of the mandate's creditor or debtor partner.
- Admin users in OVS mode can access any mandate.
Authorization: Bearer <your_api_token>
Response
Returns the mandate.
{
"id": "mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk",
"currencyId": "cur_30c5YSuuE30lziMuCnr1edmcBtA",
"remarks": null,
"debtorDeclaredName": "Jane Doe",
"debtorAccountNo": "EXAMPLX4242426",
"debtorPartnerId": "par_34sUzeg99uFiMRpQFoQN0ncZubp",
"creditorDisplayName": "Qash",
"creditorAccountNo": "QASHQAX4242426",
"creditorPartnerId": "par_30cDoRAkxP6gnaVBicqU7kfSFU1",
"status": "REQUESTED",
"frozenReason": null,
"freezingPartner": null,
"rejectionReason": null,
"revocationReason": null,
"revokingPartner": null,
"createdAt": "2025-08-01T12:00:00.000Z",
"updatedAt": "2025-08-01T12:00:00.000Z",
"startingAt": "2025-08-01T12:00:05.000Z",
"endingAt": null
}Response fields
Same fields as Get mandates, plus:
| Field | Type | Description |
|---|---|---|
relatedNetworkTransactions | array | The related network transactions, when include=relatedNetworkTransactions. |
operateAs | object | { "creditor": boolean, "debtor": boolean }, when include=operateAs. |
Errors
| Status | Error Code | Description |
|---|---|---|
401 | unauthorized | The request was not authenticated. |
403 | not_a_partner_member | The authenticated user is not a member of the mandate's creditor or debtor partner. |
404 | mandate_not_found | The mandate was not found. |
404 | partner_mismatch | The authenticated partner is neither the creditor nor the debtor of the mandate. |
Example
curl https://api.staging.qash.cloud/v2/ch/mandate/mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk \
-H "Authorization: Bearer <your_api_token>"
Answer mandate request
Answers a pending mandate request, as the debtor. Used to move a mandate from REQUESTED (or PENDING_CUSTOMER) to PENDING_CUSTOMER, ACTIVE, or REJECTED.
Request
POST https://api.staging.qash.cloud/v2/ch/mandate/:id/answer
Request Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The ID of the mandate |
Request Body
| Field | Type | Description |
|---|---|---|
status | "PENDING_CUSTOMER" | "ACTIVE" | "REJECTED" | The new status to set |
rejectionReason | "ACCOUNT_NOT_FOUND" | "INTERNAL_BANK_POLICY_REJECTION" | "CUSTOMER_REJECTION" | Required when status is "REJECTED" |
Authorization
This endpoint requires the requester to be able to act as the mandate's debtor (see Get mandate authorization rules).
Authorization: Bearer <your_api_token>
Response
Returns the updated mandate.
{
"id": "mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk",
"currencyId": "cur_30c5YSuuE30lziMuCnr1edmcBtA",
"remarks": null,
"debtorDeclaredName": "Jane Doe",
"debtorAccountNo": "EXAMPLX4242426",
"debtorPartnerId": "par_34sUzeg99uFiMRpQFoQN0ncZubp",
"creditorDisplayName": "Qash",
"creditorAccountNo": "QASHQAX4242426",
"creditorPartnerId": "par_30cDoRAkxP6gnaVBicqU7kfSFU1",
"status": "ACTIVE",
"frozenReason": null,
"freezingPartner": null,
"rejectionReason": null,
"revocationReason": null,
"revokingPartner": null,
"createdAt": "2025-08-01T12:00:00.000Z",
"updatedAt": "2025-08-01T12:05:00.000Z",
"startingAt": "2025-08-01T12:00:05.000Z",
"endingAt": null
}Response fields
Same fields as Get mandates.
Errors
| Status | Error Code | Description |
|---|---|---|
400 | missing_or_invalid_status | status is missing or not one of PENDING_CUSTOMER, ACTIVE, REJECTED. |
400 | invalid_rejection_reason | rejectionReason is not one of the allowed values. |
400 | missing_rejection_reason | rejectionReason is required when status is "REJECTED". |
401 | unauthorized | The request was not authenticated. |
403 | not_a_partner_member | The authenticated user is not a member of the mandate's creditor or debtor partner. |
403 | unauthorized_operation | The requester cannot act as the mandate's debtor. |
403 | mandate_status_conflict | The mandate's current status is not REQUESTED or PENDING_CUSTOMER, or already matches the requested status. |
404 | mandate_not_found | The mandate was not found. |
404 | partner_mismatch | The authenticated partner is neither the creditor nor the debtor of the mandate. |
Example
curl -X POST https://api.staging.qash.cloud/v2/ch/mandate/mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk/answer \
-H "Authorization: Bearer <your_api_token>" \
-H "Content-Type: application/json" \
-d '{"status": "ACTIVE"}'
Freeze mandate
Freezes an active mandate, preventing further use until it is unfrozen. Can be initiated by either the creditor or the debtor.
Request
POST https://api.staging.qash.cloud/v2/ch/mandate/:id/freeze
Request Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The ID of the mandate |
Request Body
| Field | Type | Description |
|---|---|---|
frozenReason | "CUSTOMER_FROZE" | The reason for freezing the mandate |
actingPartner | string? | The ID of the partner (creditor or debtor) performing the action. Required for user authentication when the user can act as both parties; ignored for partner authentication (resolved automatically). |
Authorization
This endpoint requires the requester to be able to act as the resolved acting partner (creditor or debtor) of the mandate (see Get mandate authorization rules).
Authorization: Bearer <your_api_token>
Response
Returns the updated mandate, with status set to FROZEN.
{
"id": "mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk",
"currencyId": "cur_30c5YSuuE30lziMuCnr1edmcBtA",
"remarks": null,
"debtorDeclaredName": "Jane Doe",
"debtorAccountNo": "EXAMPLX4242426",
"debtorPartnerId": "par_34sUzeg99uFiMRpQFoQN0ncZubp",
"creditorDisplayName": "Qash",
"creditorAccountNo": "QASHQAX4242426",
"creditorPartnerId": "par_30cDoRAkxP6gnaVBicqU7kfSFU1",
"status": "FROZEN",
"frozenReason": "CUSTOMER_FROZE",
"freezingPartner": "DEBTOR",
"rejectionReason": null,
"revocationReason": null,
"revokingPartner": null,
"createdAt": "2025-08-01T12:00:00.000Z",
"updatedAt": "2025-08-01T13:00:00.000Z",
"startingAt": "2025-08-01T12:00:05.000Z",
"endingAt": null
}Response fields
Same fields as Get mandates.
Errors
| Status | Error Code | Description |
|---|---|---|
400 | missing_or_invalid_frozen_reason | frozenReason is missing or not "CUSTOMER_FROZE". |
400 | invalid_acting_partner | actingPartner is not a string, or does not match the mandate's creditor or debtor partner ID. |
400 | acting_partner_required | actingPartner is required, because the requester can act as both the creditor and the debtor (or could not be resolved for partner authentication). |
401 | unauthorized | The request was not authenticated. |
403 | not_a_partner_member | The authenticated user is not a member of the mandate's creditor or debtor partner. |
403 | unpermitted | The requester cannot act as the resolved actingPartner. |
404 | mandate_not_found | The mandate was not found. |
404 | partner_mismatch | The authenticated partner is neither the creditor nor the debtor of the mandate. |
409 | acting_partner_conflict | actingPartner matches both the creditor and the debtor. |
409 | mandate_status_conflict | The mandate's current status is not ACTIVE. |
Example
curl -X POST https://api.staging.qash.cloud/v2/ch/mandate/mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk/freeze \
-H "Authorization: Bearer <your_api_token>" \
-H "Content-Type: application/json" \
-d '{"frozenReason": "CUSTOMER_FROZE"}'
Unfreeze mandate
Unfreezes a frozen mandate, restoring it to ACTIVE. Only the party that froze the mandate can unfreeze it.
Request
DELETE https://api.staging.qash.cloud/v2/ch/mandate/:id/freeze
Request Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The ID of the mandate |
Request Body
| Field | Type | Description |
|---|---|---|
actingPartner | string? | The ID of the partner (creditor or debtor) performing the action. Required for user authentication when the user can act as both parties; ignored for partner authentication (resolved automatically). |
Authorization
This endpoint requires the requester to be able to act as the resolved acting partner (creditor or debtor) of the mandate (see Get mandate authorization rules).
Authorization: Bearer <your_api_token>
Response
Returns the updated mandate, with status set to ACTIVE.
{
"id": "mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk",
"currencyId": "cur_30c5YSuuE30lziMuCnr1edmcBtA",
"remarks": null,
"debtorDeclaredName": "Jane Doe",
"debtorAccountNo": "EXAMPLX4242426",
"debtorPartnerId": "par_34sUzeg99uFiMRpQFoQN0ncZubp",
"creditorDisplayName": "Qash",
"creditorAccountNo": "QASHQAX4242426",
"creditorPartnerId": "par_30cDoRAkxP6gnaVBicqU7kfSFU1",
"status": "ACTIVE",
"frozenReason": null,
"freezingPartner": null,
"rejectionReason": null,
"revocationReason": null,
"revokingPartner": null,
"createdAt": "2025-08-01T12:00:00.000Z",
"updatedAt": "2025-08-01T14:00:00.000Z",
"startingAt": "2025-08-01T12:00:05.000Z",
"endingAt": null
}Response fields
Same fields as Get mandates.
Errors
| Status | Error Code | Description |
|---|---|---|
400 | invalid_acting_partner | actingPartner is not a string, or does not match the mandate's creditor or debtor partner ID. |
400 | acting_partner_required | actingPartner is required, because the requester can act as both the creditor and the debtor (or could not be resolved for partner authentication). |
401 | unauthorized | The request was not authenticated. |
403 | not_a_partner_member | The authenticated user is not a member of the mandate's creditor or debtor partner. |
403 | unpermitted | The requester cannot act as the resolved actingPartner. |
404 | mandate_not_found | The mandate was not found. |
404 | partner_mismatch | The authenticated partner is neither the creditor nor the debtor of the mandate. |
409 | acting_partner_conflict | actingPartner matches both the creditor and the debtor. |
409 | mandate_status_conflict | The mandate's current status is not FROZEN. |
409 | freeze_lock_conflict | The resolved acting partner is not the party that froze the mandate. |
Example
curl -X DELETE https://api.staging.qash.cloud/v2/ch/mandate/mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk/freeze \
-H "Authorization: Bearer <your_api_token>"
Revoke mandate
Revokes a mandate, ending it permanently. Can be initiated by either the creditor or the debtor, from any status except EXPIRED, REJECTED, or REVOKED (including FROZEN).
Request
DELETE https://api.staging.qash.cloud/v2/ch/mandate/:id
Request Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The ID of the mandate |
Request Body
| Field | Type | Description |
|---|---|---|
revocationReason | "CUSTOMER_REVOKED" | The reason for revoking the mandate |
actingPartner | string? | The ID of the partner (creditor or debtor) performing the action. Required for user authentication when the user can act as both parties; ignored for partner authentication (resolved automatically). |
Authorization
This endpoint requires the requester to be able to act as the resolved acting partner (creditor or debtor) of the mandate (see Get mandate authorization rules).
Authorization: Bearer <your_api_token>
Response
Returns the updated mandate, with status set to REVOKED, endingAt set to the revocation time, and any freeze state cleared.
{
"id": "mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk",
"currencyId": "cur_30c5YSuuE30lziMuCnr1edmcBtA",
"remarks": null,
"debtorDeclaredName": "Jane Doe",
"debtorAccountNo": "EXAMPLX4242426",
"debtorPartnerId": "par_34sUzeg99uFiMRpQFoQN0ncZubp",
"creditorDisplayName": "Qash",
"creditorAccountNo": "QASHQAX4242426",
"creditorPartnerId": "par_30cDoRAkxP6gnaVBicqU7kfSFU1",
"status": "REVOKED",
"frozenReason": null,
"freezingPartner": null,
"rejectionReason": null,
"revocationReason": "CUSTOMER_REVOKED",
"revokingPartner": "DEBTOR",
"createdAt": "2025-08-01T12:00:00.000Z",
"updatedAt": "2025-08-01T15:00:00.000Z",
"startingAt": "2025-08-01T12:00:05.000Z",
"endingAt": "2025-08-01T15:00:00.000Z"
}Response fields
Same fields as Get mandates.
Errors
| Status | Error Code | Description |
|---|---|---|
400 | missing_or_invalid_revocation_reason | revocationReason is missing or not "CUSTOMER_REVOKED". |
400 | invalid_acting_partner | actingPartner is not a string, or does not match the mandate's creditor or debtor partner ID. |
400 | acting_partner_required | actingPartner is required, because the requester can act as both the creditor and the debtor (or could not be resolved for partner authentication). |
401 | unauthorized | The request was not authenticated. |
403 | not_a_partner_member | The authenticated user is not a member of the mandate's creditor or debtor partner. |
403 | unpermitted | The requester cannot act as the resolved actingPartner. |
404 | mandate_not_found | The mandate was not found. |
404 | partner_mismatch | The authenticated partner is neither the creditor nor the debtor of the mandate. |
409 | acting_partner_conflict | actingPartner matches both the creditor and the debtor. |
409 | mandate_status_conflict | The mandate's current status is EXPIRED, REJECTED, or REVOKED. |
Example
curl -X DELETE https://api.staging.qash.cloud/v2/ch/mandate/mdt_31oS0xFYz6vIi7djb1G4qsOt9Zk \
-H "Authorization: Bearer <your_api_token>" \
-H "Content-Type: application/json" \
-d '{"revocationReason": "CUSTOMER_REVOKED"}'