curl --request PATCH \
--url https://api.tassyir.io/apps/2026-10/orders/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"buyer": {
"name": "<string>",
"phone": "<string>",
"phone2": "<string>",
"email": "[email protected]",
"provinceCode": 29,
"townOns": 2,
"address": "<string>",
"address2": "<string>"
},
"delivery": {},
"note": "<string>",
"deliveryNote": "<string>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
buyer: {
name: '<string>',
phone: '<string>',
phone2: '<string>',
email: '[email protected]',
provinceCode: 29,
townOns: 2,
address: '<string>',
address2: '<string>'
},
delivery: {},
note: '<string>',
deliveryNote: '<string>'
})
};
fetch('https://api.tassyir.io/apps/2026-10/orders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": "<string>",
"orderNumber": "<string>",
"storeId": "<string>",
"status": "<string>",
"waiting": true,
"archived": true,
"dispatched": true,
"delivered": true,
"returned": true,
"currency": "<string>",
"total": "<string>",
"shippingPrice": "<string>",
"buyer": {
"provinceCode": 0,
"townOns": 0,
"name": "<string>",
"phone": "<string>",
"phone2": "<string>",
"email": "<string>",
"address": "<string>",
"address2": "<string>"
},
"delivery": {
"method": "home",
"speed": "<string>",
"deliveryAgentId": "<string>",
"trackingNumber": "<string>",
"carrierStatus": "<string>"
},
"items": [
{
"id": "<string>",
"productId": "<string>",
"variantId": "<string>",
"packParentItemId": "<string>",
"name": "<string>",
"variantName": "<string>",
"sku": "<string>",
"quantity": 0,
"unitPrice": "<string>",
"totalPrice": "<string>"
}
],
"source": "<string>",
"landingPageId": "<string>",
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"content": "<string>"
},
"exchangeOfOrderId": "<string>",
"cancellation": {
"reasonId": "<string>",
"reasonLabel": "<string>",
"source": "<string>"
},
"scheduledFor": "2023-11-07T05:31:56Z",
"confirmedAt": "2023-11-07T05:31:56Z",
"dispatchedAt": "2023-11-07T05:31:56Z",
"deliveredAt": "2023-11-07T05:31:56Z",
"returnedAt": "2023-11-07T05:31:56Z",
"canceledAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"note": "<string>",
"deliveryNote": "<string>"
}
}{
"type": "<string>",
"title": "<string>",
"status": 400,
"detail": "<string>",
"code": "BAD_REQUEST",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 401,
"detail": "<string>",
"code": "APP_TOKEN_INVALID",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 403,
"detail": "<string>",
"code": "PERMISSION_DENIED",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 404,
"detail": "<string>",
"code": "NOT_FOUND",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 409,
"detail": "<string>",
"code": "IDEMPOTENCY_KEY_IN_USE",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 413,
"detail": "<string>",
"code": "PAYLOAD_TOO_LARGE",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 415,
"detail": "<string>",
"code": "UNSUPPORTED_MEDIA_TYPE",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 422,
"detail": "<string>",
"code": "IDEMPOTENCY_KEY_REUSED",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 429,
"detail": "<string>",
"code": "BUSINESS_RATE_LIMITED",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 500,
"detail": "<string>",
"code": "INTERNAL_ERROR",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 503,
"detail": "<string>",
"code": "API_BUSY",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}Update an order
The buyer, the delivery choice and the notes. Not the status (confirm, cancel and schedule have their own routes), not the items, prices, carrier or store.
Needs the write_orders scope (permission orders:update).
curl --request PATCH \
--url https://api.tassyir.io/apps/2026-10/orders/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"buyer": {
"name": "<string>",
"phone": "<string>",
"phone2": "<string>",
"email": "[email protected]",
"provinceCode": 29,
"townOns": 2,
"address": "<string>",
"address2": "<string>"
},
"delivery": {},
"note": "<string>",
"deliveryNote": "<string>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
buyer: {
name: '<string>',
phone: '<string>',
phone2: '<string>',
email: '[email protected]',
provinceCode: 29,
townOns: 2,
address: '<string>',
address2: '<string>'
},
delivery: {},
note: '<string>',
deliveryNote: '<string>'
})
};
fetch('https://api.tassyir.io/apps/2026-10/orders/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"id": "<string>",
"orderNumber": "<string>",
"storeId": "<string>",
"status": "<string>",
"waiting": true,
"archived": true,
"dispatched": true,
"delivered": true,
"returned": true,
"currency": "<string>",
"total": "<string>",
"shippingPrice": "<string>",
"buyer": {
"provinceCode": 0,
"townOns": 0,
"name": "<string>",
"phone": "<string>",
"phone2": "<string>",
"email": "<string>",
"address": "<string>",
"address2": "<string>"
},
"delivery": {
"method": "home",
"speed": "<string>",
"deliveryAgentId": "<string>",
"trackingNumber": "<string>",
"carrierStatus": "<string>"
},
"items": [
{
"id": "<string>",
"productId": "<string>",
"variantId": "<string>",
"packParentItemId": "<string>",
"name": "<string>",
"variantName": "<string>",
"sku": "<string>",
"quantity": 0,
"unitPrice": "<string>",
"totalPrice": "<string>"
}
],
"source": "<string>",
"landingPageId": "<string>",
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"content": "<string>"
},
"exchangeOfOrderId": "<string>",
"cancellation": {
"reasonId": "<string>",
"reasonLabel": "<string>",
"source": "<string>"
},
"scheduledFor": "2023-11-07T05:31:56Z",
"confirmedAt": "2023-11-07T05:31:56Z",
"dispatchedAt": "2023-11-07T05:31:56Z",
"deliveredAt": "2023-11-07T05:31:56Z",
"returnedAt": "2023-11-07T05:31:56Z",
"canceledAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"note": "<string>",
"deliveryNote": "<string>"
}
}{
"type": "<string>",
"title": "<string>",
"status": 400,
"detail": "<string>",
"code": "BAD_REQUEST",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 401,
"detail": "<string>",
"code": "APP_TOKEN_INVALID",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 403,
"detail": "<string>",
"code": "PERMISSION_DENIED",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 404,
"detail": "<string>",
"code": "NOT_FOUND",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 409,
"detail": "<string>",
"code": "IDEMPOTENCY_KEY_IN_USE",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 413,
"detail": "<string>",
"code": "PAYLOAD_TOO_LARGE",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 415,
"detail": "<string>",
"code": "UNSUPPORTED_MEDIA_TYPE",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 422,
"detail": "<string>",
"code": "IDEMPOTENCY_KEY_REUSED",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 429,
"detail": "<string>",
"code": "BUSINESS_RATE_LIMITED",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 500,
"detail": "<string>",
"code": "INTERNAL_ERROR",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}{
"type": "<string>",
"title": "<string>",
"status": 503,
"detail": "<string>",
"code": "API_BUSY",
"docs": "<string>",
"fix": "<string>",
"requestId": "<string>",
"errors": [
"<string>"
]
}Authorizations
An app access token from POST /apps/oauth/token, valid 1 hour. An offline token acts as the app; an online token acts as the app on behalf of one dashboard user (the intersection of both permission sets).
Headers
Makes a write safe to retry: the same key with the same method, path, query and body within 24 hours answers the stored result (Idempotent-Replayed: true) without running the write again. Only a successful answer is stored, so a retry after a failure runs. A key reused for a different request is 422 IDEMPOTENCY_KEY_REUSED; one whose first request still runs is 409 IDEMPOTENCY_KEY_IN_USE.
1 - 255^[\x21-\x7E]+$Path Parameters
A resource id. One this installation cannot read, or a malformed one, is 404 NOT_FOUND.
1Query Parameters
Return only these top-level fields, separated by commas; the id is always kept. The response schema describes the whole resource. An unknown name is 400 INVALID_FIELDS. Fields: id, orderNumber, storeId, status, waiting, archived, dispatched, delivered, returned, currency, total, shippingPrice, buyer, delivery, items, note, deliveryNote, source, landingPageId, utm, exchangeOfOrderId, cancellation, scheduledFor, confirmedAt, dispatchedAt, deliveredAt, returnedAt, canceledAt, createdAt, updatedAt.
1000Body
Response
The order as it is now.
An order (API 2026-10).
Show child attributes
Show child attributes