Updates
Keeping your order information up to date is essential to ensure smooth transactions and an optimal customer experience. Ecart Pay provides the flexibility to modify specific details of an order using its API capabilities.
When to Make Updates?
The Update Order endpoint is primarily used to make changes to the shipping address of an order. This feature is particularly useful in scenarios such as:
- You initially created an order without a shipping address and need to add the customer’s address later.
- The customer has provided a different address after placing the order.
- There is an error in the shipping information that requires correction before the order is processed.
By updating the shipping address, you ensure that the order reaches the correct destination without delays or additional costs.
Updating an Order
To update the shipping address of an order, send a request to the following:
Endpoint
PUT {{baseURL}}/api/orders/{{order_id}}
Headers
Authorization: {token}
Request Payload
Request Body Example
The request body should include the new shipping address details:
{
"shipping_address": {
"first_name": "Stefany",
"last_name": "Garcia",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}
Example Request
curl --location --request PUT 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ' \
--header 'Content-Type: application/json' \
--header 'Cookie: lang=en' \
--data '{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}'
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902"
method := "PUT"
payload := strings.NewReader(`{`+"
"+`
"shipping_address": {`+"
"+`
"first_name": "Stefany",`+"
"+`
"address1": "Belisario Dominguez",`+"
"+`
"address2": "Semillero",`+"
"+`
"country": {`+"
"+`
"code": "MX",`+"
"+`
"name": "Mexico"`+"
"+`
},`+"
"+`
"state": {`+"
"+`
"code": "TB"`+"
"+`
},`+"
"+`
"city": "Monterrey",`+"
"+`
"postal_code": "64000",`+"
"+`
"reference": "reference",`+"
"+`
"phone": "123456789"`+"
"+`
}`+"
"+`
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Cookie", "lang=en")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
PUT /api/orders/60a43fe9ffd1ec212bab3902 HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ
Content-Type: application/json
Cookie: lang=en
Content-Length: 431
{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}
// OkHttp
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n \"shipping_address\": {\r\n \"first_name\": \"Stefany\",\r\n \"address1\": \"Belisario Dominguez\",\r\n \"address2\": \"Semillero\",\r\n \"country\": {\r\n \"code\": \"MX\",\r\n \"name\": \"Mexico\"\r\n },\r\n \"state\": {\r\n \"code\": \"TB\"\r\n },\r\n \"city\": \"Monterrey\",\r\n \"postal_code\": \"64000\",\r\n \"reference\": \"reference\",\r\n \"phone\": \"123456789\"\r\n }\r\n}");
Request request = new Request.Builder()
.url("https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902")
.method("PUT", body)
.addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ")
.addHeader("Content-Type", "application/json")
.addHeader("Cookie", "lang=en")
.build();
Response response = client.newCall(request).execute();
// -------------------------------------------------------------
// Unirest
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.put("https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902")
.header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ")
.header("Content-Type", "application/json")
.header("Cookie", "lang=en")
.body("{\r\n \"shipping_address\": {\r\n \"first_name\": \"Stefany\",\r\n \"address1\": \"Belisario Dominguez\",\r\n \"address2\": \"Semillero\",\r\n \"country\": {\r\n \"code\": \"MX\",\r\n \"name\": \"Mexico\"\r\n },\r\n \"state\": {\r\n \"code\": \"TB\"\r\n },\r\n \"city\": \"Monterrey\",\r\n \"postal_code\": \"64000\",\r\n \"reference\": \"reference\",\r\n \"phone\": \"123456789\"\r\n }\r\n}")
.asString();
// Fetch
const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "lang=en");
const raw = JSON.stringify({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
});
const requestOptions = {
method: "PUT",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
// -------------------------------------------------------------
// jQuery
var settings = {
"url": "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902",
"method": "PUT",
"timeout": 0,
"headers": {
"Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ",
"Content-Type": "application/json",
"Cookie": "lang=en"
},
"data": JSON.stringify({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
// -------------------------------------------------------------
// XHR
var data = JSON.stringify({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
});
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("PUT", "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ");
xhr.setRequestHeader("Content-Type", "application/json");
// WARNING: Cookies will be stripped away by the browser before sending the request.
xhr.setRequestHeader("Cookie", "lang=en");
xhr.send(data);
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ");
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Cookie: lang=en");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\r\n \"shipping_address\": {\r\n \"first_name\": \"Stefany\",\r\n \"address1\": \"Belisario Dominguez\",\r\n \"address2\": \"Semillero\",\r\n \"country\": {\r\n \"code\": \"MX\",\r\n \"name\": \"Mexico\"\r\n },\r\n \"state\": {\r\n \"code\": \"TB\"\r\n },\r\n \"city\": \"Monterrey\",\r\n \"postal_code\": \"64000\",\r\n \"reference\": \"reference\",\r\n \"phone\": \"123456789\"\r\n }\r\n}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
}
curl_easy_cleanup(curl);
// Axios
const axios = require('axios');
let data = JSON.stringify({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
});
let config = {
method: 'put',
maxBodyLength: Infinity,
url: 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902',
headers: {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type': 'application/json',
'Cookie': 'lang=en'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
// -------------------------------------------------------------
// Native
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'PUT',
'hostname': 'sandbox.ecartpay.com',
'path': '/api/orders/60a43fe9ffd1ec212bab3902',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type': 'application/json',
'Cookie': 'lang=en'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
});
req.write(postData);
req.end();
// -------------------------------------------------------------
// Request
var request = require('request');
var options = {
'method': 'PUT',
'url': 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type': 'application/json',
'Cookie': 'lang=en'
},
body: JSON.stringify({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
// -------------------------------------------------------------
// Unirest
var unirest = require('unirest');
var req = unirest('PUT', 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902')
.headers({
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type': 'application/json',
'Cookie': 'lang=en'
})
.send(JSON.stringify({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}))
.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.raw_body);
});
#import <Foundation/Foundation.h>
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
NSDictionary *headers = @{
@"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ",
@"Content-Type": @"application/json",
@"Cookie": @"lang=en"
};
[request setAllHTTPHeaderFields:headers];
NSData *postData = [[NSData alloc] initWithData:[@"{\r\n \"shipping_address\": {\r\n \"first_name\": \"Stefany\",\r\n \"address1\": \"Belisario Dominguez\",\r\n \"address2\": \"Semillero\",\r\n \"country\": {\r\n \"code\": \"MX\",\r\n \"name\": \"Mexico\"\r\n },\r\n \"state\": {\r\n \"code\": \"TB\"\r\n },\r\n \"city\": \"Monterrey\",\r\n \"postal_code\": \"64000\",\r\n \"reference\": \"reference\",\r\n \"phone\": \"123456789\"\r\n }\r\n}" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];
[request setHTTPMethod:@"PUT"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
dispatch_semaphore_signal(sema);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSError *parseError = nil;
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
NSLog(@"%@",responseDictionary);
dispatch_semaphore_signal(sema);
}
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
open Lwt
open Cohttp
open Cohttp_lwt_unix
let postData = ref "{\r\n \"shipping_address\": {\r\n \"first_name\": \"Stefany\",\r\n \"address1\": \"Belisario Dominguez\",\r\n \"address2\": \"Semillero\",\r\n \"country\": {\r\n \"code\": \"MX\",\r\n \"name\": \"Mexico\"\r\n },\r\n \"state\": {\r\n \"code\": \"TB\"\r\n },\r\n \"city\": \"Monterrey\",\r\n \"postal_code\": \"64000\",\r\n \"reference\": \"reference\",\r\n \"phone\": \"123456789\"\r\n }\r\n}";;
let reqBody =
let uri = Uri.of_string "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902" in
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ"
|> fun h -> Header.add h "Content-Type" "application/json"
|> fun h -> Header.add h "Cookie" "lang=en"
in
let body = Cohttp_lwt.Body.of_string !postData in
Client.call ~headers ~body `PUT uri >>= fun (_resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body -> body
let () =
let respBody = Lwt_main.run reqBody in
print_endline (respBody)
// cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_POSTFIELDS =>'{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type: application/json',
'Cookie: lang=en'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
// -------------------------------------------------------------
// Guzzle
<?php
$client = new Client();
$headers = [
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type' => 'application/json',
'Cookie' => 'lang=en'
];
$body = '{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}';
$request = new Request('PUT', 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
// -------------------------------------------------------------
// HTTP_Request2
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type' => 'application/json',
'Cookie' => 'lang=en'
));
$request->setBody('{
\n "shipping_address": {
\n "first_name": "Stefany",
\n "address1": "Belisario Dominguez",
\n "address2": "Semillero",
\n "country": {
\n "code": "MX",
\n "name": "Mexico"
\n },
\n "state": {
\n "code": "TB"
\n },
\n "city": "Monterrey",
\n "postal_code": "64000",
\n "reference": "reference",
\n "phone": "123456789"
\n }
\n}');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
// -------------------------------------------------------------
// pecl_http
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902');
$request->setRequestMethod('PUT');
$body = new http\Message\Body;
$body->append('{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}');
$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type' => 'application/json',
'Cookie' => 'lang=en'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ")
$headers.Add("Content-Type", "application/json")
$headers.Add("Cookie", "lang=en")
$body = @"
{
`"shipping_address`": {
`"first_name`": `"Stefany`",
`"address1`": `"Belisario Dominguez`",
`"address2`": `"Semillero`",
`"country`": {
`"code`": `"MX`",
`"name`": `"Mexico`"
},
`"state`": {
`"code`": `"TB`"
},
`"city`": `"Monterrey`",
`"postal_code`": `"64000`",
`"reference`": `"reference`",
`"phone`": `"123456789`"
}
}
"@
$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902' -Method 'PUT' -Headers $headers -Body $body
$response | ConvertTo-Json
# http.client
import http.client
import json
conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = json.dumps({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
})
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type': 'application/json',
'Cookie': 'lang=en'
}
conn.request("PUT", "/api/orders/60a43fe9ffd1ec212bab3902", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
// -------------------------------------------------------------
# Requests
import requests
import json
url = "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902"
payload = json.dumps({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
})
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type': 'application/json',
'Cookie': 'lang=en'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
# httr
library(httr)
headers = c(
'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ',
'Content-Type' = 'application/json',
'Cookie' = 'lang=en'
)
body = '{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}';
res <- VERB("PUT", url = "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902", body = body, add_headers(headers))
cat(content(res, 'text'))
// -------------------------------------------------------------
# RCurl
library(RCurl)
headers = c(
"Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ",
"Content-Type" = "application/json",
"Cookie" = "lang=en"
)
params = "{
\"shipping_address\": {
\"first_name\": \"Stefany\",
\"address1\": \"Belisario Dominguez\",
\"address2\": \"Semillero\",
\"country\": {
\"code\": \"MX\",
\"name\": \"Mexico\"
},
\"state\": {
\"code\": \"TB\"
},
\"city\": \"Monterrey\",
\"postal_code\": \"64000\",
\"reference\": \"reference\",
\"phone\": \"123456789\"
}
}"
res <- httpPUT("https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902", params, httpheader = headers, followlocation = TRUE)
cat(res)
require "uri"
require "json"
require "net/http"
url = URI("https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ"
request["Content-Type"] = "application/json"
request["Cookie"] = "lang=en"
request.body = JSON.dump({
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
})
response = https.request(request)
puts response.read_body
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::builder()
.build()?;
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ".parse()?);
headers.insert("Content-Type", "application/json".parse()?);
headers.insert("Cookie", "lang=en".parse()?);
let data = r#"{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}"#;
let json: serde_json::Value = serde_json::from_str(&data)?;
let request = client.request(reqwest::Method::PUT, "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902")
.headers(headers)
.json(&json);
let response = request.send().await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}
# Httpie
printf '{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}'| http --follow --timeout 3600 PUT 'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902' \
Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ' \
Content-Type:'application/json' \
Cookie:'lang=en'
// -------------------------------------------------------------
# wget
wget --no-check-certificate --quiet \
--method PUT \
--timeout=0 \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ' \
--header 'Content-Type: application/json' \
--header 'Cookie: lang=en' \
--body-data '{
"shipping_address": {
"first_name": "Stefany",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"reference": "reference",
"phone": "123456789"
}
}' \
'https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902'
let parameters = "{\r\n \"shipping_address\": {\r\n \"first_name\": \"Stefany\",\r\n \"address1\": \"Belisario Dominguez\",\r\n \"address2\": \"Semillero\",\r\n \"country\": {\r\n \"code\": \"MX\",\r\n \"name\": \"Mexico\"\r\n },\r\n \"state\": {\r\n \"code\": \"TB\"\r\n },\r\n \"city\": \"Monterrey\",\r\n \"postal_code\": \"64000\",\r\n \"reference\": \"reference\",\r\n \"phone\": \"123456789\"\r\n }\r\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/orders/60a43fe9ffd1ec212bab3902")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3MzgwODY3MzEsImV4cCI6MTczODA5MDMzMX0.sRQIqx5XcoTOsVPTkuBvrXE8bnHlsrnnEVcRkWwW6CaFDpd4-_VGn4DoNJ9DeTDudcI8MqJb7orXB7aWGq0rjQ", forHTTPHeaderField: "Authorization")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")
request.httpMethod = "PUT"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Example Response
{
"id": "625ca1878541531b52506afb",
"account_id": "5d2d436e3199ae000449065b",
"authorization_id": "6189be80df291598221a5e95",
"number": "OR77874565",
"status": "created",
"email": "[email protected]",
"first_name": "Moises",
"last_name": "Garcia",
"phone": "9341000062",
"currency": "MXN",
"shipping_address": {
"first_name": "Stefany",
"last_name": "Garcia",
"address1": "Belisario Dominguez",
"address2": "Semillero",
"country": {
"code": "MX",
"name": "Mexico"
},
"state": {
"code": "TB"
},
"city": "Monterrey",
"postal_code": "64000",
"phone": "123456789",
"reference": "reference"
},
"items": [
{
"name": "Brazalete religioso plateado BR3017",
"quantity": 1,
"price": 243.33,
"discount": 0,
"total": 243.33,
"tax": 0
}
],
"shipping_items": [
{
"name": "Express Shipping",
"amount": 160,
"carrier": "OWN"
}
],
"discounts": [],
"totals": {
"subtotal": 243.33,
"total": 403.33,
"tax": 0,
"discount": 0,
"shipping": 160
},
"risk_score": 0,
"risk_notes": [],
"fee": 0,
"confirmed": false,
"notify_url": "https://example.com/customer/290",
"redirect_url": "https://example.com/order/10",
"created_at": "2022-04-17T23:23:51.017Z",
"updated_at": "2022-04-17T23:24:06.210Z"
}
Key Benefits
- Improved Accuracy: Ensure that all shipping information is correct before the order is shipped.
- Enhanced Flexibility: Address last-minute changes without needing to cancel and recreate orders.
- Streamlined Process: Minimize errors and delays, leading to higher customer satisfaction.
With the Update Order endpoint, Ecart Pay ensures that your orders remain accurate and adaptable to changing customer needs.
Updated about 2 months ago