v2.59.0 — Download dos arquivos comprobatórios do onboarding

  • GET /v1/accreditations/{accreditationId}/artifacts. Lista as evidências arquivadas da accreditation — os PDFs societários que você enviou, o conjunto probatório assinado pelo provedor de identidade (unico_evidence_set) e a selfie do titular (unico_selfie) —, cada item já com a downloadUrl pré-assinada (~10 min). Detalhes no guia de onboarding.
  • Dois interruptores, porque a rota entrega biometria. A feature kyc_artifacts precisa estar habilitada no tenant (exige previsão contratual; sem ela a resposta é 403 feature_disabled) e a credencial precisa do escopo novo kyc.read. O read genérico não é aceito de propósito: nenhuma chave existente passou a baixar rosto de cliente no dia do deploy.
  • downloadUrl só com scanStatus: APPROVED, a mesma regra dos anexos de MED — enquanto o antivírus não termina, o item aparece na lista sem link.
  • No backoffice, o detalhe da accreditation ganhou a seção “Arquivos comprobatórios” para quem tem backoffice:accreditations. Ali vale só a feature: escopo é conceito de credencial de integração.

v2.59.1 — Boleto vencido volta a ser pagável

  • A consulta de boleto devolvia o valor errado. O POST .../boleto/preview informava o valor de face — o número gravado no código de barras — como valor a pagar. Em título vencido esse não é o valor que o liquidante aceita, então quem pagava com ele levava boleto_amount_mismatch e o boleto não era pago. Agora o preview devolve totalUpdated com face + juros + multa − desconto, que é o valor a mandar no POST .../boleto/pay. Ele muda todo dia: consulte no dia do pagamento e reserve saldo para o atualizado, não para o de face.
  • A resposta do preview passou a ser a que a documentação sempre descreveu. Os campos saíam em PascalCase (Amount, OriginalAmount) e o totalUpdated não existia. Agora são type, bank, bankCode, receiverName, receiverTaxId, payerName, payerTaxId, dueDate, amount (face), discountAmount, interestAmount, fineAmount, totalUpdated, barcode, digitableLine e status. Nome e código do banco emissor, que vinham vazios, também voltaram.
  • A recusa por valor divergente agora diz qual é o valor. A mensagem de boleto_amount_mismatch passou a trazer o valor atualizado do título — antes o número só existia no bloco partner, e a mensagem se limitava a dizer que não conferia.
  • Boleto recusado deixou de sumir. Quando o liquidante recusa na submissão, o GET .../boleto/payments/{paymentId} respondia 404; agora responde 200 com status: "FAILED" e errorMessage. Quem não assina os webhooks boleto.paid/boleto.failed não tinha como saber o desfecho.
  • amount está documentado como obrigatório no POST .../boleto/pay. Sempre foi — o OpenAPI e a coleção Postman é que omitiam o campo.