Tal como no caso dos recibos, as compras são constituídas por:
Um cabeçalho
Umas ou mais linhas
1. Criação do cabeçalho
De modo a criar uma compra, deverá inicialmente criar o cabeçalho do documento. Para este efeito, deverá realizar o seguinte pedido:
No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth
O <payload JSON> deverá vir no seguinte formato
{
"data": {
"type": "commercial_purchases_payments",
"attributes": {
"date": "2017-06-01", // Data do pagamento
"payment_mechanism": "MO|CH|DC|CC|TR|DDA|MB|OU|..." // Por omissão, MO. Modo de pagamento: MO (numerário), CH (cheque), DC (cartão de débito), CC (cartão de crédito), TR (transferência), DDA (débito directo), MB (referência MB), OU (outro)
},
"relationships": {
"commercial_document_series": { // Associação à série de pagamentos. Pode ser omitida, se for para usar a série por omissão
"data": {
"type": "commercial_document_series",
"id": "<id da série de documentos associada>" // Este id pode ser obtido por um GET /commercial_document_series?filter[document_type]=PF&filter[prefix]=2020|ou outro qualquer...
}
},
"bank_accounts": { // SÓ NECESSÁRIO se o meio de pagamento for DC,CC,TR,CH, e se for para indicar uma conta bancária específica. Associação à conta bancária da empresa de onde o pagamento foi feito
"data": {
"type": "bank_accounts",
"id": "<id da conta bancária associada>" // Este id pode ser obtido por um GET /company_bank_accounts?filter[iban]=<IBAN da conta>, ou GET /company_bank_accounts?filter[name]=<nome da conta>
}
},
"cash_accounts": { // SÓ NECESSÁRIO se o meio de pagamento for MO, e se for para indicar uma conta de caixa específica. Associação à conta de caixa da empresa de onde o pagamento foi feito
"data": {
"type": "cash_accounts",
"id": "<id da conta de caixa associada>" // Este id pode ser obtido por um GET /cash_accounts?filter[name]=<nome da conta de caixa>
}
}
}
}
}
Após criar o cabeçalho, a resposta TEM QUE ser consultada para obtenção do identificador interno ("id") da compra criada. Este identificador será necessário para a criação de todas as linhas.
2. Criação de Linha de Pagamento
Em todos os pedidos seguintes, é necessário saber qual o id do documento de compra. Este id pode ser guardado a partir da resposta (JSON) ao pedido de criação anterior, ou pode ser consultado via API. Via API, o id do documento pode ser obtido por um
GET /commercial_purchases_payments?filter[document_no]=<número do documento, ex: PF 2020/1>
De modo a inserir linhas na compra criada, deverá realizar o seguinte pedido
No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth. O payload JSON deverá vir no seguinte formato, dependendo se se trata de um produto, ou categoria de despesa
NOTA: É na linha que se indica qual o documento de compra (FC ou DSP) a pagar. Se necessário, podem criar-se mais do que uma linha (e nesse caso o pagamento é feito de uma só vez para todos os documentos)
Linha de pagamento
{"data": {"type":"commercial_purchases_payment_lines","attributes": { "payment_id": "<id do pagamento a que pertence esta linha>", // NOTA: quando a API estiver concluída, isto vai ser também uma "relationship", mas por agora indica-se aqui, nos atributos
"payable_type":"Purchases::Document","payable_id":"<id do documento de compra a pagar>", "paid_value": 50, // Valor total a pagar (não é necessário pagar a totalidade do documento, ou pode pagar-se mais do que um documento)
// Indicar o atributo seguinte apenas se existir desconto no pagamento (3%, neste exemplo)"settlement_percentage":3"commercial_purchases_documents_id":"<id do documento de compra a pagar>" } }}