Update order payment
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"messageId": "<string>",
"referenceId": "<string>",
"orderRequestId": "<string>",
"orderStatus": "<string>",
"paymentStatus": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>",
"isCustomItem": true
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update"
payload = {
"phone": "<string>",
"messageId": "<string>",
"referenceId": "<string>",
"orderRequestId": "<string>",
"orderStatus": "<string>",
"paymentStatus": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>",
"isCustomItem": True
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
messageId: '<string>',
referenceId: '<string>',
orderRequestId: '<string>',
orderStatus: '<string>',
paymentStatus: '<string>',
order: {
currency: '<string>',
products: [
{
name: '<string>',
value: 123,
quantity: 123,
productId: '<string>',
isCustomItem: true
}
],
discount: 123,
tax: 123,
shipping: 123
}
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone' => '<string>',
'messageId' => '<string>',
'referenceId' => '<string>',
'orderRequestId' => '<string>',
'orderStatus' => '<string>',
'paymentStatus' => '<string>',
'order' => [
'currency' => '<string>',
'products' => [
[
'name' => '<string>',
'value' => 123,
'quantity' => 123,
'productId' => '<string>',
'isCustomItem' => true
]
],
'discount' => 123,
'tax' => 123,
'shipping' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"messageId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"orderRequestId\": \"<string>\",\n \"orderStatus\": \"<string>\",\n \"paymentStatus\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\",\n \"isCustomItem\": true\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"messageId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"orderRequestId\": \"<string>\",\n \"orderStatus\": \"<string>\",\n \"paymentStatus\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\",\n \"isCustomItem\": true\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"messageId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"orderRequestId\": \"<string>\",\n \"orderStatus\": \"<string>\",\n \"paymentStatus\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\",\n \"isCustomItem\": true\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}"
response = http.request(request)
puts response.read_bodyMessages
Update order payment
Send an order payment update
POST
/
instances
/
{instanceId}
/
token
/
{token}
/
order-payment-update
Update order payment
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"messageId": "<string>",
"referenceId": "<string>",
"orderRequestId": "<string>",
"orderStatus": "<string>",
"paymentStatus": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>",
"isCustomItem": true
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update"
payload = {
"phone": "<string>",
"messageId": "<string>",
"referenceId": "<string>",
"orderRequestId": "<string>",
"orderStatus": "<string>",
"paymentStatus": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>",
"isCustomItem": True
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
messageId: '<string>',
referenceId: '<string>',
orderRequestId: '<string>',
orderStatus: '<string>',
paymentStatus: '<string>',
order: {
currency: '<string>',
products: [
{
name: '<string>',
value: 123,
quantity: 123,
productId: '<string>',
isCustomItem: true
}
],
discount: 123,
tax: 123,
shipping: 123
}
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phone' => '<string>',
'messageId' => '<string>',
'referenceId' => '<string>',
'orderRequestId' => '<string>',
'orderStatus' => '<string>',
'paymentStatus' => '<string>',
'order' => [
'currency' => '<string>',
'products' => [
[
'name' => '<string>',
'value' => 123,
'quantity' => 123,
'productId' => '<string>',
'isCustomItem' => true
]
],
'discount' => 123,
'tax' => 123,
'shipping' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"messageId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"orderRequestId\": \"<string>\",\n \"orderStatus\": \"<string>\",\n \"paymentStatus\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\",\n \"isCustomItem\": true\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"messageId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"orderRequestId\": \"<string>\",\n \"orderStatus\": \"<string>\",\n \"paymentStatus\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\",\n \"isCustomItem\": true\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/order-payment-update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"messageId\": \"<string>\",\n \"referenceId\": \"<string>\",\n \"orderRequestId\": \"<string>\",\n \"orderStatus\": \"<string>\",\n \"paymentStatus\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\",\n \"isCustomItem\": true\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}"
response = http.request(request)
puts response.read_bodyOverview
With this method you can send order payment update messages.This method is only available for WhatsApp Business accounts.
Example on WhatsApp

Attributes
Header
Your instance ID. Available in the Z-API panel under Instances.
Your Z-API instance token.
Required
Recipient’s phone number in DDI DDD NUMBER format. E.g.: 551199999999
Original order message ID from WhatsApp
Order reference ID (obtained via webhook)
Order request reference ID (obtained via webhook)
Order status:
pending, processing, shipped, completed or canceledPayment status:
pending or paidOrder data
Show Properties
Show Properties
Currency code (e.g.: BRL)
Discount amount
Tax amount
Shipping amount
Optional
Order update text message
Request Body
{
"phone": "554499999999",
"messageId": "3EB0F91BBA791BB0A787FC",
"message": "Order update text message",
"referenceId": "4N8FCTW1WM6",
"orderRequestId": "4N8FCTW22W4",
"orderStatus": "processing",
"paymentStatus": "paid",
"order": {
"currency": "BRL",
"discount": 10,
"tax": 10,
"shipping": 5,
"products": [
{
"value": 150,
"quantity": 2,
"name": "order 1",
"isCustomItem": true,
"productId": "custom-item-4N8FCTW23N7"
},
{
"productId": "23940797548900636",
"value": 150,
"quantity": 2,
"name": "order 2",
"isCustomItem": false
}
]
}
}
Response
200
{
"zaapId": "3999984263738042930CD6ECDE9VDWSA",
"messageId": "D241XXXX732339502B68",
"id": "D241XXXX732339502B68"
}
405
Make sure you are correctly sending the method specification, that is, verify that you sent POST or GET as specified at the beginning of this topic.415
If you receive a 415 error, make sure to add the “Content-Type” header to your request, which in most cases is “application/json”.⌘I