# Broto api staging [swagger](https://mcstaging.broto.com.br/api-docs)
## 1 Autenticação (Fabricante e Revenda)
Cada usuário possui um token que esta associado ao perfil fabricante ou revenda. Com a posse do token, coloque-o no header da página do swagger e clique em `apply` conforme o exemplo abaixo:

## 2 Cotações
### 2.1 List`ar todas as cotações
[webjumpMultisellerDropshipApiNegotiableQuoteServiceV1GetListPost](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1GetListPost)
Clique em `Try it out` e depois em `Execute`.
**Essa requisição não precisa de nenhum parâmetro**
Retorna uma lista com todas as cotações associadas ao fabricante ou a revenda, dependendo do perfil que o usuário estiver logado (fabricante, revenda). Confira o exemplo de retorno abaixo:
``` json
[
{
"vendor_quote_id": "string",
"udropship_vendor": "string",
"status": "string",
"quote_id": "string",
"product_sku": "string",
"product_name": "string",
"product_id": "string",
"customer_email": "string",
"customer_firstname": "string",
"customer_lastname": "string"
}
]
```
Para deixar essa documentação mais objetiva, a partir desse ponto vou omitir os passos que descrevem o clique em `Try it out` e `Execute`.
### 2.2 Listar uma cotação
[webjumpMultisellerDropshipApiNegotiableQuoteServiceV1FindGet](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1FindGet)
Preencher o parâmetro `quoteId` com o `id` da cotação.
Retorna a cotação especificada no `id`. Confira o exemplo de retorno abaixo:
``` json
{
"street": "string",
"city": "string",
"region": "string",
"postcode": "string",
"country_id": "string",
"telephone": "string",
"email": "string",
"vendor_quote_id": "string",
"udropship_vendor": "string",
"status": "string",
"quote_id": "string",
"product_sku": "string",
"product_name": "string",
"product_id": "string",
"customer_email": "string",
"customer_firstname": "string",
"customer_lastname": "string"
}
```
### 2.3 Associar cotação com revenda
[webjumpMultisellerDropshipApiNegotiableQuoteServiceV1AssignPost](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1AssignPost)
Atualmente já existe uma auto associação da cotação com a revenda, caso a mesma esteja associada com a região que a cotação foi solicitada. Caso a cotação tenha sido feita para uma região onde não existe revenda cadastrada, existe a possibilidade de associar a cotação com uma revenda manualmente. Operação não permitida para usuários com perfil revenda.
Preencher json com `quoteId` e `subVendorId` para fazer a associação
``` json
{
"quoteId": "string",
"subVendorId": "string"
}
```
Resposta da api em caso de sucesso
``` json
{
"vendor_quote_id": "string",
"udropship_vendor": "string",
"status": "string",
"quote_id": "string",
"product_sku": "string",
"product_name": "string",
"product_id": "string",
"customer_email": "string",
"customer_firstname": "string",
"customer_lastname": "string"
}
```
### 2.4 Responder uma cotação
[webjumpMultisellerDropshipApiNegotiableQuoteServiceV1SendCommentPost](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1SendCommentPost)
Preencher o campo `quoteId` para informar qual cotação está sendo respondida. No corpo da requisição na chave `comment` informar qual é o comentário que deve ser enviado. Segue exemplo abaixo.
``` json
{
"comment": "string"
}
```
Resposta em caso de sucesso
``` json
{
"entity_id": 0,
"parent_id": 0,
"creator_type": 0,
"is_decline": 0,
"is_draft": 0,
"creator_id": 0,
"comment": "string",
"created_at": "string",
"extension_attributes": {},
"attachments": [
{
"attachment_id": 0,
"comment_id": 0,
"file_name": "string",
"file_path": "string",
"file_type": "string",
"extension_attributes": {}
}
]
}
```
### 2.5 Listar os comentários da cotação
[webjumpMultisellerDropshipApiNegotiableQuoteServiceV1GetQuoteCommentsGet](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1GetQuoteCommentsGet)
Preencher o campo `quoteId` para informar de qual cotação os comentários serão listados.
Resposta da requisição
``` json
[
{
"entity_id": 0,
"parent_id": 0,
"creator_type": 0,
"is_decline": 0,
"is_draft": 0,
"creator_id": 0,
"comment": "string",
"created_at": "string",
"extension_attributes": {},
"attachments": [
{
"attachment_id": 0,
"comment_id": 0,
"file_name": "string",
"file_path": "string",
"file_type": "string",
"extension_attributes": {}
}
]
}
]
```
### 2.6 Enviar proposta para uma cotação
[webjumpMultisellerDropshipApiNegotiableQuoteServiceV1SendProposalToCustomerPost](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1/webjumpMultisellerDropshipApiNegotiableQuoteServiceV1SendProposalToCustomerPost)
Preencher o campo `quoteId`, `quotePrice` referente ao preço da proposta, e informar no campo `quoteFile` os dados do arquivo que está sendo enviado. Sempre prefira enviar a proposta no arquivo PDF conforme o exemplo abaixo.
``` json
{
"quoteId": "0000",
"quotePrice": 0,
"quoteFile": [
{
"base64_encoded_data": "JVBERi0xLjMNCiXi48/TDQoNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL091dGxpbmVzIDIgMCBSDQovUGFnZXMgMyAwIFINCj4+DQplbmRvYmoNCg0KMiAwIG9iag0KPDwNCi9UeXBlIC9PdXRsaW5lcw0KL0NvdW50IDANCj4+DQplbmRvYmoNCg0KMyAwIG9iag0KPDwNCi9UeXBlIC9QYWdlcw0KL0NvdW50IDINCi9LaWRzIFsgNCAwIFIgNiAwIFIgXSANCj4+DQplbmRvYmoNCg0KNCAwIG9iag0KPDwNCi9UeXBlIC9QYWdlDQovUGFyZW50IDMgMCBSDQovUmVzb3VyY2VzIDw8DQovRm9udCA8PA0KL0YxIDkgMCBSIA0KPj4NCi9Qcm9jU2V0IDggMCBSDQo+Pg0KL01lZGlhQm94IFswIDAgNjEyLjAwMDAgNzkyLjAwMDBdDQovQ29udGVudHMgNSAwIFINCj4+DQplbmRvYmoNCg0KNSAwIG9iag0KPDwgL0xlbmd0aCAxMDc0ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBBIFNpbXBsZSBQREYgRmlsZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIFRoaXMgaXMgYSBzbWFsbCBkZW1vbnN0cmF0aW9uIC5wZGYgZmlsZSAtICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjY0LjcwNDAgVGQNCigganVzdCBmb3IgdXNlIGluIHRoZSBWaXJ0dWFsIE1lY2hhbmljcyB0dXRvcmlhbHMuIE1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NTIuNzUyMCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDYyOC44NDgwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjE2Ljg5NjAgVGQNCiggdGV4dC4gQW5kIG1vcmUgdGV4dC4gQm9yaW5nLCB6enp6ei4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNjA0Ljk0NDAgVGQNCiggbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDU5Mi45OTIwIFRkDQooIEFuZCBtb3JlIHRleHQuIEFuZCBtb3JlIHRleHQuICkgVGoNCkVUDQpCVA0KL0YxIDAwMTAgVGYNCjY5LjI1MDAgNTY5LjA4ODAgVGQNCiggQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA1NTcuMTM2MCBUZA0KKCB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBFdmVuIG1vcmUuIENvbnRpbnVlZCBvbiBwYWdlIDIgLi4uKSBUag0KRVQNCmVuZHN0cmVhbQ0KZW5kb2JqDQoNCjYgMCBvYmoNCjw8DQovVHlwZSAvUGFnZQ0KL1BhcmVudCAzIDAgUg0KL1Jlc291cmNlcyA8PA0KL0ZvbnQgPDwNCi9GMSA5IDAgUiANCj4+DQovUHJvY1NldCA4IDAgUg0KPj4NCi9NZWRpYUJveCBbMCAwIDYxMi4wMDAwIDc5Mi4wMDAwXQ0KL0NvbnRlbnRzIDcgMCBSDQo+Pg0KZW5kb2JqDQoNCjcgMCBvYmoNCjw8IC9MZW5ndGggNjc2ID4+DQpzdHJlYW0NCjIgSg0KQlQNCjAgMCAwIHJnDQovRjEgMDAyNyBUZg0KNTcuMzc1MCA3MjIuMjgwMCBUZA0KKCBTaW1wbGUgUERGIEZpbGUgMiApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY4OC42MDgwIFRkDQooIC4uLmNvbnRpbnVlZCBmcm9tIHBhZ2UgMS4gWWV0IG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NzYuNjU2MCBUZA0KKCBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSB0ZXh0LiBBbmQgbW9yZSApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY2NC43MDQwIFRkDQooIHRleHQuIE9oLCBob3cgYm9yaW5nIHR5cGluZyB0aGlzIHN0dWZmLiBCdXQgbm90IGFzIGJvcmluZyBhcyB3YXRjaGluZyApIFRqDQpFVA0KQlQNCi9GMSAwMDEwIFRmDQo2OS4yNTAwIDY1Mi43NTIwIFRkDQooIHBhaW50IGRyeS4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gQW5kIG1vcmUgdGV4dC4gKSBUag0KRVQNCkJUDQovRjEgMDAxMCBUZg0KNjkuMjUwMCA2NDAuODAwMCBUZA0KKCBCb3JpbmcuICBNb3JlLCBhIGxpdHRsZSBtb3JlIHRleHQuIFRoZSBlbmQsIGFuZCBqdXN0IGFzIHdlbGwuICkgVGoNCkVUDQplbmRzdHJlYW0NCmVuZG9iag0KDQo4IDAgb2JqDQpbL1BERiAvVGV4dF0NCmVuZG9iag0KDQo5IDAgb2JqDQo8PA0KL1R5cGUgL0ZvbnQNCi9TdWJ0eXBlIC9UeXBlMQ0KL05hbWUgL0YxDQovQmFzZUZvbnQgL0hlbHZldGljYQ0KL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcNCj4+DQplbmRvYmoNCg0KMTAgMCBvYmoNCjw8DQovQ3JlYXRvciAoUmF2ZSBcKGh0dHA6Ly93d3cubmV2cm9uYS5jb20vcmF2ZVwpKQ0KL1Byb2R1Y2VyIChOZXZyb25hIERlc2lnbnMpDQovQ3JlYXRpb25EYXRlIChEOjIwMDYwMzAxMDcyODI2KQ0KPj4NCmVuZG9iag0KDQp4cmVmDQowIDExDQowMDAwMDAwMDAwIDY1NTM1IGYNCjAwMDAwMDAwMTkgMDAwMDAgbg0KMDAwMDAwMDA5MyAwMDAwMCBuDQowMDAwMDAwMTQ3IDAwMDAwIG4NCjAwMDAwMDAyMjIgMDAwMDAgbg0KMDAwMDAwMDM5MCAwMDAwMCBuDQowMDAwMDAxNTIyIDAwMDAwIG4NCjAwMDAwMDE2OTAgMDAwMDAgbg0KMDAwMDAwMjQyMyAwMDAwMCBuDQowMDAwMDAyNDU2IDAwMDAwIG4NCjAwMDAwMDI1NzQgMDAwMDAgbg0KDQp0cmFpbGVyDQo8PA0KL1NpemUgMTENCi9Sb290IDEgMCBSDQovSW5mbyAxMCAwIFINCj4+DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg==",
"type": "application/pdf",
"name": "teste.pdf",
"extension_attributes": {}
}
]
}
```
Resposta em caso de sucesso.
```json
"Your quotation was success send"
```
## 3 Revendas
### 3.1 Listar todas as revendas
[webjumpMultisellerDropshipApiSellerServiceV1GetListGet](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiSellerServiceV1/webjumpMultisellerDropshipApiSellerServiceV1GetListGet)
Para obter a lista de revendas é necessário estar logado com um usuário que tenha o perfil Fabricante.
**Essa requisição não precisa de nenhum parâmetro**
``` json
[
{
"entity_id": "string",
"vendor_name": "string",
"email": "string",
"telephone": "string",
"street": "string",
"city": "string",
"country_id": "string",
"vendor_id": "string"
}
]
```
### 3.2 Associar revenda com região
[webjumpMultisellerDropshipApiSellerServiceV1AssociateCountiesPost](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiSellerServiceV1/webjumpMultisellerDropshipApiSellerServiceV1AssociateCountiesPost)
Requisição que associa revenda com uma região. A api não permite duas revendas associadas a mesma região.
``` json
{
"subVendorId": "string",
"countiesCodes": [
"string"
]
}
```
Resposta caso sucesso
``` json
true
```
## 4 Regiões
### 4.1 Filtro de regiões
[webjumpMultisellerDropshipApiCountyServiceV1GetListGet](https://mcstaging.broto.com.br/swagger#/webjumpMultisellerDropshipApiCountyServiceV1/webjumpMultisellerDropshipApiCountyServiceV1GetListGet)
* Listar por nome do município (usando query params)
```json
https://mcstaging.broto.com.br/rest/all/V1/multiseller-api/regions/counties/search?searchCriteria[filterGroups][0][filters][0][field]=nome_municipio&searchCriteria[filterGroups][0][filters][0][value]=São Paulo
```
Resposta em caso de sucesso
```json
[
{
"entity_id": "string",
"uf": "string",
"extension_attributes": {},
"nome_uf": "string",
"microrregiao_geografica": "string",
"nome_microrregiao": "string",
"municipio": "string",
"codigo_municipio_completo": "string",
"nome_municipio": "string"
}
]
```
* Listar por código do município (usando query params)
```json
https://mcstaging.broto.com.br/rest/all/V1/multiseller-api/regions/counties/search?searchCriteria[filterGroups][0][filters][0][field]=codigo_municipio_completo&searchCriteria[filterGroups][0][filters][0][value]=3547809
```
Resposta em caso de sucesso
```json
[
{
"entity_id": "string",
"uf": "string",
"extension_attributes": {},
"nome_uf": "string",
"microrregiao_geografica": "string",
"nome_microrregiao": "string",
"municipio": "string",
"codigo_municipio_completo": "string",
"nome_municipio": "string"
}
]
```