IntroductionIntrodução
Learn how to embed verified sustainable-mobility rewards in your product through the Ecomilhas Partners API — user sessions, GPS-verified trips, cash-prize redemption and auditable company metrics. Aprenda a embarcar recompensas de mobilidade sustentável verificada no seu produto com a Partners API da Ecomilhas — sessões de usuário, trajetos verificados por GPS, resgate de prêmios e métricas auditáveis da empresa.
What is the Partners API?O que é a Partners API?
Ecomilhas turns low-carbon trips — walking, cycling, public transport, ethanol and electric vehicles — into rewards, backed by GPS validation and a GHG Protocol methodology with limited assurance by KPMG. The Partners API lets your product plug into that engine: create and authenticate end users under your company, read their verified trips and balances, offer prize redemption and pull consolidated impact metrics for ESG reporting. A Ecomilhas transforma deslocamentos de baixo carbono — a pé, bicicleta, transporte público, etanol e veículos elétricos — em recompensas, com validação por GPS e metodologia GHG Protocol com asseguração limitada da KPMG. A Partners API conecta o seu produto a esse motor: crie e autentique usuários finais sob a sua empresa, leia trajetos e saldos verificados, ofereça resgate de prêmios e extraia métricas consolidadas de impacto para o reporte ESG.
Quickstart
Three calls to real data: create an account, list trips, read company metrics.Três chamadas até o dado real: criar conta, listar viagens, ler métricas da empresa.
API referenceReferência da API
All 18 endpoints of Partners API v1, grouped by module, generated from the implementation.Os 18 endpoints da Partners API v1, agrupados por módulo, gerados a partir da implementação.
Playground
Run every call against the live sandbox, straight from your browser — no setup.Execute cada chamada no sandbox ao vivo, direto do navegador — sem configuração.
Security & complianceSegurança & conformidade
LGPD/GDPR, anti-fraud validation, KPMG-assured methodology and responsible disclosure.LGPD/GDPR, validação antifraude, metodologia assegurada pela KPMG e responsible disclosure.
AuthenticationAutenticação#
The API uses two credentials, combined per route: A API usa duas credenciais, combinadas conforme a rota:
x-api-key— identifies your company. Issued in the admin panel; required on every partner route.identifica a sua empresa. Gerada no painel administrativo; obrigatória em toda rota de parceiro.Authorization: Bearer <accessToken>— identifies the end user. Returned byPOST /auth/loginorPOST /auth/create-account; required on user routes (profile, trips, cash prizes). Renew withPOST /auth/refreshbeforeexpiresAt.identifica o usuário final. Retornado porPOST /auth/loginouPOST /auth/create-account; obrigatório nas rotas de usuário (perfil, viagens, cash prizes). Renove comPOST /auth/refreshantes deexpiresAt.
# Base URL https://ecomilhas-api-h-homologation.up.railway.app # Conventions Versioning: path (/partners/v1) Dates: ISO 8601 Lists: paginated (?page=1&limit=20)
Quickstart#
Three calls take you from zero to real data. Every request below runs against the live environment — you can also fire them from the playground without writing code. Três chamadas levam você do zero ao dado real. Toda requisição abaixo roda no ambiente ao vivo — você também pode dispará-las pelo playground sem escrever código.
# Creates the end user and links them to your company (the x-api-key owner) curl -X POST https://ecomilhas-api-h-homologation.up.railway.app/partners/v1/auth/create-account \ -H "x-api-key: $ECOMILHAS_KEY" \ -H "Content-Type: application/json" \ -d '{ "email": "novo.usuario@exemplo.com", "password": "senha-forte-123", "username": "Nome do Usuário" }' # 201 → {"userId": 12345, "accessToken": "eyJ…", "refreshToken": "…", "expiresAt": "2026-08-18T18:00:00Z"}
# Verified trips of the authenticated user (GPS-validated, paginated) curl "https://ecomilhas-api-h-homologation.up.railway.app/partners/v1/user/trips?page=1&limit=20" \ -H "x-api-key: $ECOMILHAS_KEY" \ -H "Authorization: Bearer $ACCESS_TOKEN" # 200 → { "elements": [{ "id": 101, "ecomilesValue": 12.5, "primaryVehicleType": "bicycle", "totalDistanceMeters": 4200, "wasAllApproved": true }], "totalElements": 1 }
# Company dashboard: users, monthly trips and avoided CO2 (approved trips) curl "https://ecomilhas-api-h-homologation.up.railway.app/partners/v1/metrics?year=2026&month=9" \ -H "x-api-key: $ECOMILHAS_KEY" # 200 → { "usersCount": 142, "tripsSubmittedCount": 318, "avoidedCo2Tons": 1.234 }
Integration pathsCaminhos de integração#
You don't need an engineering team to start. Pick the path that fits your organization today and upgrade later — everything runs on the same platform. Você não precisa de time de engenharia para começar. Escolha o caminho que cabe na sua organização hoje e evolua depois — tudo roda na mesma plataforma.
- Program without ITPrograma sem TI
For HR, benefits and sustainability teams: your people use the Ecomilhas app, you follow results in the business dashboard. No integration, live in weeks. Talk to our team →Para times de RH, benefícios e sustentabilidade: seus colaboradores usam o app Ecomilhas e você acompanha os resultados no painel business. Sem integração, no ar em semanas. Falar com nosso time →
- Deep link into the Ecomilhas appDeep link para o app Ecomilhas
Your product creates the session and hands the user off to the Ecomilhas app already signed in, via single-use magic link (
POST /auth/app-link-token). Minimal code, full experience.Seu produto cria a sessão e entrega o usuário no app Ecomilhas já autenticado, via link mágico de uso único (POST /auth/app-link-token). Pouco código, experiência completa. - Full APIAPI completa
For engineering teams: build your own experience with the endpoints below — sessions, trips, prizes and metrics inside your product. Request keys →Para times de engenharia: construa sua própria experiência com os endpoints abaixo — sessões, viagens, prêmios e métricas dentro do seu produto. Solicitar chaves →
Typical journey: conversation → sandbox keys with synthetic data → pilot with a real group → production rollout with support and auditable reporting. Jornada típica: conversa → chaves de sandbox com dados sintéticos → piloto com um grupo real → rollout de produção com suporte e reporte auditável.
API referenceReferência da API#
REST, path-versioned (/partners/v1), ISO 8601 dates, paginated lists. Generated from the implementation — always in sync with the code. Try every call in the playground.
REST, versionamento por path (/partners/v1), datas ISO 8601, listas paginadas. Gerada a partir da implementação — sempre em sincronia com o código. Teste cada chamada no playground.
Auth
x-api-key.Sessões do usuário final sob a sua empresa. Exige x-api-key.| POST | /partners/v1/auth/login | E-mail + password → accessToken/refreshTokenE-mail + senha → accessToken/refreshToken |
| POST | /partners/v1/auth/create-account | Create the end user and auto-link to your companyCria o usuário final e vincula automaticamente à sua empresa |
| POST | /partners/v1/auth/refresh | Swap a refreshToken for a new sessionTroca o refreshToken por uma nova sessão |
| POST | /partners/v1/auth/logout | Invalidate the current sessionInvalida a sessão atual |
| POST | /partners/v1/auth/forgot-password | Start password recovery by e-mailInicia a recuperação de senha por e-mail |
| POST | /partners/v1/auth/reset-password | Set a new password with the received codeDefine nova senha com o código recebido |
Deep link
| POST | /partners/v1/auth/app-link-token | Single-use magic-link code (~5 min) to open the app signed inCódigo de uso único (~5 min) para abrir o app já autenticado |
| GET | /partners/v1/auth/app-link | Browser opening of the magic link (302 to app / store)Abertura do link mágico no navegador (302 para app / loja) |
| POST | /partners/v1/auth/app-link/exchange | Exchange the code for a session (called by the Ecomilhas app)Troca o código por uma sessão (chamado pelo app Ecomilhas) |
User & tripsUsuário & viagens
x-api-key + Bearer.Exige x-api-key + Bearer.| GET | /partners/v1/user/me | Profile, linked company, ecomiles and wallet balancePerfil, empresa vinculada, ecomilhas e saldo da carteira |
| PATCH | /partners/v1/user/me | Update name, e-mail and/or phoneAtualiza nome, e-mail e/ou telefone |
| GET | /partners/v1/user/trips | GPS-verified trips, paginatedViagens verificadas por GPS, com paginação |
| GET | /partners/v1/user/trips/{id} | Detail of one trip of the authenticated userDetalhe de uma viagem do usuário autenticado |
Cash prizes
x-api-key + Bearer. Redemption respects a minimum window between redemptions (default 1 day, configurable per company; early retries return 422 with nextRedeemAt).Vitrine de prêmios e resgate. Exige x-api-key + Bearer. O resgate respeita janela mínima entre resgates (padrão 1 dia, configurável por empresa; tentativas antecipadas retornam 422 com nextRedeemAt).| GET | /partners/v1/cash-prizes | Prizes available for redemptionPrêmios disponíveis para resgate |
| POST | /partners/v1/cash-prizes/{id}/redeem | Redeem a prizeResgata um prêmio |
| GET | /partners/v1/cash-prizes/redemption-history | Redemption history, paginatedHistórico de resgates, com paginação |
Company & opsEmpresa & operação
| GET | /partners/v1/metrics | Users, monthly trips and avoided CO2 (tons) — x-api-key onlyUsuários, trajetos do mês e CO2 evitado (t) — só x-api-key |
| GET | /partners/v1/status | Health check — no auth requiredHealth check — sem autenticação |
Webhooks#
X-Ecomilhas-Signature) with exponential-backoff retries for up to 24h.
Planejado — próximo módulo do roadmap. Eventos serão assinados com HMAC-SHA256 (X-Ecomilhas-Signature), com retry em backoff exponencial por até 24h.
Security & complianceSegurança & conformidade#
- LGPD / GDPR — data minimization, deletion propagation; companies only ever see aggregates — never raw location.minimização de dados, propagação de exclusão; empresas só veem agregados — nunca localização bruta.
- GHG Protocol + MRV — versioned emission factors per modal/region; every tCO2e traceable to its trips. Methodology with limited assurance by KPMG.fatores de emissão versionados por modal/região; cada tCO2e rastreável até seus trajetos. Metodologia com asseguração limitada da KPMG.
- Anti-fraud — speed-vs-modal checks, spatio-temporal dedup, idempotency by external id, two-factor identity on the app.validação velocidade × modal, deduplicação espaço-temporal, idempotência por id externo, identidade com dois fatores no app.
- Mastercard MDES — card provisioning through network standards; the PAN is never exposed to partners.provisioning do cartão pelos padrões da bandeira; o PAN nunca é exposto a parceiros.
- Rate limiting & sandbox — tiered quotas and a full test environment before production keys.cotas por tier e ambiente de testes completo antes das chaves de produção.
- Hardened by default — TLS everywhere and strict security headers (CSP, X-Frame-Options, nosniff) on this portal.TLS em tudo e security headers estritos (CSP, X-Frame-Options, nosniff) neste portal.
- Responsible disclosure — found a vulnerability? See security.txt or write to contato@ecomiles.app.encontrou uma vulnerabilidade? Veja o security.txt ou escreva para contato@ecomiles.app.
PricingPreços#
Pricing scales with the volume of trips processed per month. Each tier includes a monthly fee; trips above the contracted tier are billed per trip at the overage rate. Values in euros. O preço escala com o volume de trajetos processados por mês. Cada faixa tem uma mensalidade; trajetos acima da faixa contratada são cobrados por trajeto, na tarifa de excedente. Valores em euro.
| Monthly volumeVolume mensal | Monthly feeMensalidade | Overage pricePreço por excedente |
|---|---|---|
| Up to 10,000 tripsAté 10.000 trajetos | € 500 | € 0,0100 |
| Up to 100,000 tripsAté 100.000 trajetos | € 1.000 | € 0,0075 |
| Up to 500,000 tripsAté 500.000 trajetos | € 1.500 | € 0,0050 |
| Up to 2,000,000 tripsAté 2.000.000 de trajetos | € 2.000 | € 0,0035 |
| Over 2,000,000 trips+2.000.000 de trajetos | € 2.500 | € 0,0025 |
| Setup & SandboxSetup e Sandbox | € 1.000 | — |
| Customer success & supportsuporte | 20h/month included20h/mês incluso | € 50/h |
Setup & Sandbox is a one-time fee and includes test keys, synthetic data and onboarding. For pricing in BRL, annual agreements or enterprise volumes, contact contato@ecomiles.app. Setup e Sandbox é cobrança única e inclui chaves de teste, dados sintéticos e onboarding. Para valores em reais, contratos anuais ou volumes enterprise, fale com contato@ecomiles.app.
Roadmap#
Partners API v1 is live: auth, deep links, users & trips, cash prizes and company metrics. The next modules, in order: A Partners API v1 está no ar: auth, deep links, usuário & viagens, cash prizes e métricas da empresa. Os próximos módulos, em ordem:
Partners API v1
Auth, deep link, user & trips, cash prizes, metrics.Auth, deep link, usuário & viagens, cash prizes, métricas.
InventoryInventário
CO2e Inventory API (4 MVP endpoints) + export for ESG platforms.API de Inventário CO2e (4 endpoints MVP) + export para plataformas ESG.
Trips & Balance + Webhooks
Write APIs for trips and balance, plus the webhook layer.APIs de escrita de trajetos e saldo, mais a camada de webhooks.
Widget & Wallet
White-label widget/SDK and Mastercard push provisioning.Widget/SDK white-label e push provisioning Mastercard.
SupportSuporte#
Technical supportSuporte técnico
developers@ecomiles.app — keys, integration questions, design-partner program.chaves, dúvidas de integração, programa de design partners.
Business contactComercial
contato@ecomiles.app — programs without IT, pilots and partnerships.programas sem TI, pilotos e parcerias.
Extended guidesGuias completos
Deep-dive docs, methodology notes and integration playbooks.Docs detalhadas, notas de metodologia e playbooks de integração.
Business panel
Dashboards, redemption history and program management for companies.Dashboards, histórico de resgates e gestão do programa para empresas.