Documentação API
  • Introdução
  • Setup
  • Autenticação
  • Autenticação simplificada
  • Caraterísticas dos pedidos
  • API-v1
    • Introdução à API v1
    • Documentos de venda
    • Recibos
    • Documentos de compra
    • Pagamentos
  • API-v0
    • Documentos de venda
    • Clientes e Moradas
    • Fornecedores
    • Produtos e serviços
    • Recibos
    • Documentos de compra
    • Pagamentos
    • Descarregar PDF documentos
    • Envio de documentos e recibos por email
    • Anexar ficheiros
    • Comunicação de documentos à AT
Powered by GitBook
On this page
  1. API-v0

Produtos e serviços

O atual capítulo tem como objetivo descrever as rotas da API responsáveis pela criação e gestão de produtos e serviços

PreviousFornecedoresNextRecibos

Last updated 2 years ago

Produtos

Os detalhes do pedido POST para a criação de produtos estão descritos de seguida, em formato OpenAPI, e em cURL.

curl -v -X POST -H 'Content-Type: application/vnd.api+json' -H 'Accept: application/json' -H 'Authorization: Bearer <access_token>' -d '<payload JSON>' '<API_URL>/products'

No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth, e o <payload JSON> deverá ter o seguinte formato

{
  "data": {
    "type": "products",                         // [OBRIGATÓRIO]
    "attributes": {
      "type": "Product",                        // [OBRIGATÓRIO]
      "item_code": "PTEST",                     // [OBRIGATÓRIO]
      "item_description": "Test product",       // [OBRIGATÓRIO]
      "sales_price": 100,                       // [OPCIONAL]
      "sales_price_includes_vat": false,        // [OPCIONAL] Por omissão, false; true, se o preço de venda do produto incluir IVA
      "tax_code": "NOR"                         // [OPCIONAL] Os tipos de IVA suportados são "NOR" (normal), "INT" (intermédio), "RED" (reduzido), "ISE" (isento)
    }
  }
}

De modo a obter informações sobre um dado produto, poderá realizar o seguinte pedido

GET /products

Path Parameters

Name
Type
Description

filter[item_code]

String

<item_code>

{
    // Response
}

Neste, pode não indicar nenhum filtro, e obter todos os produtos disponíveis, ou então filtrar por qualquer um dos campos disponíveis, tal como no exemplo dado, e seguindo as convenções JSONAPI

Serviços

Os detalhes do pedido POST para a criação de serviços estão descritos de seguida, em formato OpenAPI, e em cURL.

curl -v -X POST -H 'Content-Type: application/vnd.api+json' -H 'Accept: application/json' -H 'Authorization: Bearer <access_token>' -d '<payload JSON>' '<API_URL>/services'

No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth, e o <payload JSON> deverá ter o seguinte formato

{
  "data": {
    "type": "services",                         // [OBRIGATÓRIO]
    "attributes": {
      "type": "Service",                        // [OBRIGATÓRIO]
      "item_code": "STEST",                     // [OBRIGATÓRIO]
      "item_description": "Test service",       // [OBRIGATÓRIO]
      "sales_price": 100,                       // [OPCIONAL]
      "sales_price_includes_vat": false,        // [OPCIONAL] Por omissão, false; true, se o preço de venda do produto incluir IVA
      "tax_code": "NOR"                         // [OPCIONAL] Os tipos de IVA suportados são "NOR" (normal), "INT" (intermédio), "RED" (reduzido), "ISE" (isento)
    }
  }
}

De modo a obter informações sobre um dado serviço, poderá realizar o seguinte pedido

GET /services

Path Parameters

Name
Type
Description

filter[item_code]

String

<item_code>

{
    // Response
}

Neste, pode não indicar nenhum filtro, e obter todos os serviços disponíveis, ou então filtrar por qualquer um dos campos disponíveis, tal como no exemplo dado, e seguindo as convenções JSONAPI

  • Produtos
  • POST/products
  • Serviços
  • POST/services
post
Body
Responses
200
OK
application/json
post
POST /products HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 725

