> ## Documentation Index
> Fetch the complete documentation index at: https://userepass.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Jornada do cliente por trás da atribuição

> Reconstrói a jornada do cliente: a sequência de toques (cliques em links de afiliados e cupom) e a distribuição de crédito entre os afiliados que levou à atribuição da conversão.



## OpenAPI

````yaml /openapi.json get /conversions/{conversionId}/journey
openapi: 3.1.0
info:
  title: Repass API
  description: >-
    API pública do Repass — plataforma de gestão de afiliados: programas, links,
    tracking, atribuição, conversões, comissões, payouts, fiscal (BR),
    reprocessamento, event store e webhooks.
  version: 0.1.0
servers:
  - url: https://api.userepass.com
    description: Produção
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: Profile
    description: Perfil do usuário autenticado.
  - name: Guide
    description: >-
      Guia de onboarding do painel: estado de tours, telas visitadas e
      preferências por usuário e organização.
  - name: Portal
    description: >-
      Portal do afiliado: sessão por identidade de afiliado (sem org), convites
      e claim.
  - name: Programs
    description: 'Programas de afiliados: configuração, atribuição, hold e tiers.'
  - name: Commission Rules
    description: Regras de comissão versionadas (imutáveis) por programa.
  - name: Affiliates
    description: 'Ciclo de vida do afiliado: cadastro, aprovação, tier, saldo.'
  - name: Terms
    description: Termos do programa, versionados.
  - name: Materials
    description: >-
      Materiais (criativos) do programa: upload pelo gestor e download pelos
      afiliados.
  - name: Links
    description: Links rastreáveis e domínios de redirecionamento.
  - name: Coupons
    description: Cupons de afiliado e sync com gateway.
  - name: Pagamentos por PIX
    description: Habilitação de pagamentos por PIX (onboarding e documentos).
  - name: Tracking
    description: Endpoints públicos de redirect e registro de cliques.
  - name: Clicks
    description: Consulta de cliques e estatísticas de link.
  - name: Conversions
    description: 'Conversões: ingestão S2S, atribuição, matching, fraude e auditoria.'
  - name: Commissions
    description: Comissões calculadas, holds, aprovação, void e clawback.
  - name: Payouts
    description: Ciclos de pagamento, prévia, execução e comprovantes.
  - name: Invoices
    description: Notas fiscais (PJ), envio e validação (BR).
  - name: Fraud
    description: Fila de revisão e decisões de fraude.
  - name: Reprocess
    description: Reprocessamento com dry-run obrigatório e relatório de impacto.
  - name: Events
    description: Histórico de eventos para auditoria e consulta.
  - name: Notifications
    description: >-
      Notificações ao operador (falhas de sincronização, payouts e afins) —
      registro in-app espelhado por e-mail aos owners/admins.
  - name: Webhooks
    description: Endpoints de webhook, entregas, retries e dead-letter.
  - name: Ingest
    description: Ingestão de eventos de cobrança (S2S e gateways).
  - name: Settings
    description: Configurações por organização (políticas e integrações).
  - name: Billing
    description: 'Plano e cobrança: contadores de uso da organização para o painel.'
  - name: Dashboard
    description: >-
      Métricas agregadas da operação (receita, top afiliados, conversões,
      comissões, novos afiliados) para a home e os relatórios do gestor.
  - name: Health
    description: Liveness do serviço.
