Inclusão de item em atendimento

De RBX ISP - Manual do Usuário

O objetivo deste serviço é realizar a inclusão de itens em atendimentos (produtos ou serviços, nas operações de venda, consumo e comodato). Abaixo, segue exemplo do json de envio:

{
  "ticket_item_insert":
  {
    "ticket_id": 5248,
    "customer_id": 125,
    "type": "product",
    "operation": "sale",
    "contract_id": 1658,
    "item_id": 1588,
    "serial_number": "A6587548",
    "location_id": 1,
    "quantity": 1,
    "discount_amount": 0,
    "installments_quantity": 2,
    "installments_detail":
    [
        {
            "description": "Parcela 1",
            "amount": 10.5,
            "reference_period": "2020-04-01"
        },
        {
            "description": "Parcela 2",
            "amount": 10.5,
            "reference_period": "2020-05-01"
        }
    ],
    "dealer_id": 15
  }
}

Detalhamento dos campos

ID Campo Obrigatório Pai Tipo Observações
A01 ticket_item_insert Sim Raiz - -
A02 ticket_id Sim A01 Número Número do atendimento. Aceita valores inteiros positivos e maiores que zero.
A03 customer_id Sim A01 Número Código do cliente. Aceita valores inteiros positivos e maiores que zero.
A04 type Sim A01 Texto Tipo de item. Valores aceitos:

service (para inclusão de itens de serviço)

product (para inclusão de itens de estoque)
A05 operation Sim A01 Texto Tipo de operação. Valores aceitos:

sale (para operação Venda)

lending (para operação Comodato)

consumption (para operação Consumo)

Para itens de serviço, apenas a operação sale pode ser utilizada.
A06 contract_id Sim* A01 Número Número do contrato do cliente. Aceita valores inteiros positivos e maiores que zero.

Este campo é opcional apenas na operação consumption.
A07 item_id Sim A01 Número Código do item (produto ou serviço). Aceita valores inteiros positivos e maiores que zero.
A08 serial_number Não* A01 Texto Número serial do produto.

Este campo só deve ser informado para itens de estoque controlados por serial. Para os demais casos ele não deve ser informado.
A09 location_id Não* A01 Número Código da locação. Aceita valores inteiros positivos e maiores que zero.

Este campo deve ser informado para itens de estoque não controlados por serial. Ele indica a locação de onde o item será movimentado.
A10 quantity Sim A01 Decimal (15.2) Quantidade do item. Aceita valores numéricos (com 2 decimais) positivos e maiores que zero.

Para itens de estoque controlados por serial, é obrigatório ser informado com valor igual a um (1).
A11 discount_amount Não A01 Decimal (15.2) Valor do desconto. Aceita valores numéricos (com 2 decimais) positivos e maiores que zero.

Só pode ser informado para operações do tipo sale.

O valor do desconto deve ser menor ou igual ao valor da quantidade - informada no campo quantity - multiplicado pelo preço de venda do produto.
A12 installments_quantity Não* A01 Número Quantidade de parcelas do item. Aceita valores inteiros positivos e maiores que zero.

Este campo deve ser informado nas operações do tipo sale.
A13 installments_detail Não* A01 Lista de objetos Grupo de informações das parcelas.

Este campo é obrigatório quando for informado um valor maior do que um (1) no campo installments_quantity.

A soma dos campos "amount" deve sempre ser igual ao valor do total do item.

A quantidade de objetos deve sempre ser igual ao valor do campo "installments_quantity".
B01 description Sim A13 Texto Descrição da parcela do item.

Tamanho máximo: 50
B02 amount Sim A13
Decimal (15.2)
Valor da parcela do item. Aceita valores numéricos (com 2 decimais) positivos e maiores que zero.
B03 reference_period Sim A13 Data Período de referência parcela do item. Formato: AAAA-MM-DD

Independente do valor passado em DD (dia), sempre será salvo "01".

Não é permitido um mesmo período de referência em mais de uma parcela.
A14 dealer_id Não A01 Número Código do terceiro. Aceita valores inteiros positivos e maiores que zero.


Mensagem de retorno

Em caso de sucesso, será retornado um json conforme o exemplo abaixo:

{
  "status": 1,
  "error_code": 0,
  "error_description": "",
  "result": 
  {
    "item_id": 65487
  }
}

Em caso de falha, será retornado um json conforme o exemplo abaixo:

{
  "status": 0,
  "error_code": 19,
  "error_description": "Unknown error!",
  "result": ""
}