Fornecedores

As rotas definidas no presente capítulo permitem gerir toda a informação relativa a fornecedores: criação, edição, remoção, etc

Obter Todos os Fornecedores

Esta primeira rota permite obter a informação de todos os fornecedores disponíveis. Para tal, deve apenas realizar o seguinte pedido:

Endpoint
ttps://api/v1.toconline.com/api/suppliers

Obter Fornecedor por Id

Se pretender obter a informação de um fornecedor específico, deverá realizar o mesmo pedido, especificando o id do fornecedor que deseja consultar

Exemplo de Resposta
Response
{
    "data": {
        "type": "suppliers",
        "id": "7",
        "attributes": {
            "tax_registration_number": "533186331",
            "business_name": "A Empresa",
            "website": "www.a_empresa.pt",
            "is_taxable": false,
            "is_tax_exempt": false,
            "tax_exemption_reason_id": null,
            "self_billing": null,
            "document_series_id": null,
            "internal_observations": null,
            "tax_country_region": "PT-AC",
            "is_independent_worker": false,
            "country_iso_alpha_2": "PT-AC",
            "saft_import_id": null,
            "accounting_number": null,
            "trusted_email_source": false
        },
        "relationships": {
            "addresses": {
                "data": [
                    {
                        "type": "addresses",
                        "id": "45"
                    }
                ]
            },
            "bank_accounts": {
                "data": [
                    {
                        "type": "bank_accounts",
                        "id": "4"
                    }
                ]
            },
            "company": {
                "data": {
                    "type": "current_company",
                    "id": "800000046"
                }
            },
            "contacts": {
                "data": [
                    {
                        "type": "contacts",
                        "id": "17"
                    }
                ]
            },
            "defaults": {
                "data": {
                    "type": "suppliers_defaults",
                    "id": "4"
                }
            },
            "main_address": {
                "data": {
                    "type": "addresses",
                    "id": "45"
                }
            },
            "main_contact": {
                "data": {
                    "type": "contacts",
                    "id": "17"
                }
            },
            "tax_exemption_reason": {
                "data": null
            }
        }
    }
}

Criar Fornecedor

Permite a criação de novas instâncias de fornecedores. De modo a realizar um pedido para esta rota, terá de enviar alguns parâmetros no body do pedido. Tal como está descrito no pedido em baixo. Dentro de data, deverá colocar todos os parâmetros obrigatórios e poderá também colocar os restantes parâmetros, se for do seu interesse. O tipo dos parâmetros está também especificado.

Payload
{
    "data": {
        "type": "suppliers",
        "attributes": {
            "tax_registration_number": 533186331,    //OBRIGATÓRIO
            "business_name": "A Empresa",           //OBRIGATÓRIO  
            "website": null,
            "is_taxable": null,
            "is_tax_exempt": null,
            "self_billing": null,
            "document_series_id": null,
            "internal_observations": null,
            "tax_country_region": null,
            "is_independent_worker": null
        }
    }
}
AtributoDescriçãoObrigatório

type

Tipo de entidade (neste caso, fornecedor).

Sim

tax_registration_number

Número de identificação fiscal do fornecedor.

Sim

business_name

Nome comercial ou razão social do fornecedor.

Sim

website

Website do fornecedor (opcional).

Não

is_taxable

Indica se o fornecedor é tributável (opcional).

Não

is_tax_exempt

Indica se o fornecedor está isento de impostos (opcional).

Não

self_billing

Indica se o fornecedor permite a autogestão de faturas (opcional).

Não

document_series_id

ID da série de documentos associada ao fornecedor (opcional).

Não

internal_observations

Observações internas sobre o fornecedor (opcional).

Não

tax_country_region

Região fiscal do fornecedor (opcional).

Não

is_independent_worker

Indica se o fornecedor é um trabalhador independente (opcional).

Não

Associar morada a Fornecedor

A sequência de passos delineada no diagrama proporciona uma compreensão do processo, desde a criação do forncedor até a sua associação com uma morada.

Quando um forncedor é criado, uma morada principal fica associada ao fornecedor. Esta morada por default vem vazia e é necessário atualizar com os dados da nova morada do fornecedor.

Através do id obtido pela response do Criar Fornecedor este deverá ser usado para obter o id da morada ao fazer um GET /suppliers/{id}

Exemplo de resposta de um GET Supplier por ID
Response
{
    "data": {
        "type": "suppliers",
        "id": "7",
        "attributes": {
            "tax_registration_number": "533186331",
            "business_name": "A Empresa",
            "website": "www.a_empresa.pt",
            "is_taxable": false,
            "is_tax_exempt": false,
            "tax_exemption_reason_id": null,
            "self_billing": null,
            "document_series_id": null,
            "internal_observations": null,
            "tax_country_region": "PT-AC",
            "is_independent_worker": false,
            "country_iso_alpha_2": "PT-AC",
            "saft_import_id": null,
            "accounting_number": null,
            "trusted_email_source": false
        },
        "relationships": {
            "addresses": {
                "data": [
                    {
                        "type": "addresses",
                        "id": "45"
                    }
                ]
            },
            "bank_accounts": {
                "data": [
                    {
                        "type": "bank_accounts",
                        "id": "4"
                    }
                ]
            },
            "company": {
                "data": {
                    "type": "current_company",
                    "id": "800000046"
                }
            },
            "contacts": {
                "data": [
                    {
                        "type": "contacts",
                        "id": "17"
                    }
                ]
            },
            "defaults": {
                "data": {
                    "type": "suppliers_defaults",
                    "id": "4"
                }
            },
            "main_address": {
                "data": {
                    "type": "addresses",
                    "id": "45"
                }
            },
            "main_contact": {
                "data": {
                    "type": "contacts",
                    "id": "17"
                }
            },
            "tax_exemption_reason": {
                "data": null
            }
        }
    }
}

