// install dependency
// $ composer require guzzlehttp/guzzle
<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$transaction = [
"type" => "STOCK_MOVEMENT",
"content" => [
"header" => [
"stockMovementIdentifier" => "STOCK_MOVEMENT_123456",
"stockMovementDate" => "2026-10-01T09:00:00Z",
"movementNotes" => "Recount of zone A after a damage report",
"goodsOwner" => [
"name" => "Test Receiver GmbH",
"identifiers" => [
[
"domain" => "GS1",
"identifier" => "4200000654321"
]
]
],
"warehouse" => [
"name" => "Test Sender GmbH",
"identifiers" => [
[
"domain" => "GS1",
"identifier" => "4200000123456"
]
]
]
],
"items" => [
[
"lineNumber" => 1,
"movementDate" => "2026-10-01T07:30:00Z",
"type" => "ADJUSTMENT",
"action" => "DECREMENT",
"quantity" => 8,
"reasonCode" => "DAMAGE",
"reason" => "Pallet damaged by forklift",
"fromLocation" => [
"identifier" => "A-01-03",
"status" => "AVAILABLE"
],
"identity" => [
"senderPartnerId" => "PRD-0001",
"receiverPartnerId" => "AB-MM-9988",
"gtin" => "12345678901234"
],
"name" => "Name of the product",
"unitOfMeasure" => "EA"
],
[
"lineNumber" => 2,
"movementDate" => "2026-10-01T07:45:00Z",
"type" => "TRANSFER",
"action" => "MOVE",
"sourceDocumentType" => "WORK_ORDER",
"sourceDocumentIdentifier" => "WO-2026-004711",
"sourceDocumentLineIdentifier" => "10",
"quantity" => 100,
"fromLocation" => [
"identifier" => "A-01-03",
"status" => "BLOCKED"
],
"toLocation" => [
"identifier" => "B-02-01",
"status" => "AVAILABLE"
],
"identity" => [
"senderPartnerId" => "PRD-0002",
"gtin" => "98765432109876"
],
"unitOfMeasure" => "EA"
]
]
]
];
$response = $client->request('POST', 'https://api.procuros.io/v2/transactions', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer <your-api-token>',
],
'json' => $transaction,
]);