{
  "data": {
    "type": "products",
    "attributes": {
      "id": 1,
      "item_code": "text",
      "item_description": "text",
      "sales_price": 1,
      "sales_price_2": 1,
      "sales_price_3": 1,
      "purchase_price": 1,
      "sales_price_includes_vat": true,
      "tax_code": "text",
      "notes": "text",
      "is_active": true,
      "product_inventory_type": "text",
      "ean_barcode": "text",
      "financial_cost": 1,
      "transport_cost": 1,
      "other_cost": 1,
      "customs_cost": 1,
      "sales_price_vat_display": "text",
      "sales_price_2_vat_display": "text",
      "sales_price_3_vat_display": "text"
    },
    "relationships": {
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "unit_of_measure": {
        "data": {
          "resource": "units_of_measure"
        }
      },
      "item_families": {
        "data": {
          "resource": "item_families"
        }
      },
      "tax_exemption_reasons": {
        "data": {
          "resource": "tax_exemption_reasons"
        }
      }
    }
  }
}
200

OK

{
  "data": {
    "type": "products",
    "id": null,
    "attributes": {
      "id": 1,
      "item_code": "text",
      "item_description": "text",
      "sales_price": 1,
      "sales_price_2": 1,
      "sales_price_3": 1,
      "purchase_price": 1,
      "sales_price_includes_vat": true,
      "tax_code": "text",
      "notes": "text",
      "is_active": true,
      "product_inventory_type": "text",
      "ean_barcode": "text",
      "financial_cost": 1,
      "transport_cost": 1,
      "other_cost": 1,
      "customs_cost": 1,
      "sales_price_vat_display": "text",
      "sales_price_2_vat_display": "text",
      "sales_price_3_vat_display": "text"
    },
    "relationships": {
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "unit_of_measure": {
        "data": {
          "resource": "units_of_measure"
        }
      },
      "item_families": {
        "data": {
          "resource": "item_families"
        }
      },
      "tax_exemption_reasons": {
        "data": {
          "resource": "tax_exemption_reasons"
        }
      }
    }
  }
}
post
Body
Responses
200
OK
application/json
post
POST /services HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 634

{
  "data": {
    "type": "services",
    "attributes": {
      "id": 1,
      "item_code": "text",
      "item_description": "text",
      "sales_price": 1,
      "sales_price_2": 1,
      "sales_price_3": 1,
      "service_group": "text",
      "sales_price_includes_vat": true,
      "tax_code": "text",
      "tax_exemption_reason_id": 1,
      "notes": "text",
      "is_active": true,
      "sales_price_vat_display": "text",
      "sales_price_2_vat_display": "text",
      "sales_price_3_vat_display": "text"
    },
    "relationships": {
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "unit_of_measure": {
        "data": {
          "resource": "units_of_measure"
        }
      },
      "item_families": {
        "data": {
          "resource": "item_families"
        }
      },
      "tax_exemption_reasons": {
        "data": {
          "resource": "tax_exemption_reasons"
        }
      }
    }
  }
}
200

OK

{
  "data": {
    "type": "services",
    "id": null,
    "attributes": {
      "id": 1,
      "item_code": "text",
      "item_description": "text",
      "sales_price": 1,
      "sales_price_2": 1,
      "sales_price_3": 1,
      "service_group": "text",
      "sales_price_includes_vat": true,
      "tax_code": "text",
      "tax_exemption_reason_id": 1,
      "notes": "text",
      "is_active": true,
      "sales_price_vat_display": "text",
      "sales_price_2_vat_display": "text",
      "sales_price_3_vat_display": "text"
    },
    "relationships": {
      "company": {
        "data": {
          "resource": "current_company"
        }
      },
      "unit_of_measure": {
        "data": {
          "resource": "units_of_measure"
        }
      },
      "item_families": {
        "data": {
          "resource": "item_families"
        }
      },
      "tax_exemption_reasons": {
        "data": {
          "resource": "tax_exemption_reasons"
        }
      }
    }
  }
}