Orçamentos

Um orçamento precisa especificar os seguintes campos:

  • city: Inteiro que identifica a cidade. As seguintes opções estão disponíves:
    • “1” para São Paulo;
    • “2” para Rio de Janeiro.
  • package_type: Tipo de pacote a ser entregue, pode ser:
    • “document”: entrega de envelopes;
    • “box”: caixa pequena, com dimensões de até 15 cm x 15 cm x 15 cm;
    • “medium_box”: caixa média, com dimensões de até 20 cm x 20 cm x 20 cm;
    • “large_box”: caixa grande, com dimensões de até 42 cm x 44 cm x 32 cm.
  • waypoints: Array com 2 ou mais pontos definindo um trajeto, ver Address Waypoint.

  • transport_type: Inteiro que pode ser 1 (moto) ou 2 (bicicleta)

  • slo: Inteiro que representa o modo de entrega a ser usado, opcional. Pode ser:
    • “1”: entrega já (padrão);
    • “2”: entrega expressa, será finalizada em até quatro horas.

Exemplo de requisição:

POST https://staging.loggi.com/api/v1/endereco/orcamento/

Exemplo do corpo da requisição:

{
    "city": 1,
    "package_type": "document",
    "payment_method": 3225,
    "transport_type": 1,
    "slo": 1,
    "waypoints": [
        {
            "by": "cep",
            "query": {
                "cep": "05135400",
                "instructions": "Retirar pacote 182 com Silvio.",
                "number": 77
            }
        },
        {
            "by": "address",
            "query": {
                "address": "Angélica",
                "address_complement": "cj. 124",
                "category": "Avenida",
                "instructions": "Deixar pacote 182 com Celina.",
                "number": 2491
            }
        }
    ]
}

Um examplo de resposta:

