Cadastra um cartão de crédito, opcionalmente com dívida legada.
Cartão é conta de natureza PASSIVA (Decisão A): nunca entra em bank_accounts nem no saldo consolidado da empresa. legacy_debt cobre as duas partes que NÃO se sobrepõem (RN4) — o restante avulso da fatura atual e as parcelas em aberto; o total devido é a soma das duas. Nada em legacy_debt gera Transaction nem aparece em DRE/DFC/dashboard.
curl --request POST \
--url https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--header 'x-company-id: <x-company-id>' \
--data '
{
"alias": "<string>",
"closing_day": 123,
"due_day": 123,
"active": true,
"credit_limit": 123,
"issuer": "<string>",
"last4": "<string>",
"legacy_debt": {
"current_invoice_remainder": 123,
"current_invoice_remainder_coa_id": 123,
"installments": [
{
"amount": 123,
"reference": "<string>",
"remaining": 123,
"coa_id": 123
}
]
},
"legacy_debt_declared": true
}
'import requests
url = "https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts"
payload = {
"alias": "<string>",
"closing_day": 123,
"due_day": 123,
"active": True,
"credit_limit": 123,
"issuer": "<string>",
"last4": "<string>",
"legacy_debt": {
"current_invoice_remainder": 123,
"current_invoice_remainder_coa_id": 123,
"installments": [
{
"amount": 123,
"reference": "<string>",
"remaining": 123,
"coa_id": 123
}
]
},
"legacy_debt_declared": True
}
headers = {
"x-company-id": "<x-company-id>",
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-company-id': '<x-company-id>',
Authorization: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
alias: '<string>',
closing_day: 123,
due_day: 123,
active: true,
credit_limit: 123,
issuer: '<string>',
last4: '<string>',
legacy_debt: {
current_invoice_remainder: 123,
current_invoice_remainder_coa_id: 123,
installments: [{amount: 123, reference: '<string>', remaining: 123, coa_id: 123}]
},
legacy_debt_declared: true
})
};
fetch('https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'alias' => '<string>',
'closing_day' => 123,
'due_day' => 123,
'active' => true,
'credit_limit' => 123,
'issuer' => '<string>',
'last4' => '<string>',
'legacy_debt' => [
'current_invoice_remainder' => 123,
'current_invoice_remainder_coa_id' => 123,
'installments' => [
[
'amount' => 123,
'reference' => '<string>',
'remaining' => 123,
'coa_id' => 123
]
]
],
'legacy_debt_declared' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json",
"x-company-id: <x-company-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts"
payload := strings.NewReader("{\n \"alias\": \"<string>\",\n \"closing_day\": 123,\n \"due_day\": 123,\n \"active\": true,\n \"credit_limit\": 123,\n \"issuer\": \"<string>\",\n \"last4\": \"<string>\",\n \"legacy_debt\": {\n \"current_invoice_remainder\": 123,\n \"current_invoice_remainder_coa_id\": 123,\n \"installments\": [\n {\n \"amount\": 123,\n \"reference\": \"<string>\",\n \"remaining\": 123,\n \"coa_id\": 123\n }\n ]\n },\n \"legacy_debt_declared\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-company-id", "<x-company-id>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts")
.header("x-company-id", "<x-company-id>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"alias\": \"<string>\",\n \"closing_day\": 123,\n \"due_day\": 123,\n \"active\": true,\n \"credit_limit\": 123,\n \"issuer\": \"<string>\",\n \"last4\": \"<string>\",\n \"legacy_debt\": {\n \"current_invoice_remainder\": 123,\n \"current_invoice_remainder_coa_id\": 123,\n \"installments\": [\n {\n \"amount\": 123,\n \"reference\": \"<string>\",\n \"remaining\": 123,\n \"coa_id\": 123\n }\n ]\n },\n \"legacy_debt_declared\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-company-id"] = '<x-company-id>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"alias\": \"<string>\",\n \"closing_day\": 123,\n \"due_day\": 123,\n \"active\": true,\n \"credit_limit\": 123,\n \"issuer\": \"<string>\",\n \"last4\": \"<string>\",\n \"legacy_debt\": {\n \"current_invoice_remainder\": 123,\n \"current_invoice_remainder_coa_id\": 123,\n \"installments\": [\n {\n \"amount\": 123,\n \"reference\": \"<string>\",\n \"remaining\": 123,\n \"coa_id\": 123\n }\n ]\n },\n \"legacy_debt_declared\": true\n}"
response = http.request(request)
puts response.read_body{
"active": true,
"alias": "<string>",
"closing_day": 123,
"created_at": "<string>",
"credit_limit": 123,
"due_day": 123,
"id": "<string>",
"issuer": "<string>",
"last4": "<string>",
"legacy_debt_declared": true,
"legacy_purchases_count": 123,
"updated_at": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
Token da sessão no cabeçalho Authorization, no formato Bearer (mesmo esquema ApiKeyAuth do contrato).
Headers
company uuid
Body
Credit card data
Show child attributes
Show child attributes
LegacyDebtDeclared é a resposta EXPLÍCITA à pergunta "este cartão já tem dívida anterior?" quando a resposta é "não" (legacy_debt ausente).
Sem este campo, um cartão novo sem nenhum item em legacy_debt fica indistinguível de um cadastro que simplesmente não respondeu à pergunta — a lacuna que CreditCardAccount.LegacyDebtDeclaredAt fecha (spec.md § "Como dívida legada informada é determinada", complemento de 2026-09-02). Quando legacy_debt tem qualquer item, a declaração já é IMPLÍCITA (creditcardrepo.AccountRepository.Create trata len(LegacyDebt) > 0 como resposta dada) — enviar este campo true nesse caso não é erro, só redundante.
Response
Created
LegacyDebtDeclared espelha CreditCardAccount.LegacyDebtDeclaredAt != nil — é a RESPOSTA à pergunta sobre dívida anterior, não "existe dívida" (spec.md § "Como dívida legada informada é determinada"). Usada pelo front para decidir se available_limit nulo, na listagem, significa "cadastro incompleto" ou "sem dívida legada, cadastro completo".
LegacyPurchasesCount é quantos itens de dívida legada (RN4) entraram no cadastro — 0 quando nenhuma dívida foi informada.
curl --request POST \
--url https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--header 'x-company-id: <x-company-id>' \
--data '
{
"alias": "<string>",
"closing_day": 123,
"due_day": 123,
"active": true,
"credit_limit": 123,
"issuer": "<string>",
"last4": "<string>",
"legacy_debt": {
"current_invoice_remainder": 123,
"current_invoice_remainder_coa_id": 123,
"installments": [
{
"amount": 123,
"reference": "<string>",
"remaining": 123,
"coa_id": 123
}
]
},
"legacy_debt_declared": true
}
'import requests
url = "https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts"
payload = {
"alias": "<string>",
"closing_day": 123,
"due_day": 123,
"active": True,
"credit_limit": 123,
"issuer": "<string>",
"last4": "<string>",
"legacy_debt": {
"current_invoice_remainder": 123,
"current_invoice_remainder_coa_id": 123,
"installments": [
{
"amount": 123,
"reference": "<string>",
"remaining": 123,
"coa_id": 123
}
]
},
"legacy_debt_declared": True
}
headers = {
"x-company-id": "<x-company-id>",
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-company-id': '<x-company-id>',
Authorization: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
alias: '<string>',
closing_day: 123,
due_day: 123,
active: true,
credit_limit: 123,
issuer: '<string>',
last4: '<string>',
legacy_debt: {
current_invoice_remainder: 123,
current_invoice_remainder_coa_id: 123,
installments: [{amount: 123, reference: '<string>', remaining: 123, coa_id: 123}]
},
legacy_debt_declared: true
})
};
fetch('https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'alias' => '<string>',
'closing_day' => 123,
'due_day' => 123,
'active' => true,
'credit_limit' => 123,
'issuer' => '<string>',
'last4' => '<string>',
'legacy_debt' => [
'current_invoice_remainder' => 123,
'current_invoice_remainder_coa_id' => 123,
'installments' => [
[
'amount' => 123,
'reference' => '<string>',
'remaining' => 123,
'coa_id' => 123
]
]
],
'legacy_debt_declared' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json",
"x-company-id: <x-company-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts"
payload := strings.NewReader("{\n \"alias\": \"<string>\",\n \"closing_day\": 123,\n \"due_day\": 123,\n \"active\": true,\n \"credit_limit\": 123,\n \"issuer\": \"<string>\",\n \"last4\": \"<string>\",\n \"legacy_debt\": {\n \"current_invoice_remainder\": 123,\n \"current_invoice_remainder_coa_id\": 123,\n \"installments\": [\n {\n \"amount\": 123,\n \"reference\": \"<string>\",\n \"remaining\": 123,\n \"coa_id\": 123\n }\n ]\n },\n \"legacy_debt_declared\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-company-id", "<x-company-id>")
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts")
.header("x-company-id", "<x-company-id>")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"alias\": \"<string>\",\n \"closing_day\": 123,\n \"due_day\": 123,\n \"active\": true,\n \"credit_limit\": 123,\n \"issuer\": \"<string>\",\n \"last4\": \"<string>\",\n \"legacy_debt\": {\n \"current_invoice_remainder\": 123,\n \"current_invoice_remainder_coa_id\": 123,\n \"installments\": [\n {\n \"amount\": 123,\n \"reference\": \"<string>\",\n \"remaining\": 123,\n \"coa_id\": 123\n }\n ]\n },\n \"legacy_debt_declared\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://golang-api-vgnqx.ondigitalocean.app/v1/companies/credit-card-accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-company-id"] = '<x-company-id>'
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"alias\": \"<string>\",\n \"closing_day\": 123,\n \"due_day\": 123,\n \"active\": true,\n \"credit_limit\": 123,\n \"issuer\": \"<string>\",\n \"last4\": \"<string>\",\n \"legacy_debt\": {\n \"current_invoice_remainder\": 123,\n \"current_invoice_remainder_coa_id\": 123,\n \"installments\": [\n {\n \"amount\": 123,\n \"reference\": \"<string>\",\n \"remaining\": 123,\n \"coa_id\": 123\n }\n ]\n },\n \"legacy_debt_declared\": true\n}"
response = http.request(request)
puts response.read_body{
"active": true,
"alias": "<string>",
"closing_day": 123,
"created_at": "<string>",
"credit_limit": 123,
"due_day": 123,
"id": "<string>",
"issuer": "<string>",
"last4": "<string>",
"legacy_debt_declared": true,
"legacy_purchases_count": 123,
"updated_at": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}