Skip to content

Pagamentos

Vinicius Aguiar edited this page Oct 28, 2023 · 20 revisions

Fluxos

Documentação dos fluxos de pagamentos

Nesse contexto vamos aderir as nomenclaturas:

  • Conta para a conta criada na API
  • Cliente para a conta criada no Stripe

Listar produtos e preços

POST /api/v1/graphql allDjstripePrice

Criar uma conta

  1. Criar a conta
    1. POST /api/v1/graphql CreateUpdateAccount
  2. Criar o cliente
    1. POST /payment/customer/<account_id>

Criar uma inscrição

  1. Criar uma inscrição vinculada a um preço
    1. POST /payment/subscription/
    2. POST /payment/customer/<account_id>/subscription/

Cancelar a inscrição

DELETE /payment/subscription/<subscription_id>
DELETE /payment/customer/<account_id>/subscription/<subscription_id>

Adicionar colaboradores à inscrição

POST /payment/customer/<account_id>/subscription/<subscription_id>

Remover colaboradores da inscrição

DELETE /payment/customer/<account_id>/subscription/<subscription_id>

Recursos

Documentação dos recursos de pagamento

POST /payment/customer/<account_id>

{
    "account_id": "...",
    "email": "...",
    "address": {
        "line1": "Rua Augusta, 100",
        "city": "São Paulo",
        "state": "SP",
        "country": "BR",
        "postal_code": "01304-000",
    }
}

PUT /payment/customer/<account_id>

{
    "account_id": "...",
    "email": "...",
    "address": {
        "line1": "Rua Augusta, 100",
        "city": "São Paulo",
        "state": "SP",
        "country": "BR",
        "postal_code": "01304-000",
    }
}

POST /payment/subscription/
POST /payment/customer/<account_id>/subscription/

{
    "account_id": "...",
    "price_id": "..."
}
{
    "subscription_id": "...",
    "client_secret": "..."
}

DELETE /payment/subscription/<subscription_id>
DELETE /payment/customer/<account_id>/subscription/<subscription_id>

  

POST /payment/customer/<account_id>/subscription/<subscription_id>

{
    "account_id": "...",
    "subscription_id": "..."
}

DELETE /payment/customer/<account_id>/subscription/<subscription_id>

  

Requisitos

  • Autenticar
    • Inscrever/cancelar inscrição
    • Adicionar/remover colaborador

Referências

Stripe: Build a subscription integration

Apêndice

Criar uma conta

sequenceDiagram
    participant Frontend
    participant Backend
    participant Stripe
    
    Frontend->>Backend: Criar conta
    Note right of Frontend: POST /api/v1/graphql CreateUpdateAccount
    Backend->>Backend: Criar conta
    Backend-->>Frontend: Retornar conta
    loop Cliente não criado
        Frontend->>Backend: Criar cliente
        Note right of Frontend: POST /payment/customer/<account_id>
        Backend->>Stripe: Criar cliente
        Stripe-->>Backend: Retornar cliente se existir
        Backend-->>Frontend: Retornar cliente se existir
    end
Loading

Criar uma inscrição

sequenceDiagram
    participant Frontend
    participant Backend
    participant Stripe

    loop Inscrição não criada
        Frontend->>Backend: Criar inscrição
        Note right of Frontend: POST /payment/customer/<account_id>/subscription/
        Backend->>Stripe: Criar inscrição
        Stripe-->>Backend: Retornar inscrição se existir
        Backend-->>Frontend: Retornar inscrição se existir
    end
    Frontend->>Stripe: Confirmar o pagamento
    Stripe-->>Frontend: Retornar a confirmação se existir
Loading
Clone this wiki locally