O id da morada obtido anteriormente, será usado para atualizar os dados da morada através de um PATCH / addresses.

O body deste pedido (payload JSON) deverá conter as informações de cliente que se pretende atualizar nos respetivos atributos.

Payload
{
    "data": {
        "type": "addresses",
        "id": "45",
        "attributes": {
             "address_detail": "Avenida Principal",
            "city": "Setúbal",
            "postcode": "2910-099",
            "region": "Setúbal",
            "country_id": "3"
        }
    }
}

Remover Fornecedor

A seguinte rota permite a remoção de um dado fornecedor. Esta rota deve ser utilizada de forma cautelosa dado que é irreversível, e mesmo que este cliente volte a ser criado, o seu id nunca será o mesmo que teria anteriormente.

Utilizando o id do forncedor que quer eliminar, que poderá fazer utilizando a primeira rota desta página, por exemplo, terá simplesmente de fazer o pedido:

Atualizar Fornecedor

A rota PATCH permite a edição de um fornecedor existente. O body deste pedido deverá ser igual ao descrito na rota POST, contendo todas as informações obrigatórias do fornecedor, atualizadas para os valores que tenciona alterar, além do "id" do fornecedor. Álem disto, o pedido deverá ser feito a https://apiv1.toconline.com/suppliers/{id}, sendo que {id} é o identificador do fornecedor que tenciona atualizar.

Exemplo de Payload

No exemplo que se segue foi atualizado o website da empresa

Payload
{
    "data": {
        "type": "suppliers",
        "id": "7",
        "attributes": {
            "tax_registration_number": "533186331",
            "business_name": "A Empresa",
            "website": "www.a_empresa.pt",
            "is_taxable": false,
            "is_tax_exempt": false,
            "tax_exemption_reason_id": null,
            "self_billing": null,
            "document_series_id": null,
            "internal_observations": null,
            "tax_country_region": "PT",
            "is_independent_worker": false,
            "country_iso_alpha_2": "PT",
            "saft_import_id": null,
            "accounting_number": null,
            "trusted_email_source": false
        }
    }
}
Exemplo de Response
{
    "data": {
        "type": "suppliers",
        "id": "7",
        "attributes": {
            "tax_registration_number": "533186331",
            "business_name": "A Empresa",
            "website": null,
            "is_taxable": false,
            "is_tax_exempt": false,
            "tax_exemption_reason_id": null,
            "self_billing": null,
            "document_series_id": null,
            "internal_observations": null,
            "tax_country_region": "PT",
            "is_independent_worker": false,
            "country_iso_alpha_2": "PT",
            "saft_import_id": null,
            "accounting_number": null,
            "trusted_email_source": false
        },
        "relationships": {
            "addresses": {
                "data": []
            },
            "bank_accounts": {
                "data": []
            },
            "company": {
                "data": {
                    "type": "current_company",
                    "id": "800000046"
                }
            },
            "contacts": {
                "data": []
            },
            "defaults": {
                "data": null
            },
            "main_address": {
                "data": null
            },
            "main_contact": {
                "data": null
            },
            "tax_exemption_reason": {
                "data": null
            }
        }
    }
}


Morada

Criar Morada

Quando um Fornecedor é criado este já tem uma morada vazia associada, mas é possível adicionar mais do que uma morada ao Fornecedor.

De modo a associar uma morada a um cliente, deverá realizar o seguinte pedido

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

Payload
{
    "data": {
        "type": "addresses",
        "attributes": {
            "addressable_type": "Supplier", //OBRIGATÓRIO
            "addressable_id": 7,            //OBRIGATÓRIO - ID da morada do Fornecedor
            "address_detail": "teste 3",
            "city": "Setúbal",
            "postcode": "2910-099",
            "region": "Setúbal",
            "country_id" : 1            // 1 = PT (Portugal Continental); 2 = PT_MA (Madeira); //3 = PT_AC (Açores)...Ver Get/countries
        }
    }
}
AtributoDescriçãoObrigatório

type

Tipo de entidade (neste caso, endereço).

Sim

addressable_type

Tipo de entidade à qual o endereço está associado (neste caso, fornecedor).

Sim

addressable_id

ID do fornecedor associado ao endereço.

Sim

address_detail

Detalhes específicos do endereço, como rua e número.

Não

city

Cidade do endereço.

Não

postcode

Código postal do endereço.

Não

region

Região do endereço (por exemplo, província, estado).

Não

country_id

ID do país do endereço (1 = Portugal Continental, 2 = Madeira, 3 = Açores).

Não

"addressable_id" - corresponde ao id da morada do cliente obtido da relação entre fornecedor e morada, através do #obter-fornecedor

Para usar outro país que não seja Portugal, poderá consultar mais informação em: Países


E-mail

Atualizar Email do Fornecedor

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

Payload
{
    "data": {
        "type": "contacts",
        "id": "17",
        "attributes": {
            "name": "A Empresa",
            "position": null,
            "phone_number": null,
            "mobile_number": null,
            "email": "geral@email.pt",
            "categories": [
                "general"
            ]
        }
    }
}

Last updated