Crear movimiento de stock
curl --request POST \
--url https://api.lapyme.com.ar/api/v1/stock-movements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"warehouse_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"operation_date": "2023-11-07T05:31:56Z",
"reason": "<string>",
"items": [
{
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123
}
],
"notes": "<string>"
}
'import requests
url = "https://api.lapyme.com.ar/api/v1/stock-movements"
payload = {
"warehouse_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"operation_date": "2023-11-07T05:31:56Z",
"reason": "<string>",
"items": [
{
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123
}
],
"notes": "<string>"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
warehouse_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
operation_date: '2023-11-07T05:31:56Z',
reason: '<string>',
items: [{product_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', quantity: 123}],
notes: '<string>'
})
};
fetch('https://api.lapyme.com.ar/api/v1/stock-movements', 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.lapyme.com.ar/api/v1/stock-movements",
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([
'warehouse_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'operation_date' => '2023-11-07T05:31:56Z',
'reason' => '<string>',
'items' => [
[
'product_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'quantity' => 123
]
],
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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.lapyme.com.ar/api/v1/stock-movements"
payload := strings.NewReader("{\n \"warehouse_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"operation_date\": \"2023-11-07T05:31:56Z\",\n \"reason\": \"<string>\",\n \"items\": [\n {\n \"product_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 123\n }\n ],\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.lapyme.com.ar/api/v1/stock-movements")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"warehouse_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"operation_date\": \"2023-11-07T05:31:56Z\",\n \"reason\": \"<string>\",\n \"items\": [\n {\n \"product_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 123\n }\n ],\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lapyme.com.ar/api/v1/stock-movements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"warehouse_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"operation_date\": \"2023-11-07T05:31:56Z\",\n \"reason\": \"<string>\",\n \"items\": [\n {\n \"product_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 123\n }\n ],\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"stock_movement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"transaction_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"affected_product_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"idempotent_replay": true
},
"warnings": [
"<unknown>"
]
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "INVALID_REQUEST",
"message": "Invalid request for creating stock movements",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "AUTHENTICATION_REQUIRED",
"message": "API key is required in the Authorization header",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "FORBIDDEN",
"message": "Your API key does not have permission for this operation",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "NOT_FOUND",
"message": "Warehouse not found",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "The same Idempotency-Key was already used with a different stock movement.",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_rate_limit_1",
"error": {
"type": "rate_limit_error",
"code": "RATE_LIMITED",
"message": "The organization request limit was reached. Try again later.",
"retryable": true,
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "INTERNAL_ERROR",
"message": "Could not process the stock movement",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}Crear movimiento de stock
Registra un movimiento manual para ajustar stock de un producto o variante.
POST
/
api
/
v1
/
stock-movements
Crear movimiento de stock
curl --request POST \
--url https://api.lapyme.com.ar/api/v1/stock-movements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"warehouse_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"operation_date": "2023-11-07T05:31:56Z",
"reason": "<string>",
"items": [
{
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123
}
],
"notes": "<string>"
}
'import requests
url = "https://api.lapyme.com.ar/api/v1/stock-movements"
payload = {
"warehouse_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"operation_date": "2023-11-07T05:31:56Z",
"reason": "<string>",
"items": [
{
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quantity": 123
}
],
"notes": "<string>"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
warehouse_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
operation_date: '2023-11-07T05:31:56Z',
reason: '<string>',
items: [{product_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', quantity: 123}],
notes: '<string>'
})
};
fetch('https://api.lapyme.com.ar/api/v1/stock-movements', 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.lapyme.com.ar/api/v1/stock-movements",
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([
'warehouse_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'operation_date' => '2023-11-07T05:31:56Z',
'reason' => '<string>',
'items' => [
[
'product_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'quantity' => 123
]
],
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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.lapyme.com.ar/api/v1/stock-movements"
payload := strings.NewReader("{\n \"warehouse_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"operation_date\": \"2023-11-07T05:31:56Z\",\n \"reason\": \"<string>\",\n \"items\": [\n {\n \"product_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 123\n }\n ],\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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.lapyme.com.ar/api/v1/stock-movements")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"warehouse_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"operation_date\": \"2023-11-07T05:31:56Z\",\n \"reason\": \"<string>\",\n \"items\": [\n {\n \"product_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 123\n }\n ],\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lapyme.com.ar/api/v1/stock-movements")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"warehouse_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"operation_date\": \"2023-11-07T05:31:56Z\",\n \"reason\": \"<string>\",\n \"items\": [\n {\n \"product_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"quantity\": 123\n }\n ],\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "<string>",
"data": {
"stock_movement_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"transaction_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"affected_product_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"idempotent_replay": true
},
"warnings": [
"<unknown>"
]
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "INVALID_REQUEST",
"message": "Invalid request for creating stock movements",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "AUTHENTICATION_REQUIRED",
"message": "API key is required in the Authorization header",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "FORBIDDEN",
"message": "Your API key does not have permission for this operation",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "NOT_FOUND",
"message": "Warehouse not found",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "The same Idempotency-Key was already used with a different stock movement.",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}{
"request_id": "req_rate_limit_1",
"error": {
"type": "rate_limit_error",
"code": "RATE_LIMITED",
"message": "The organization request limit was reached. Try again later.",
"retryable": true,
"details": []
}
}{
"request_id": "req_stock_movement_1",
"error": {
"code": "INTERNAL_ERROR",
"message": "Could not process the stock movement",
"retryable": false,
"type": "invalid_request_error",
"details": []
}
}Authorizations
Incluí tu API key en el header Authorization con el prefijo Bearer.
Headers
Clave única para evitar duplicados al reintentar el mismo movimiento de stock.
ID opcional de la solicitud para trazabilidad. Si se omite, el servidor genera uno.
Body
application/json
Available options:
delta, replace Required array length:
1 - 2500 elementsShow child attributes
Show child attributes
Available options:
inbound, outbound Was this page helpful?
⌘I

