Extrato
ContaAutenticação ObrigatóriaObtenha o extrato da conta. O loginid parâmetro e os campos de transferência foram removidos, são utilizados menos valores de action_type , e app_id foi alterado de um número inteiro para uma string.
5 Alterações Incompatíveis
loginid parâmetro e os campos de transferência foram removidos, action_type aceita e devolve menos valores, e app_id é uma string em vez de um número inteiro.Comparação rápida
Alterações de rutura
1. loginid parâmetro removido
Na Legacy API, loginid selecionava a conta quando autorizava várias contas. A New API não o aceita.
Alteração necessária: Remova loginid dos seus pedidos de statement . O seu token seleciona a conta.
2. Menos valores de filtro de action_type
O filtro action_type no pedido aceita buy, sell, deposit e withdrawal. Já não aceita escrow, adjustment, virtual_credit nem transfer.
Alteração necessária: Deixe de filtrar pelos valores que a New API já não aceita.
3. Campos de transferência removidos
As transações já não incluem fees, from, to nem withdrawal_details.
Alteração obrigatória: Deixe de ler estes campos das transações do extrato.
4. Menos valores de action_type nas transações
O action_type de uma transação devolvida é buy, sell, deposit, withdrawal ou adjustment. A New API já não devolve hold, release, virtual_credit nem transfer.
Alteração obrigatória: Atualize o código que processa os valores que a New API já não devolve.
5. app_id é agora uma string
O app_id de cada transação era um número inteiro ou null na Legacy API. Na New API, é uma string ou null.
Alteração obrigatória: Leia app_id como uma cadeia de carateres e converta-o se o comparar com um número.
Estrutura de pedido
{
"statement": 1,
"action_type": "transfer",
"description": 1,
"limit": 25,
"loginid": "CR123456",
"req_id": 1
}{
"statement": 1,
"action_type": "deposit",
"description": 1,
"limit": 25,
"req_id": 1
}Estrutura de resposta
{
"echo_req": {
"statement": 1,
"action_type": "transfer",
"description": 1,
"limit": 25,
"loginid": "CR123456",
"req_id": 1
},
"msg_type": "statement",
"req_id": 1,
"statement": {
"count": 1,
"transactions": [
{
"action_type": "transfer",
"amount": -100,
"app_id": 1089,
"balance_after": 9900,
"contract_id": null,
"fees": {
"amount": 1,
"currency": "USD",
"minimum": 0.1,
"percentage": 1
},
"from": {
"loginid": "CR123456"
},
"longcode": "Account transfer from CR123456 to CR654321",
"reference_id": null,
"to": {
"loginid": "CR654321"
},
"transaction_id": 11542203587,
"transaction_time": 1760000000
}
]
}
}{
"echo_req": {
"statement": 1,
"action_type": "deposit",
"description": 1,
"limit": 25,
"req_id": 1
},
"msg_type": "statement",
"req_id": 1,
"statement": {
"count": 1,
"transactions": [
{
"action_type": "deposit",
"amount": 100,
"app_id": "1089",
"balance_after": 10100,
"contract_id": null,
"longcode": "Deposit to CR123456",
"reference_id": null,
"transaction_id": 11542203588,
"transaction_time": 1760000000
}
]
}
}Exemplos de código
function getStatement(loginId) {
ws.send(JSON.stringify({ statement: 1, action_type: "transfer", description: 1, limit: 25, loginid: loginId }));
ws.onmessage = (event) => {
const response = JSON.parse(event.data);
if (response.msg_type !== "statement") return;
if (response.statement) {
response.statement.transactions?.forEach((tx) => {
console.log(tx.action_type, tx.amount, tx.from?.loginid, tx.to?.loginid);
});
}
};
}Alguma outra questão? Entrar em contacto