v2.63.0 — Administrator partner checked at PJ POST time
v2.63.0 — Administrator partner checked at PJ POST time
POST /v1/accreditations/pjnow requires exactly one partner withpartners[].isAdministrator: true. The banking provider accepts a single administrator per company and only said so afterwards — with the biometrics links already issued, every partner already through facial recognition and the company PDFs already uploaded. More than one administrator is now refused upfront with400 invalid_field, namingpartners[].isAdministratorand the flagged indexes. No link is issued and no journey is spent.- The number of partners did not change. The limit counts administrators: a company with several partners and a single administrator keeps going through.
- No administrator at all is still refused with
400 invalid_payload, as before. GET /v1/accreditations/{id}now returns thepartnerblock on refusals coming from the banking provider — the same one already delivered in theaccreditation.failedwebhook. Until now the query showed less than the webhook. The field is omitted when there is no provider refusal.- Two fixes in the error documentation. The reason field is called
errorReason(the table saidreason), and thepartnerblock mirrors what the provider sent:code,messageandfieldare all optional, and some refusals arrive withmessageonly — in those the field is not named.
Attention / action required
- If you build
partners[]flagging every partner as an administrator, the call now answers 400 instead of being accepted and failing hours later. Flag only the company’s administrator and send the others withisAdministrator: false.
v2.64.0 — PIX out held at the settlement bank: who is holding it, and the late outcome
v2.64.0 — PIX out held at the settlement bank: who is holding it, and the late outcome
holdtells you whose court the ball is in. The payment lookup (GET /v1/accounts/{accountId}/pix/payments/lookup) and thepix.out.timeoutwebhook now carryhold, withowner: "partner"andreason(partner_authorization,partner_risk_analysisorpartner_unspecified), whenever the order is held at the settlement bank. When that object is present, there is nothing to approve on your side or on ours.partnerStatusandpartnerStatusIdcarry the raw state at the settlement bank, useful to attach to a support ticket. They are its values, outside our canonical vocabulary: do not use them in status comparisons.statusdid not change.PENDING_APPROVALkeeps the exact same value — no integration that compares status strings needs to change. The field is ambiguous by birth (it covers both the settlement bank’s internal authorisation queue and its risk review) and will be split in a future major version; until then,holdis the answer to “who needs to act”.TIMEOUTis no longer the end of the road. While an order is held, we keep polling the settlement bank for up to 7 days. If it settles or rejects within that window, you receivepix.out.completedorpix.out.failedwithlate: trueand the samepaymentIdas the earlierpix.out.timeout— it corrects that outcome, it is not a second payment. Before, a late release could simply never reach you.- The late event duplicates nothing. Its event identifier is the payment’s, so a late confirmation and our reconciliation converge on a single terminal event per order.
- The timeline deadline message now states the real deadline. The
pix_out.timeoutevent said “5-minute deadline” even when the wait had been 25 minutes, and never mentioned that the order was held at the settlement bank.
Heads-up / action required
- If your system treats
pix.out.timeoutas a final outcome, adjust it to accept a laterpix.out.completed/pix.out.failedwith the samepaymentId(identify it bylate: true). Reprocessing the payment in that case would send the money twice.