paths:
  /conversions/{conversionId}/journey:
    get:
      tags:
        - Conversions
      summary: Jornada do cliente por trás da atribuição
      description: >-
        Reconstrói a jornada do cliente: a sequência de toques (cliques em links
        de afiliados e cupom) e a distribuição de crédito entre os afiliados que
        levou à atribuição da conversão.
      operationId: getConversionJourney
      parameters:
        - schema:
            type: string
            pattern: ^conv_[0-9A-HJKMNP-TV-Z]{26}$
          in: path
          name: conversionId
          required: true
      responses:
        '200':
          description: >-
            Jornada do cliente: a sequência de toques (cliques/cupom) e a
            distribuição de crédito que levou à atribuição da conversão.
          content:
            application/json:
              schema:
                type: object
                properties:
                  conversionId:
                    type: string
                    description: Conversão cuja jornada foi reconstruída.
                    example: conv_01J9Z3K8N2QF4T7B9XP0WMD5RC
                  model:
                    type: string
                    enum:
                      - first_click
                      - last_click
                      - linear
                      - time_decay
                      - position_based
                    description: Modelo de atribuição aplicado.
                    example: position_based
                  windowDays:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: Janela de atribuição em dias.
                    example: 30
                  matchMethod:
                    type: string
                    enum:
                      - click_id
                      - visitor_id
                      - email_hash
                      - fingerprint
                      - coupon
                      - manual
                    description: >-
                      Método usado para atribuir a conversão a um afiliado.
                      `click_id`: clique identificado. `visitor_id`: visitante
                      rastreado. `email_hash`: hash de e-mail do cliente.
                      `fingerprint`: impressão digital do dispositivo. `coupon`:
                      cupom de afiliado. `manual`: atribuição manual por
                      operador.
                    example: click_id
                  couponPolicy:
                    anyOf:
                      - type: string
                        enum:
                          - coupon_wins
                          - click_wins
                          - split_50_50
                      - type: 'null'
                    description: >-
                      Política de desempate cupom × clique aplicada (`null`
                      quando não houve cupom).
                    example: split_50_50
                  amountCents:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: Valor da conversão em centavos.
                    example: 120000
                  currency:
                    type: string
                    description: Moeda da conversão.
                    example: BRL
                  status:
                    type: string
                    enum:
                      - pending
                      - approved
                      - voided
                      - refunded
                    description: >-
                      Status da conversão. `pending`: aguardando revisão (ex.:
                      travada por fraude). `approved`: aprovada e elegível a
                      comissão. `voided`: anulada (manualmente ou por
                      confirmação de fraude). `refunded`: estornada após
                      reembolso do cliente.
                    example: approved
                  customerId:
                    type: string
                    description: Cliente que originou a conversão.
                    example: cust_8842
                  occurredAt:
                    description: Data/hora da conversão (ISO-8601).
                    example: '2026-06-13T12:00:00.000Z'
                    type: string
                    format: date-time
                  touches:
                    type: array
                    items:
                      type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - click
                            - coupon
                          description: >-
                            Tipo do toque. `click`: clique em link de afiliado.
                            `coupon`: cupom aplicado na compra.
                          example: click
                        affiliateId:
                          type: string
                          description: Afiliado dono do toque.
                          example: aff_01J9Z3K8N2QF4T7B9XP0WMD5RC
                        affiliateName:
                          type: string
                          description: Nome do afiliado dono do toque.
                          example: Ana Afiliada
                        occurredAt:
                          description: >-
                            Data/hora do toque (ISO-8601). Para cupom, igual ao
                            momento da conversão (cupom não tem timestamp
                            próprio).
                          example: '2026-06-10T09:30:00.000Z'
                          type: string
                          format: date-time
                        isWinner:
                          type: boolean
                          description: Indica se o toque recebeu crédito na atribuição.
                          example: true
                        weightBps:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                          description: >-
                            Peso do toque em basis points quando vencedor;
                            `null` para candidato derrotado.
                          example: 4000
                        clickId:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Clique de origem (`null` para toques de cupom).
                          example: clk_01J9Z3K8N2QF4T7B9XP0WMD5RC
                        device:
                          anyOf:
                            - type: object
                              properties:
                                deviceType:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                  example: mobile
                                browser:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                  example: Chrome
                                os:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                  example: Android
                              required:
                                - deviceType
                                - browser
                                - os
                              additionalProperties: false
                              description: Dispositivo derivado do user-agent do clique.
                            - type: 'null'
                        country:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: País do clique.
                          example: BR
                        region:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Região/UF do clique.
                          example: SP
                        city:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Cidade do clique.
                          example: São Paulo
                        source:
                          anyOf:
                            - type: string
                              enum:
                                - redirect
                                - script
                            - type: 'null'
                          description: >-
                            Origem do clique. `redirect`: link rastreado.
                            `script`: pixel/JS.
                          example: redirect
                        referrer:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: >-
                            Página de origem do clique (`null` quando ausente ou
                            para toques de cupom).
                          example: https://blog.exemplo.com/post
                        landingUrl:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: >-
                            URL de destino para onde o clique levou (`null` para
                            cliques antigos ou toques de cupom).
                          example: https://loja.exemplo.com/produto-x
                        couponId:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Cupom de origem (`null` para toques de clique).
                          example: coup_01J9Z3K8N2QF4T7B9XP0WMD5RC
                        couponCode:
                          anyOf:
                            - type: string
                            - type: 'null'
                          description: Código do cupom aplicado.
                          example: MARIA10
                      required:
                        - kind
                        - affiliateId
                        - affiliateName
                        - occurredAt
                        - isWinner
                        - weightBps
                        - clickId
                        - device
                        - country
                        - region
                        - city
                        - source
                        - referrer
                        - landingUrl
                        - couponId
                        - couponCode
                      additionalProperties: false
                      description: Toque do cliente na jornada até a conversão.
                    description: >-
                      Toques do cliente em ordem cronológica (clique no link → …
                      → cupom).
                  winners:
                    type: array
                    items:
                      type: object
                      properties:
                        affiliateId:
                          type: string
                          description: Afiliado premiado.
                          example: aff_01J9Z3K8N2QF4T7B9XP0WMD5RC
                        affiliateName:
                          type: string
                          description: Nome do afiliado premiado.
                          example: Ana Afiliada
                        weightBps:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: >-
                            Crédito agregado do afiliado em basis points (soma
                            dos toques vencedores).
                          example: 6000
                        isPrimary:
                          type: boolean
                          description: >-
                            Vencedor primário da conversão (maior crédito /
                            afiliado titular).
                          example: true
                      required:
                        - affiliateId
                        - affiliateName
                        - weightBps
                        - isPrimary
                      additionalProperties: false
                      description: >-
                        Fatia de crédito por afiliado na distribuição do modelo
                        de atribuição.
                    description: >-
                      Distribuição de crédito por afiliado (desc por peso) — os
                      pedaços do modelo.
                required:
                  - conversionId
                  - model
                  - windowDays
                  - matchMethod
                  - couponPolicy
                  - amountCents
                  - currency
                  - status
                  - customerId
                  - occurredAt
                  - touches
                  - winners
                additionalProperties: false
                description: >-
                  Jornada do cliente: a sequência de toques (cliques/cupom) e a
                  distribuição de crédito que levou à atribuição da conversão.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Chave de API (prefixo `rstr_`) enviada como `Authorization: Bearer
        rstr_...`.
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Chave de API (prefixo `rstr_`) enviada no header `x-api-key`.

````