{
    "city": 1,
    "city_name": "São Paulo",
    "customer": {
        "email": "joao+emitter@loggi.com",
        "name": "Joao Paulo Dubas Emitter",
        "sales_person": "Nenhum",
        "telephone_number": "11654324684"
    },
    "driver": null,
    "id": "0395fe56-431b-11e4-bac1-d69cafa339a4",
    "path_suggested_gencoded": "tflnChpi|GxATf@JLOn@q@j@g@bBw@nB{Ax@q@PBxBh@rEnApA\\\\n@JxALpD^`ALx@Dt@EtBUzC_@^O`AWtCO|@BjAD^@L?\\\\@?_B?EBKFICg@HWpAmCHSNs@J}ACw@m@uDGeAH{CViG?g@XqGH_BPcA\\\\y@j@}@F]CWOc@S[M]Ms@CmAFuCBeF?gB@qALgBFu@PeA^mBn@eE\\\\aB?M^yBb@yATcA?Gf@eAjDiFfAkAnAy@nAm@fA[dCa@tCi@`@I|EaAjB]dAKh@DZFBJNNP`@@^ALI\\\\UXWLWBYGg@Si@}@i@oA[s@_@aAmAyCoBcEaCsF]i@o@u@}K{GaDqBm@k@gAuAk@gAa@cAg@yBIi@QcCCmAHwDJ{Df@kP\\\\kMBuA?o@HgGAmGWoGc@kIq@mQIyDk@{PCwB?mBFqAHwAL}@XyBl@gHtCwUjB{Qr@aG`@qBp@wB\\\\w@h@kAZg@tAmBzFaJbAeBl@mAp@mBf@sB^sBP_BB]LW@GPyAl@oFFUp@_LlAkRDoAH_Ep@oDXmCJ_GH_BXeDl@mIXeEJgDJyBPsC|@_NL]Nq@Nk@NU`A{@lAeAPCZBHBTZ`AbAzGvGdBbBbBfBx@t@l@`@~AbAp@ZbD|@zAVhEt@xLrB`BRpDF|@CdBAzB?R?FIVUv@u@z@{@dDkAVEL@H@LD?SPsDB[Tq@zAuCz@mBvBsEdFmKl@oAdARjAV~I~A`KrB~AZtHjB~GnBxC~@dJtD`E`B|DtAjA`@rAl@tEpB`FzBxIdDdAb@f@d@xElE",
    "payment": {
        "captured": null,
        "captured_at": null,
        "method": "FinanceiroEmitter",
        "type": "b"
    },
    "pricing": {
        "applied_bonuses": [],
        "bonuses": "20.00",
        "discount": "20.00",
        "id": 42655,
        "inquiry": "0395fe56-431b-11e4-bac1-d69cafa339a4",
        "sum_ride_cm": "36.77",
        "sum_wait_cm": "0.00",
        "total_cm": "36.77",
        "total_cm_gross": "36.77"
    },
    "slo": 1,
    "total_time": null,
    "transport_type": "1",
    "waypoints": [
        {
            "address_complement": "",
            "address_data": {
                "address_components": [
                    {
                        "long_name": "77",
                        "short_name": "77",
                        "types": [
                            "street_number"
                        ]
                    },
                    {
                        "long_name": "Rua Adalberto Melo Lucena",
                        "short_name": "Rua Adalberto Melo Lucena",
                        "types": [
                            "route"
                        ]
                    },
                    {
                        "long_name": "Vila Guedes",
                        "short_name": "Vila Guedes",
                        "types": [
                            "neighborhood",
                            "political"
                        ]
                    },
                    {
                        "long_name": "São Paulo",
                        "short_name": "São Paulo",
                        "types": [
                            "locality",
                            "political"
                        ]
                    },
                    {
                        "long_name": "São Paulo",
                        "short_name": "São Paulo",
                        "types": [
                            "administrative_area_level_2",
                            "political"
                        ]
                    },
                    {
                        "long_name": "São Paulo",
                        "short_name": "SP",
                        "types": [
                            "administrative_area_level_1",
                            "political"
                        ]
                    },
                    {
                        "long_name": "Brazil",
                        "short_name": "BR",
                        "types": [
                            "country",
                            "political"
                        ]
                    },
                    {
                        "long_name": "05135-400",
                        "short_name": "05135-400",
                        "types": [
                            "postal_code"
                        ]
                    }
                ],
                "formatted_address": "Rua Adalberto Melo Lucena, 77 - Vila Guedes, São Paulo - São Paulo, 05135-400, Brazil",
                "geometry": {
                    "location": {
                        "lat": -23.496901999999999,
                        "lng": -46.748415399999999
                    },
                    "location_type": "ROOFTOP",
                    "viewport": {
                        "northeast": {
                            "lat": -23.495553019708499,
                            "lng": -46.747066419708503
                        },
                        "southwest": {
                            "lat": -23.498250980291498,
                            "lng": -46.749764380291502
                        }
                    }
                },
                "partial_match": true,
                "types": [
                    "street_address"
                ]
            },
            "address_formatted": "Rua Adalberto Melo Lucena, 77",
            "address_number": "77",
            "address_st": "Rua Adalberto Melo Lucena",
            "arrived_at": null,
            "arrived_pos": null,
            "arrived_pos_distance": null,
            "billable_minutes": 0,
            "canceled": false,
            "city": "São Paulo",
            "completed_at": null,
            "completed_contact_id": null,
            "completed_contact_name": null,
            "completed_pos": null,
            "completed_pos_distance": null,
            "completed_status": 1,
            "e_receipt": {
                "contact_id": null,
                "contact_name": null,
                "signature": "http://media.development.loggi.com:8081/",
                "status": "Não disponível",
                "status_code": 1
            },
            "favorite": null,
            "google_maps_id": null,
            "id": 98403,
            "index": 0,
            "instructions": "Retirar pacote 182 com Silvio.",
            "leg_distance": 16722,
            "leg_time": 1435,
            "notes": null,
            "pos": "POINT (-46.7484153999999990 -23.4969019999999986)",
            "referees": [],
            "state": "São Paulo",
            "vicinity": "Vila Guedes",
            "zip": "05135-400"
        },
        {
            "address_complement": "cj. 124",
            "address_data": {
                "address_components": [
                    {
                        "long_name": "2491",
                        "short_name": "2491",
                        "types": [
                            "street_number"
                        ]
                    },
                    {
                        "long_name": "Avenida Angélica",
                        "short_name": "Avenida Angélica",
                        "types": [
                            "route"
                        ]
                    },
                    {
                        "long_name": "Bela Vista",
                        "short_name": "Bela Vista",
                        "types": [
                            "neighborhood",
                            "political"
                        ]
                    },
                    {
                        "long_name": "São Paulo",
                        "short_name": "São Paulo",
                        "types": [
                            "locality",
                            "political"
                        ]
                    },
                    {
                        "long_name": "São Paulo",
                        "short_name": "São Paulo",
                        "types": [
                            "administrative_area_level_2",
                            "political"
                        ]
                    },
                    {
                        "long_name": "São Paulo",
                        "short_name": "SP",
                        "types": [
                            "administrative_area_level_1",
                            "political"
                        ]
                    },
                    {
                        "long_name": "Brazil",
                        "short_name": "BR",
                        "types": [
                            "country",
                            "political"
                        ]
                    },
                    {
                        "long_name": "01227-200",
                        "short_name": "01227-200",
                        "types": [
                            "postal_code"
                        ]
                    }
                ],
                "formatted_address": "Avenida Angélica, 2491 - Bela Vista, São Paulo - São Paulo, 01227-200, Brazil",
                "geometry": {
                    "bounds": {
                        "northeast": {
                            "lat": -23.553706500000001,
                            "lng": -46.662235000000003
                        },
                        "southwest": {
                            "lat": -23.5537174,
                            "lng": -46.662249000000003
                        }
                    },
                    "location": {
                        "lat": -23.5537174,
                        "lng": -46.662235000000003
                    },
                    "location_type": "RANGE_INTERPOLATED",
                    "viewport": {
                        "northeast": {
                            "lat": -23.552362969708501,
                            "lng": -46.660893019708503
                        },
                        "southwest": {
                            "lat": -23.5550609302915,
                            "lng": -46.663590980291502
                        }
                    }
                },
                "types": [
                    "street_address"
                ]
            },
            "address_formatted": "Avenida Angélica, 2491 - cj. 124",
            "address_number": "2491",
            "address_st": "Avenida Angélica",
            "arrived_at": null,
            "arrived_pos": null,
            "arrived_pos_distance": null,
            "billable_minutes": 0,
            "canceled": false,
            "city": "São Paulo",
            "completed_at": null,
            "completed_contact_id": null,
            "completed_contact_name": null,
            "completed_pos": null,
            "completed_pos_distance": null,
            "completed_status": 1,
            "e_receipt": {
                "contact_id": null,
                "contact_name": null,
                "signature": "http://media.development.loggi.com:8081/",
                "status": "Não disponível",
                "status_code": 1
            },
            "favorite": null,
            "google_maps_id": null,
            "id": 98404,
            "index": 1,
            "instructions": "Deixar pacote 182 com Celina.",
            "leg_distance": 0,
            "leg_time": 0,
            "notes": null,
            "pos": "POINT (-46.6622350000000026 -23.5537174000000000)",
            "referees": [],
            "state": "São Paulo",
            "vicinity": "Bela Vista",
            "zip": "01227-200"
        }
    ]
}

