Lista os cartões salvos
GET /portal/payment-methods
Escopo do token: payment_methods:read. Recurso: Cartões.
Exemplo de requisição
Seção intitulada “Exemplo de requisição”Os exemplos leem o token da variável de ambiente HALVER_API_TOKEN (um token sc_live_… criado em Desenvolvedores › Tokens de API). Nunca escreva o token no código.
curl "https://dash.halver.com.br/api/v1/portal/payment-methods" \ -H "Authorization: Bearer $HALVER_API_TOKEN"package main
import ( "fmt" "io" "net/http" "os" "time")
func main() { req, err := http.NewRequest(http.MethodGet, "https://dash.halver.com.br/api/v1/portal/payment-methods", nil) if err != nil { panic(err) } req.Header.Set("Authorization", "Bearer "+os.Getenv("HALVER_API_TOKEN")) client := &http.Client{Timeout: 30 * time.Second} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, err := io.ReadAll(resp.Body) if err != nil { panic(err) } fmt.Println(resp.Status) fmt.Println(string(out))}import os
import requests
resp = requests.get( "https://dash.halver.com.br/api/v1/portal/payment-methods", headers={ "Authorization": f"Bearer {os.environ['HALVER_API_TOKEN']}", }, timeout=30,)resp.raise_for_status()print(resp.json())Respostas
Seção intitulada “Respostas”Cartões salvos (padrão primeiro).
Campos da resposta
-
dataarray de object obrigatório-
brandstring obrigatório -
created_atstring (date-time) obrigatório -
customer_idstring (uuid) obrigatório -
expiry_monthinteger obrigatório -
expiry_yearinteger obrigatório -
holder_namestring obrigatório -
idstring (uuid) obrigatório -
is_defaultboolean obrigatório -
last4string obrigatório -
providerstring obrigatórioComo a fatura é recebida.
manual= Pix direto na conta da empresa, baixado por conciliação ou manualmente.stripeeasaassignificam “cobrada num gateway” e aceitam Pix, boleto e cartão: cada cobrança nova sai pelo provedor configurado para a forma (PIX_PROVIDER,BOLETO_PROVIDER,CARD_PROVIDER; vejaGET /public/card-config), a cobrança já emitida termina no provedor que a emitiu e um cartão salvo é sempre cobrado no provedor que o salvou. Contratos novos nascem com o provedor configurado (Stripe quando ela está configurada). Um de:asaas,stripe,nupay,manual. -
typestring obrigatórioUm de:
credit_card.
-
{ "data": [ { "brand": "visa", "created_at": "2026-10-20T18:00:00Z", "customer_id": "38c54167-ea0a-48dd-84bf-459deb34cae8", "expiry_month": 12, "expiry_year": 2030, "holder_name": "ANA SOUZA", "id": "b3588322-3d69-442f-8bfb-a261636228e6", "is_default": false, "last4": "4242", "provider": "asaas", "type": "credit_card" } ]}Todo erro vem como application/problem+json (RFC 9457), com um code estável, a mensagem em português em detail, o motivo de cada campo em errors (nos erros de validação) e o request_id, que você informa ao suporte. Veja a lista completa de códigos.
| Status | Quando | Códigos |
|---|---|---|
| 401 | Não autenticado (token ausente, inválido ou expirado; credenciais inválidas). | auth.unauthorized |
| 403 | Autenticado, mas sem permissão para a área ou a operação. | api_token.insufficient_scope |
{ "type": "about:blank", "title": "Forbidden", "status": 403, "detail": "o token não tem o escopo payment_methods:read; crie um token com esse escopo em Desenvolvedores › Tokens de API", "code": "api_token.insufficient_scope", "request_id": "6f1c0b2a9e4d7c3b5a8f0e1d"}