# Registra uma nova movimentação Registra uma nova movimentação de estoque. Endpoint: POST /api/v3/stocks/{stockId}/movements Version: 3.0.0 Security: OAuth2 ## Header parameters: - `CPlug-Company-Id` (number, required) Id da Empresa (Company). Você pode localizar os IDs das empresas no _endpoint_ de listagem de empresas. Example: 12 - `Idempotency-Key` (string, required) UUID aleatório gerado por você. Nós utilizamos esse header para evitar duplicidade de registros, ou seja, caso você não tenha recebido a resposta de alguma requisição e mandar o mesmo UUID, nós não duplicaremos o registro. ## Path parameters: - `stockId` (integer, required) ID do estoque. ## Request fields (application/json): - `type` (any) Tipo de movimentação - in Entrada. - out Saída. Enum: "in", "out" - `stock_movement_category_id` (integer) Identificador único da categoria de movimento do estoque. Example: 1 - `date` (string) data da movimentação. Example: "2024-09-13" - `products` (array) Lista de atributos do produto. ## Response 201 fields (application/json): - `data` (object) - `data.movements` (array) Representa a lista de movimentações no estoque de um produto - `data.movements.id` (integer) Número do lote. Example: 153 - `data.movements.product_id` (integer) Identificador único do produto. Example: 153 - `data.movements.type` (any) Tipo de movimentação - in Entrada. - out Saída. Enum: "in", "out" - `data.movements.unitary_cost` (string) Custo unitário. Quando este campo tiver o valor composition, quer dizer que o produto faz parte de um combo. Example: "R$ 1,50" - `data.movements.unitary_value` (object) Valor unitário do produto. - `data.movements.unitary_value.amount` (number, required) Valor expresso como um número decimal das principais unidades monetárias Example: 99.95 - `data.movements.unitary_value.currency` (string, required) Código de moeda de 3 letras conforme definido pela ISO-4217 Example: "BRL" - `data.movements.attributes` (array) Lista de atributos do produto. Example: ["Opção 01"] - `data.movements.customer` (object) Dados do cliente. - `data.movements.customer.id` (integer) Identificador único do cliente na CPlug. Example: 1 - `data.movements.customer.name` (string) Nome do cliente. Example: "Fulado de tal" - `data.movements.sale_id` (integer) Identificador único da venda na CPlug. null caso não seja uma movimentação criada por uma venda. Example: 1 - `data.movements.nfe` (object) Dados da nota fiscal de compra ou venda. null caso não haja uma nota fiscal associada a esta movimentação. - `data.movements.category` (object) - `data.movements.user` (object) Quem fez a movimentação do produto no estoque. - `data.movements.user.id` (integer) Identificador único do usuário na CPlug. Example: 1 - `data.movements.user.name` (string) Nome do usuário. Example: "Fulano de tal" - `data.movements.date` (string) Data da movimentação. Example: "2020-01-01" - `data.movements.service_order_or_item_code` (string) OS/Cód.Item Example: "A23" - `data.movements.quantity` (number) Indica a quantidade do produto que foi movimentado no estoque. Example: 10 - `data.movements.balance` (number) Indica a quantidade do produto no estoque. Example: 90 - `data.movements.unit_of_measure` (object) Unidade de medida do produto. - `data.movements.unit_of_measure.id` (integer, required) Identificador único da unidade de medida. Example: 123 - `data.movements.unit_of_measure.name` (string, required) Nome da unidade de medida, exemplo "quilos". Example: "Quilos" - `data.movements.unit_of_measure.abbreviation` (string, required) A abreviatura da unidade, veja a tabela com todas as referências em [Tabela de Unidades de medida](#section/Conhecimento-Geral/Tabelas) Example: "kg" - `data.movements.unit_of_measure.precision` (integer, required) Um número inteiro entre 0 e 6 que representa o número máximo de posições permitidas após o decimal em quantidades medidas com esta unidade. Por exemplo: - se a precisão for 0, a quantidade pode ser 1, 2, 3, etc. - se a precisão for 1, a quantidade pode ser 0.1, 0.2, 0.3, etc. - se a precisão for 2, a quantidade pode ser 0.01, 0.02, 0.03, etc. Example: 2 - `data.movements.unit_of_measure.product_count` (integer) Número de produtos que utilizam esta unidade de medida Example: 4 - `data.movements.unit_of_measure.created_at` (string) Data da última criação. Example: "2020-01-01T09:00:00-03:00" - `data.movements.unit_of_measure.updated_at` (string) Data da última atualização. Example: "2020-01-01T09:00:00-03:00" - `data.movements.has_movement_out` (boolean) Indica se esta movimentação possui uma movimentação de saída. Example: true ## Response 400 fields (application/json): - `code` (string, required) Código de erro. Example: "missing_headers" - `message` (string) Descrição do erro. Example: "error message" - `meta` (array) Dados adicionais sobre o erro. ## Response 422 fields (application/json): - `code` (string, required) Código de erro. Example: "uneditable_entity" - `message` (string) Descrição do erro. Example: "description error" - `meta` (array) Dados adicionais sobre o erro. - `meta.field` (string, required) Nome do campo no qual existe um erro de validação. Example: "name" - `meta.validations` (array) - `meta.validations.type` (string, required) Tipo da validação aplicada. Example: "Required" - `meta.validations.value` (array) Tipo de valor aplicável (esse campo pode ser vazio). ## Response 401 fields ## Response 404 fields