Código promocional

Para associar um código promocional a um orçamento é necessário fornecer as seguintes informações:

  • key: string que representa o código promocional.
  • inquiry: string com id do orçamento.

Exemplo de requisição:

POST https://staging.loggi.com/api/v1/bonus/aplicar/

Exemplo de corpo da requisição:

{
    "inquiry": "8d2e9330-3f65-11e4-bdaa-a291bf670117",
    "key": "VEMPRALOGGI-2014"
}

Resposta

Quando bem sucedida, a resposta da requisição é um objeto de precificação, com o bônus sugerido, por exemplo:

{
    "applied_bonuses": [
        {
            "discount": "20.00",
            "key": "VEMPRALOGGI-2014",
            "usercode": 1
        }
    ],
    "bonuses": "20.00",
    "discount": "20.00",
    "id": 42656,
    "inquiry": "0395fe56-431b-11e4-bac1-d69cafa339a4",
    "sum_ride_cm": "36.77",
    "sum_wait_cm": "0.00",
    "total_cm": "16.77",
    "total_cm_gross": "36.77"
}

Erro

Ao associar um código promocional inexistente, o sistema retorna uma resposta com status_code 400 e o formato:

{
    "errors": {
        "__all__": [
            "Não foi possível associar o usuário Joao Paulo Dubas Emitter ao cupom INEXISTENTE."
        ]
    }
}

Ao associar um código promocional expirado, ou sem estoque, o sistema retorna uma resposta com status_code 400 e o formato:

{
    "errors": {
        '__all__': ["Cupom vencido.", "Cupom esgotado."]
    }
}