dunas

Servidor

Os métodos da instância criada por createDunas.

Todos os ids de plano e de feature são tipados a partir dos seus planos.

Clientes

MétodoDevolve
upsertCustomer({ id, name?, email?, taxId?, phone?, metadata? })O cliente. CPF/CNPJ e telefone são validados e normalizados
getCustomer({ customerId })O cliente com subscriptions, balances e flags

Um cliente é criado sozinho, no plano padrão, na primeira vez que o id aparece.

Acesso e uso

MétodoDevolve
check({ customerId, featureId, required? }){ allowed, balance } em features com limite, { allowed } nas liga e desliga
consume({ customerId, featureId, amount?, idempotencyKey? }){ allowed, balance }. Só registra se houver saldo
track({ customerId, featureId, amount?, idempotencyKey? }){ allowed, balance }. Registra sempre

amount é 1 por padrão. balance é { limit, used, remaining, resetsAt }.

Planos e assinaturas

MétodoDevolve
listPlans({ customerId })Os planos com action e a subscription do cliente em cada um
subscribe({ customerId, planId, method?, checkout?, successUrl? }){ subscription, next }
cancel({ customerId, planId, immediately? })A assinatura cancelada ou agendada, ou null
next.typeQuandoTraz
"redirect"Falta pagar, com checkout: "hosted"url e chargeId
"pix"Falta pagar, com checkout: "embedded"brCode, qrCodeImageUrl, expiresAt e chargeId
"none"O plano é grátis, o cliente já tem esse plano, ou volta ao plano padrão no fim do período—
Opção de subscribePadrão
methodPix Automático se algum provedor oferecer, senão Pix"pix", "pix_automatico" ou "card"
checkout"hosted""hosted" manda para a página do provedor. "embedded" devolve o Pix para você mostrar
successUrl—Para onde a página do provedor volta depois do pagamento, quando ele oferece isso

Cobranças

MétodoDevolve
getCharge({ chargeId })A cobrança como está no banco
syncCharge({ chargeId })A cobrança relida no provedor
simulatePayment({ chargeId })A cobrança paga. Só no sandbox

Operação

MétodoO que faz
migrate()Cria ou atualiza as tabelas dunas_*
registerWebhooks({ baseUrl })Registra os webhooks em cada provedor e devolve as URLs
runRenewals()Roda as renovações e devolve quantas cobranças e assinaturas mudaram
handler(request)Atende a rota do dunas. Recebe um Request e devolve um Response
on(event, handler)Registra mais um handler para um evento. Devolve a função que o remove

Erros

Os métodos lançam DunasError, com um code:

codeQuando
PLAN_NOT_FOUNDO plano não está nos seus planos
CHARGE_NOT_FOUNDA cobrança não existe ou é de outro cliente
PROVIDER_NOT_FOUNDO roteamento escolheu um provedor que não está configurado
INVALID_TAX_IDO CPF ou CNPJ é inválido
INVALID_PHONEO telefone não é um celular brasileiro válido
ALL_PROVIDERS_FAILEDNenhum provedor conseguiu criar a cobrança
SIMULATION_NOT_SUPPORTEDO provedor não simula pagamentos
FEATURE_NOT_METEREDconsume ou track numa feature liga e desliga
METHOD_NOT_AVAILABLENenhum provedor oferece a forma de pagamento ou o checkout pedido

Nesta página