Skip to content

Pagamentos a fornecedores ​

Consultar e registar pagamentos feitos a fornecedores de um condomínio.

Listar os pagamentos de um condomínio ​

GET /buildings/{idBuilding}/supplier-payments

Permissão · finance:read

Parâmetros ​

ParâmetroTipoPor omissãoDescrição
idBuildinginteiro—No caminho. O condomínio
idSupplierinteirotodosSó os pagamentos a este fornecedor
fromDatedata—A partir desta data
toDatedata—Até esta data, inclusive
includetexto—settledInvoices para trazer as faturas que cada pagamento liquidou
limitinteiro100Registos por página, no máximo 500
cursortexto—Cursor da página seguinte

Pedido ​

bash
curl "https://servidor.exemplo/api/integrations/v1/acme/buildings/12/supplier-payments?include=settledInvoices" \
  -H "ApiKey: $GC_API_KEY"

Resposta · 200 ​

json
{
  "Items": [
    {
      "Id": 2210,
      "IdBuilding": 12,
      "BuildingCode": "0012",
      "DocumentId": "PG 2026/331",
      "DocumentDate": "2026-09-30T00:00:00",
      "Supplier": { "Id": 88, "Description": "Elevadores Norte, Lda." },
      "Amount": 246.0,
      "BankingFees": 0.5,
      "Adjustment": null,
      "AccountingReference": "2026/B/118",
      "HasFile": true,
      "SettledInvoices": [
        { "Id": 4412, "DocumentId": "FT 2026/1180", "DocumentDate": "2026-09-10T00:00:00" }
      ]
    }
  ],
  "Paging": { "Limit": 100, "NextCursor": null, "HasMore": false }
}
CampoTipoDescrição
IdinteiroIdentificador do pagamento
IdBuilding · BuildingCodeinteiro · textoO condomínio
DocumentIdtextoNúmero do documento de pagamento
DocumentDatedataData do pagamento
SupplierobjetoO fornecedor pago
AmountdecimalValor pago
BankingFeesdecimalEncargos bancários. Pode vir a null
AdjustmentdecimalAcerto aplicado. Pode vir a null
AccountingReferencetextoReferência do lançamento contabilístico
HasFilebooleanoExiste comprovativo arquivado
SettledInvoiceslistaAs faturas liquidadas, quando pedidas com include. null caso contrário

A ordem é da mais recente para a mais antiga.

As settledInvoices são o que liga um pagamento ao que foi pago — é por aí que se reconstrói o percurso de uma despesa.

Erros ​

EstadoCódigoQuando
400INVALID_CURSOR · UNSUPPORTED_INCLUDECursor inválido, ou include diferente de settledInvoices
401 · 403Ver Autenticação e Permissões
404BUILDING_NOT_FOUNDNão existe condomínio com esse identificador

Registar um pagamento ​

POST /supplier-payments

Permissão · finance:write · aceita Idempotency-Key

Para um pagamento feito fora da aplicação, indicando as faturas que liquida.

Corpo ​

CampoTipoDescrição
SupplierTaxIdinteiroContribuinte do fornecedor
IdSupplierinteiroEm alternativa, o identificador do GC
IdBuilding ou BuildingCodeinteiro / textoO condomínio
DocumentIdtextoNúmero do documento de pagamento
PaymentDatedataData do pagamento
PaymentModetextoObrigatório. check, transfer ou directDebit
PdfBase64textoComprovativo, em base64
LineslistaObrigatório. As faturas liquidadas

Cada linha de lines:

CampoTipoDescrição
DocumentIdtextoO número do documento do fornecedor, não o identificador do GC
AmountdecimalValor imputado a essa fatura

Pedido ​

bash
curl -X POST "https://servidor.exemplo/api/integrations/v1/acme/supplier-payments" \
  -H "ApiKey: $GC_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
        "SupplierTaxId": 501234567,
        "BuildingCode": "0012",
        "DocumentId": "PG 2026/331",
        "PaymentDate": "2026-09-30",
        "PaymentMode": "transfer",
        "Lines": [
          { "DocumentId": "FT 2026/1180", "Amount": 246.00 }
        ]
      }'

Resposta · 201 ​

json
{ "Id": 2210 }

As faturas nomeiam-se pelo número do fornecedor

Cada linha identifica a fatura pelo DocumentId do fornecedor — o número que quem pagou tem em mãos — e não pelo identificador interno do GC. Assim não precisa de consultar nada antes de registar um pagamento.

Os modos de pagamento ​

ValorSignificado
checkCheque
transferTransferência bancária
directDebitDébito direto

Outro valor responde 400 INVALID_REFERENCE.

Erros ​

EstadoCódigoQuando
400INVALID_BODY · MISSING_FIELDCorpo inválido, ou falta um campo obrigatório
400INVALID_REFERENCEO fornecedor não existe, ou o PaymentMode não é um dos três
400INVOICE_NOT_FOUNDUma fatura das linhas não existe nesse fornecedor e condomínio
401 · 403Ver Autenticação e Permissões
404BUILDING_NOT_FOUNDO condomínio não existe
409INVOICE_ALREADY_SETTLEDUma das faturas já estava liquidada
409IDEMPOTENCY_KEY_REUSEDA chave já foi usada noutro pedido
422BANK_ACCOUNT_NOT_DEFINEDO condomínio não tem conta bancária configurada para este modo
422PAYMENT_NOT_CREATEDNão chegou a ser registado. Reporte

O INVOICE_ALREADY_SETTLED costuma significar que o pagamento já foi registado. Confirme antes de o tratar como falha.

O BANK_ACCOUNT_NOT_DEFINED depende de configuração do cliente na aplicação e não se resolve repetindo.


Registar o pagamento de um consumo ​

POST /supplier-payments/consumption

Permissão · finance:write · aceita Idempotency-Key

Água, eletricidade e gás. Como no registo da fatura, não se envia fornecedor nem condomínio: o ponto de entrega identifica o contrato. O modo é sempre débito direto, que é como estes se pagam.

Corpo ​

CampoTipoDescrição
DeliveryPointCodetextoObrigatório. O ponto de entrega
PaymentDatedataData do pagamento
LineslistaObrigatório. As faturas liquidadas, com DocumentId e Amount

Pedido ​

bash
curl -X POST "https://servidor.exemplo/api/integrations/v1/acme/supplier-payments/consumption" \
  -H "ApiKey: $GC_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
        "DeliveryPointCode": "PT0002000012345678XY",
        "PaymentDate": "2026-09-25",
        "Lines": [
          { "DocumentId": "FT 2026/998877", "Amount": 87.43 }
        ]
      }'

Resposta · 201 ​

json
{ "Id": 2211 }

Erros ​

Os mesmos do registo de pagamento, com DELIVERY_POINT_NOT_FOUND em vez de BUILDING_NOT_FOUND e sem PaymentMode.

API de Integração GC