Pular para o conteúdo principal

Pagamentos

Registro e gestão de pagamentos de faturas.

Endpoints

MétodoEndpointDescriçãoPermissão
POST/billing/api/v1/paymentsRegistrar pagamentoBILLING_PAYMENTS_RECORD
GET/billing/api/v1/paymentsListar pagamentosBILLING_PAYMENTS_READ
GET/billing/api/v1/payments/:idObter pagamentoBILLING_PAYMENTS_READ
POST/billing/api/v1/payments/:id/refundProcessar reembolsoBILLING_PAYMENTS_REFUND

Atributos

CampoTipoDescrição
billingAccountIdstring (UUID)ID da conta de faturamento
invoiceIdstring (UUID)ID da fatura (opcional)
amountnumberValor do pagamento
statusenumStatus do pagamento
paymentMethodstringMétodo de pagamento
externalRefstringReferência externa (gateway)
refundedAmountnumberValor já reembolsado
metadataobjectDados adicionais
createdAtdatetimeData de criação
updatedAtdatetimeData da última atualização

Status do Pagamento

StatusDescrição
COMPLETEDPagamento confirmado
REFUNDEDTotalmente reembolsado
PARTIALLY_REFUNDEDParcialmente reembolsado

Registrar Pagamento

POST /billing/api/v1/payments

Registra um novo pagamento. Se associado a uma fatura, atualiza o status da fatura automaticamente.

Atributos

CampoTipoObrigatórioDescrição
billingAccountIdstringSimID da conta de faturamento
invoiceIdstringNãoID da fatura a pagar
amountnumberSimValor do pagamento
paymentMethodstringNãoMétodo usado (ex: "PIX", "BOLETO")
externalRefstringNãoID no gateway de pagamento
metadataobjectNãoDados adicionais
curl -X POST 'https://billing.stg.catalisa.app/billing/api/v1/payments' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"type": "payments",
"attributes": {
"billingAccountId": "550e8400-e29b-41d4-a716-446655440050",
"invoiceId": "550e8400-e29b-41d4-a716-446655440060",
"amount": 199.90,
"paymentMethod": "PIX",
"externalRef": "gateway-txn-123456",
"metadata": {
"gatewayResponse": "approved"
}
}
}
}'

Response (201 Created)

{
"data": {
"type": "payments",
"id": "550e8400-e29b-41d4-a716-446655440070",
"links": {
"self": "/billing/api/v1/payments/550e8400-e29b-41d4-a716-446655440070"
},
"attributes": {
"billingAccountId": "550e8400-e29b-41d4-a716-446655440050",
"invoiceId": "550e8400-e29b-41d4-a716-446655440060",
"amount": 199.90,
"status": "COMPLETED",
"paymentMethod": "PIX",
"externalRef": "gateway-txn-123456",
"refundedAmount": 0,
"metadata": {
"gatewayResponse": "approved"
},
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
}
}

Listar Pagamentos

GET /billing/api/v1/payments

Lista pagamentos com suporte a paginação e filtros.

Query Parameters

ParâmetroTipoDescrição
page[number]integerNúmero da página
page[size]integerItens por página
filter[billingAccountId]UUIDFiltrar por conta
filter[invoiceId]UUIDFiltrar por fatura
filter[status]enumFiltrar por status
curl 'https://billing.stg.catalisa.app/billing/api/v1/payments?filter[billingAccountId]=550e8400-e29b-41d4-a716-446655440050&filter[status]=COMPLETED' \
-H 'Authorization: Bearer SEU_TOKEN'

Obter Pagamento

GET /billing/api/v1/payments/:id

Obtém os detalhes de um pagamento específico.

curl 'https://billing.stg.catalisa.app/billing/api/v1/payments/550e8400-e29b-41d4-a716-446655440070' \
-H 'Authorization: Bearer SEU_TOKEN'

Processar Reembolso

POST /billing/api/v1/payments/:id/refund

Processa um reembolso total ou parcial do pagamento.

Atributos

CampoTipoObrigatórioDescrição
amountnumberNãoValor a reembolsar (default: total)
# Reembolso total
curl -X POST 'https://billing.stg.catalisa.app/billing/api/v1/payments/550e8400-e29b-41d4-a716-446655440070/refund' \
-H 'Authorization: Bearer SEU_TOKEN'

# Reembolso parcial
curl -X POST 'https://billing.stg.catalisa.app/billing/api/v1/payments/550e8400-e29b-41d4-a716-446655440070/refund' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"attributes": {
"amount": 50.00
}
}
}'

Response (200 OK)

{
"data": {
"type": "payments",
"id": "550e8400-e29b-41d4-a716-446655440070",
"attributes": {
"billingAccountId": "550e8400-e29b-41d4-a716-446655440050",
"invoiceId": "550e8400-e29b-41d4-a716-446655440060",
"amount": 199.90,
"status": "PARTIALLY_REFUNDED",
"paymentMethod": "PIX",
"refundedAmount": 50.00,
"updatedAt": "2024-01-15T11:00:00Z"
}
}
}

Fluxo de Pagamento

  1. Fatura criada → Status: DRAFT
  2. Fatura finalizada → Status: FINALIZED
  3. Pagamento registrado → Fatura: PAID, Pagamento: COMPLETED
  4. Reembolso (se aplicável) → Pagamento: REFUNDED ou PARTIALLY_REFUNDED

Integração com Gateway

// Exemplo de integração com gateway de pagamento
async function processPayment(invoice, paymentData) {
// 1. Processar no gateway
const gatewayResponse = await paymentGateway.charge({
amount: invoice.totalAmount,
method: paymentData.method,
customer: paymentData.customer,
});

if (gatewayResponse.status === 'approved') {
// 2. Registrar pagamento na Catalisa
await fetch('https://billing.stg.catalisa.app/billing/api/v1/payments', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'payments',
attributes: {
billingAccountId: invoice.billingAccountId,
invoiceId: invoice.id,
amount: gatewayResponse.amount,
paymentMethod: paymentData.method,
externalRef: gatewayResponse.transactionId,
metadata: {
gatewayResponse: gatewayResponse,
},
},
},
}),
});
}
}

Erros Comuns

CódigoErroDescrição
400VALIDATIONDados inválidos ou valor negativo
404NOT_FOUNDPagamento, conta ou fatura não encontrada
409CONFLICTPagamento já reembolsado totalmente
409CONFLICTValor de reembolso excede o disponível