Reauthorize order
Order items that not yet been captured can be changed with the reauthorize endpoint. Already captured items won't be affected by the reauthorize call.
Only credit options and orders with status NotActivated
or PartActivated
allow for an increase in the total order amount. Currently, prepaid options do not support an increase in the order amount after the original purchase.
Reauthorize order with itemsβ
- Request
- Response
POST /manage/orders/{{orderId}}/reauthorize HTTP/1.1
Host: api.uat.walleydev.com // (Please note! Different hostname in production)
Authorization: Bearer bXlVc2VybmFtZTpmN2E1ODA4MGQzZTk0M2VmNWYyMTZlMDE...
{
"amount": 285.0,
"actionReference": "test-captureref-123",
"items": [
{
"id": "10001",
"description": "Shoes",
"unitPrice": 95,
"quantity": 1,
"vat": 25
},
{
"id": "10002",
"description": "T-Shirt",
"unitPrice": 95,
"quantity": 2,
"vat": 25
}
]
}
Status: 202 Accepted
/* Headers */
Location: /manage/orders/1b1f5ef6-92n1-4b46-b1dc-ae2e00c4c315
/* No body */
Reauthorize order with amountβ
- Request
- Response
POST /manage/orders/{{orderId}}/reauthorize HTTP/1.1
Host: api.uat.walleydev.com // (Please note! Different hostname in production)
Authorization: Bearer bXlVc2VybmFtZTpmN2E1ODA4MGQzZTk0M2VmNWYyMTZlMDE...
{
"amount": 280.0,
"actionReference": "test-captureref-123"
}
Status: 202 Accepted
/* Headers */
Location: /manage/orders/1b1f5ef6-92n1-4b46-b1dc-ae2e00c4c315
/* No body */
Reauthorize order with increased amountβ
Orders in the state NotActivated
can be increased using the reauthorize endpoint.
When an order is reauthorized with an increased amount, an additional credit check is required.
The endpoint will return a 201 status code with a location header to check the status of the reauthorize call. This process may potentially involve authorization from the customer.
- Request
- Response
POST /manage/orders/{{orderId}}/reauthorize HTTP/1.1
Host: api.uat.walleydev.com // (Please note! Different hostname in production)
Authorization: Bearer bXlVc2VybmFtZTpmN2E1ODA4MGQzZTk0M2VmNWYyMTZlMDE...
{
"amount": 380.0,
"actionReference": "test-captureref-123",
"items": [
{
"id": "10001",
"description": "Shoes",
"unitPrice": 95,
"quantity": 2,
"vat": 25
},
{
"id": "10002",
"description": "T-Shirt",
"unitPrice": 95,
"quantity": 2,
"vat": 25
}
]
}
Status: 202 Accepted
/* Headers */
Location: /manage/orders/1b1f5ef6-92n1-4b46-b1dc-ae2e00c4c315
/* No body */
Status: 201 Created
/* Headers */
Location: /manage/orders/b6be7ec0-311b-490d-8856-af8d00c783b5/reauthorize/1b1f5ef6-92n1-4b46-b1dc-ae2e00c4c315
/* No body */
These https status codes are valid for the POST reauthorize
request.
Http status code | Description |
---|---|
201 | Order reauthorization initialized. Requires additional status call to URL of location header. Get reauthorized status |
202 | Order reauthorized successfully |
401 | Unauthorized, token verification needed. See: Authentication for more information |
403 | Permissions needed e.g. trying to handle content for a store you don't have permission to |
404 | Order not found |
422 | See error codes |
Get reauthorized statusβ
Use this endpoint to poll for the status of a reauthorized call that responded with a 201 status code.
Retrieve reauthorizeId
from the location header in the 201 response.
- Request
- Response
GET /manage/orders/{{orderId}}/reauthorize/{{reauthorizeId}} HTTP/1.1
Status: 200 OK
{
"data": {
"id": "ca81364e-895f-4250-bdb2-a9dafa13c4bc",
"orderId": "b2be7nc0-351b-890d-8856-af8d00a783b5",
"status": "Completed",
"createdAt": "2023-01-17T12:09:27.029057+00:00"
},
"links": {},
"metaData": {}
}
Http status code | Description |
---|---|
200 | Reauthorize found |
404 | Order or reauthorize not found |
Data Modelβ
Requestβ
Request headersβ
Header | Required | Explanation |
---|---|---|
Authorization | Yes | Instructions on how to generate the Bearer token value can be found here |
Request bodyβ
Property | Required | Explanation | Type | Notes |
---|---|---|---|---|
amount | Yes | The new amount to authorize. Must match provided total summary of order items, if order items are provided. | number | Maximum 2 decimals |
description | No | A description for the reuthorization. This will be used as description if no order items is provided. | string | Visible on invoices if applicable. Maximum 50 characters |
actionReference | No | A reference to this specific reauthroize. | string | This will appear as a data property on the settlement report |
items | No | The article items and quantity to authorize. | array | Reauthorize Item |
If you are doing a reauthorize with items, you will have to provide items in the request.
Responseβ
202 Accepted
indicates a successful reauthorization when the amount is the same or lower than the original order.
201 Created
indicates that an additional status check is needed when the reauthorization amount is higher than the original order.
Due to the asynchronous nature of the 202 Accepted status answer, it can take a few seconds before the update can be shown in various systems and responses to API requests. You should design your system to accomodate this.
Response bodyβ
Property | Explanation | Type |
---|---|---|
id | The id of the reauthorization | string |
orderId | The orderId affected by the reauthorization | string |
status | Completed for a successfully completed reauthorize. Failed for example when a credit check was denied or additional household income data was needed. | string |
createdAt | The timestamp of the reauthorization | date |
Error codesβ
Change orderβ
Code | Message |
---|---|
REAUTHORIZE_ORDER_ALREADY_CAPTURED | You cannot reauthorize an already fully captured order |
REAUTHORIZE_MATCHING_ARTICLES_WITH_DIFFERENT_VAT | Request inclueds identical articles with mismatched VAT |
REAUTHORIZE_ARTICLE_EXISTS_BUT_OTHER_INFORMATION | Request inclueds identical articles with mismatched unit price |
REAUTHORIZE_ORDER_INCREASE_ABOVE_CURRENT_TOTAL_AMOUNT_IS_NOT_ALLOWED | Total amount must be less than or equal to original amount |
REAUTHORIZE_AMOUNT_MUST_BE_GREATER_THAN_ZERO | Total amount must be positive |
REAUTHORIZE_AMOUNT_MUST_MATCH_SUM_OF_ARTICLES | Total amount must match article amount |
REAUTHORIZE_AMOUNT_HAS_TOO_MANY_DECIMALS | Total amount have too many decimals |
REAUTHORIZE_DESCRIPTION_TOO_LONG | Description have a max limit of 50 characters |
REAUTHORIZE_ID_TOO_LONG | Item Id have a max limit of 50 characters |
REAUTHORIZE_UNIT_PRICE_HAS_TOO_MANY_DECIMALS | Item Unit Price has too many decimals |
REAUTHORIZE_QUANTITY_MUST_BE_GREATER_THAN_ZERO | Item Quantity must be greater than zero |
REAUTHORIZE_VAT_MUST_BE_GREATER_THAN_ZERO | Item Vat must be greater than zero |
REAUTHORIZE_INVALID_INVOICE_STATUS | You cannot reauthorize an order in state closed or expired |
REAUTHORIZE_INCREASED_AMOUNT_NOT_AVAILABLE_FOR_PREPAID_PAYMENT_METHOD | It is not possible to increase order amount on prepaid orders |
To prevent multiple requests by mistake, the idempotency header can be used to single out requests. The API supports idempotency for safely retrying requests that only should be performed once. This could be useful if responses are not received due to network connectivity problems. For example, if a response for a request to add an invoice is not received, you can retry the request with the same idempotency key again and be guaranteed that no more than one invoice is added.
You will need to generate a guid/uuid v4 and send it in with the header x-idempotency for every unique operation:
X-Idempotency: 03304b06-cb33-4f78-bcea-86cb4b202ba0