Skip to main content

Commercial Notes (NC) Bookkeeping Integration Guide with Auto-Signature

This guide describes all the resources and functionalities that need to be tested by the integration partner in QI Tech's Sandbox environment, before going into production environment for commercial notes (NC) issuance.

This is a personalized version of QI Tech's standard NC integration guide, adapted for the fully automated issuance flow: once the issuer is registered, approved and enabled for auto-signature, every subsequent issuance runs end to end via API with no manual signing step.

Attention

All tests must be mandatorily performed in QI Tech's Sandbox environment. Operations performed in Sandbox environment are fictional financial operations, serving only for API functionality testing.


1. Scope and phasing

The flow is split into six phases. Phases 0 through 4 rely on capabilities already available in the API. The auto-signature enablement phase (Phase 2) depends on new development on QI Tech's side. Phase 6 is split in two: the funding transfer to the WL settlement account (6.1) uses BaaS endpoints that already exist and can be homologated today; the third-party disbursement to the supplier (6.2) depends on new development.

LegendMeaning
Available today — can be homologated in Sandbox immediately
🆕New development — endpoint contract to be published; homologation starts once released
⚙️Executed by QI Tech (no integrator action, but the integrator must observe the resulting status)
*Mandatory step for homologation sign-off
Sequencing premise

Auto-signature is configured only after the issuer registration is approved. The adoption agreement that authorizes it is signed inside the first issuance package. From the second issuance onward, issuer-side signing is fully automatic. Phase 2 is therefore a one-time gate per issuer, not a per-operation step.


2. End-to-end flow


3. Phase 0 — Registration and API authentication

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
CAB0001*Public key exchangePerform public key exchange with the platform operations team (suporte.dcm@qitech.com.br)Documentation Link
CAB0002*Call authentication testAfter receiving the API key, complete the call authentication testsDocumentation Link

Documentation Link
CAB0001
CAB0003*Webhook configurationConfigure the URL for QI Tech webhook sendingDocumentation Link

Documentation Link

Documentation Link
CAB0001, CAB0002
Attention

Webhook configuration is mandatory in this flow, not optional. Because analysis, approval and signing are automatic, the integrator has no manual checkpoint — webhooks are the only way to observe the operation advancing without polling.


4. Phase 1 — Issuer homologation

Attention

If the client has already performed the integration with QI Tech assignor registrations, it's possible to reuse these registrations, considerably simplifying the homologation in the system.

4.1 Phase 1A — Issuer registered in the QI Tech assignor system

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
CED1001*Reuse assignor registrationReuse an existing assignor registration by CNPJDocumentation LinkCAB0002
CED1002*List registered issuersList registered issuers, filtering by CNPJ or nameDocumentation LinkCED1001
CED1003*Issuer detailsRetrieve the details of a registered issuer by issuer_keyDocumentation LinkCED1001

4.2 Phase 1B — Issuer registered through the system

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
CED0001*Basic issuer registrationCreate the issuer with its basic registration dataDocumentation LinkCAB0002
CED0002*Upload / remove issuer documentsAttach and remove documents associated with a registered issuerDocumentation Link

Documentation Link
CED0001
CED0003*Register / remove issuer representativesAdd and remove representatives associated with a registered issuerDocumentation Link

Documentation Link
CED0001
CED0004*Upload / remove representative documentsAttach and remove documents associated with a representative of a registered issuerDocumentation Link

Documentation Link
CED0001, CED0003
CED0005*Register / remove issuer bank accountAdd and remove a bank account associated with a registered issuerDocumentation Link

Documentation Link
CED0001
CED0006*Register / remove issuer signer groupsAdd and remove signer groups associated with a registered issuerDocumentation Link

Documentation Link
CED0001, CED0003
CED0007*Register / remove issuer contact informationAdd and remove contact information associated with a registered issuerDocumentation Link

Documentation Link
CED0001
CED0008*Submit issuer for analysisMove the issuer to analysis status, sending it into the validation processDocumentation LinkCED0001 → CED0007
CED0009*Amend issuer registrationReopen the issuer for editingDocumentation LinkCED0001 → CED0007
CED0010*List registered issuersList registered issuers, filtering by CNPJ or nameDocumentation LinkCED0001
CED0011*Issuer detailsRetrieve the details of a registered issuer by issuer_keyDocumentation LinkCED0001
Gate to Phase 2

The signer group registered in CED0006 defines which representative will sign on the issuer's behalf. That same representative is the person who signs the auto-signature adoption agreement in Phase 2 and whose authority the private certificate represents. Register it correctly before submitting the issuer for analysis — a change afterwards requires re-running Phase 2.


5. Phase 2 — Auto-signature enablement 🆕

This phase is the new capability that makes the automated flow possible. It runs once per issuer, after the issuer registration has been approved, and results in a QI Tech private certificate scoped exclusively to the NC documents of this integration.

What the adoption agreement authorizes. It grants QI Tech a limited mandate to issue and hold an internal private certificate, released in CertifiQI, to be used solely for signing the documents of this NC flow on the issuer's behalf — never for any other document, product or counterparty. It is signed once, with facial-recognition biometrics, by the representative registered in CED0006.

When it is signed. The agreement is bundled into the first issuance package. The first operation therefore still carries a human signing step; from the second operation onward, issuer-side signing is fully automatic.

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
ASG0001*Check auto-signature eligibilityRead the issuer's signature_configuration block to confirm the issuer is approved and eligible for auto-signature enablementDocumentation Link (pending publication)CED0011 or CED1003🆕
ASG0002*Request auto-signature enablementRequest enablement for an approved issuer, indicating the signer group and the representative who will sign the adoption agreement. Returns an auto_signature_key in pending_agreement statusDocumentation Link (pending publication)ASG0001, CED0006🆕
ASG0003*Retrieve adoption agreement signature linkRetrieve the link through which the representative signs the adoption agreement with facial recognition. In the first issuance this link is delivered as part of the operation's signature packageDocumentation Link (pending publication)ASG0002🆕
ASG0004*Webhook — adoption agreement signedReceive the webhook confirming that the adoption agreement was signed and validatedDocumentation Link (pending publication)CAB0003, ASG0003🆕
ASG0005Private certificate issuanceQI Tech creates the private certificate and releases it in CertifiQI, scoped to this issuer's NC documents. Manual today (one-off per issuer, executed by QI Tech); API automation is on the roadmap and does not block go-liveASG0004⚙️ 🆕
ASG0006*Query auto-signature statusQuery the enablement by auto_signature_key or by issuer_key and confirm the transition to active. No NC may rely on automatic signing before this status is reachedDocumentation Link (pending publication)ASG0002🆕
ASG0007*Webhook — auto-signature activeReceive the webhook signalling that the certificate is available and the issuer is enabled for automatic signingDocumentation Link (pending publication)CAB0003, ASG0005🆕
ASG0008Retrieve signed adoption agreementRetrieve the signed adoption agreement document for the integrator's own records and audit trailDocumentation Link (pending publication)ASG0004🆕
ASG0009Revoke auto-signatureRevoke the enablement and the associated certificate — required when the representative changes, when the signer group is amended, or at the issuer's request. After revocation, issuances revert to the manual signature flow until Phase 2 is repeatedDocumentation Link (pending publication)ASG0006🆕

5.1 Enablement status machine

StatusMeaningSigning behaviour of a new NC
not_requestedIssuer approved but never submitted for enablementManual signature (QI SIGN)
pending_agreementEnablement requested; adoption agreement not yet signedManual signature — the agreement travels in this operation's package
pending_certificateAgreement signed; certificate being issued by QI TechManual signature — hold new issuances until active
activeCertificate released in CertifiQIAutomatic
revokedEnablement revokedManual signature (QI SIGN)
Homologation requirement

The integrator must demonstrate, in Sandbox, that its system reads the enablement status before creating an operation and routes correctly in both directions: automatic signing when active, and the QI SIGN fallback (COM0015 / COM0016) in every other status. An integration that assumes active will break on the first issuance for every new issuer.


6. Phase 3 — Investor homologation

Attention

If the client operates with fixed funds, those can be registered during setup, which simplifies the integration considerably. For this flow the fixed-fund path is the expected configuration.

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
INV1001*List registered investorsList registered funds, filtering by CNPJ or nameDocumentation LinkCAB0002
INV1002*Investor detailsRetrieve the details of a registered investor by investor_keyDocumentation LinkCAB0002

6.2 Investors registered through the system — only if fixed funds are not used

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
INV0001*Basic investor registrationCreate the investor with its basic registration dataDocumentation LinkCAB0002
INV0002*Upload / remove investor documentsAttach and remove documents associated with a registered investorDocumentation Link

Documentation Link
INV0001
INV0003*Register / remove investor representativesAdd and remove representatives associated with a registered investorDocumentation Link

Documentation Link
INV0001
INV0004*Upload / remove representative documentsAttach and remove documents associated with a representative of a registered investorDocumentation Link

Documentation Link
INV0001, INV0003
INV0005*Register / remove investor bank accountAdd and remove a bank account associated with a registered investorDocumentation Link

Documentation Link
INV0001
INV0006*Register / remove investor signer groupsAdd and remove signer groups associated with a registered investorDocumentation Link

Documentation Link
INV0001
INV0007*Register / remove investor contact informationAdd and remove contact information associated with a registered investorDocumentation Link

Documentation Link
INV0001
INV0008*Submit investor for analysisMove the investor to analysis status, sending it into the validation processDocumentation LinkINV0001 → INV0007
INV0009*Amend investor registrationReopen the investor for editingDocumentation LinkINV0001 → INV0007
INV0010*List registered investorsList registered funds, filtering by CNPJ or nameDocumentation LinkINV0001
INV0011*Investor detailsRetrieve the details of a registered investor by investor_keyDocumentation LinkINV0001

7. Phase 4 — NC issuance

Once issuers and investors are registered, commercial notes can be issued. Issuance via API is the core premise of this integration: the screen-based flow does not work at the intended volume.

7.1 Operation creation

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
COM0001*Simulate financial conditionsSimulate the financial conditions and payment schedule of an operationDocumentation LinkCAB0002
COM0002*Create NC operationCreate a new commercial note operation from the financial and investor dataDocumentation LinkCOM0001, CED0011/CED1003, INV1002
COM0003*Register / remove related partiesAdd and remove parties related to an operationDocumentation LinkCOM0002
COM0004*Upload / remove related-party representative documentsAttach and remove documents associated with representatives of related partiesDocumentation LinkCOM0002, COM0003
COM0005*Register / remove related-party signer groupsAdd and remove signer groups associated with representatives of related partiesDocumentation LinkCOM0002, COM0003
COM0006Preview constitutive termGenerate a draft of the Constitutive Term for a given operation from a predefined templateDocumentation LinkCOM0002
COM0007*Change constitutive term templateChange the Constitutive Term template used by a given operationDocumentation LinkCOM0002
COM0008*Upload documentsUpload documents associated with an operation. The returned document_key can be used, for example, in the collateral systemDocumentation LinkCOM0002
COM0009*Register collateralAdd collateral associated with an operationDocumentation LinkCOM0002, COM0008
COM0010*Register / remove related parties of a contract or collateralAdd and remove parties related to a specific contract or collateral of the operationDocumentation LinkCOM0002, COM0003
COM0011*Submit operation for analysisMove the operation to "under analysis", sending it into the compliance validation processDocumentation LinkCOM0002 → COM0009
COM0012*Submit signed approval minutesSubmit externally signed approval minutes for SA or COP issuers, as a base64 payload analysed and approvedDocumentation LinkCOM0002
COM0013*Query operations by filterQuery commercial note operations using optional filtersDocumentation LinkCOM0002 → COM0009
COM0014*Query operation by keyQuery the full details of a specific operation using its unique keyDocumentation LinkCOM0002 → COM0009

7.2 Signing — automatic path (issuer with active auto-signature) 🆕

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
COM0020*Automatic approvalWith auto-signature active and the operating terms pre-approved, the operation transitions from analysis to approved without manual intervention. The integrator observes the transition via webhookDocumentation Link (pending publication)COM0011, ASG0006⚙️ 🆕
COM0021*Automatic signing of the constitutive termQI Tech signs the Constitutive Term on the issuer's behalf using the private certificate released in CertifiQI. No signature link is generated for the issuerDocumentation Link (pending publication)COM0020⚙️ 🆕
COM0022*Webhook — operation signedReceive the webhook confirming that all signatures of the operation have been completedDocumentation LinkCAB0003, COM0021🆕
COM0023*Retrieve signed documentsRetrieve the signed documents of the operation by its unique key, including the signature evidence reportDocumentation LinkCOM0022

7.3 Signing — manual fallback (QI SIGN)

Required for the first issuance of each issuer — which carries the adoption agreement — and for any issuer whose enablement status is not active.

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
COM0015*Query QI SIGN signature linksQuery all signature links of a specific operation via QI SIGN, using its unique keyDocumentation LinkCOM0002 → COM0009
COM0016*Query signed contract linksQuery all signed documents of a specific operation via QI SIGN, using its unique keyDocumentation LinkCOM0002 → COM0009

8. Phase 5 — Subscription and settlement

With the operation signed, the subscription bulletin is generated automatically and made available for the investor to sign. Where the investor is also enabled for auto-signature, this step requires no human interaction either.

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
INT0001*Query settlement process by keyQuery the details of a settlement (integralização) process using its unique keyDocumentation LinkCOM0022
INT0002*Query subscriptionQuery an ongoing subscriptionDocumentation LinkINT0001
INT0003Register subscriptionRegister an investor's intention to subscribe a specific number of quotas — useful when a subscription date must be shiftedDocumentation LinkINT0001, INT0002
INT0004Cancel subscriptionCancel a subscription — useful when a subscription date must be shiftedDocumentation LinkINT0001, INT0002
INT0005*Webhook — subscription bulletin signedReceive the webhook confirming that the subscription bulletin has been signed. This is the trigger the client system uses to command the funding transfer in Phase 6.1 (TFI0002)Documentation LinkCAB0003, INT0002🆕

9. Phase 6 — Funding and disbursement 🆕

Phase 6 has two legs. The first (6.1) is triggered by the integrator's own system when it receives the subscription bulletin signature webhook, and moves the funds into the WL settlement account. The second (6.2) pays the supplier out of that account.

9.1 Leg 1 — Transfer to the WL settlement account 🆕

Trigger. The subscription bulletin signed webhook (INT0005) is the event that authorizes the funding transfer. On receiving it, the client system commands a payment in the BaaS API sending a transfer to the WL's settlement (liquidation) account. QI Tech does not initiate this transfer — it is an integrator-side action, and the webhook is its only trigger. Nothing in this leg may be fired before INT0005 arrives: a transfer commanded against an unsigned bulletin has no backing operation.

Because both the origin and the destination are QI Contas, this is an internal transfer (QI Conta → QI Conta), which settles in real time and does not depend on Pix or TED rails.

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
TFI0001*Query the WL settlement accountRetrieve the WL settlement (liquidation) account that will receive the funds, including its identifiers and balanceDocumentation LinkCAB0002
TFI0002*Command the internal transferOn receiving INT0005, command the transfer from the origin QI Conta to the WL settlement account. The request must carry the operation's unique key so the credit can be reconciled back to the NCDocumentation LinkINT0005, TFI0001
TFI0003*Query the transferQuery the commanded transfer and confirm it settled into the WL settlement accountDocumentation LinkTFI0002
TFI0004*Webhook — transaction settledReceive the account movement webhook confirming the credit in the WL settlement account. This is the trigger for leg 6.2Documentation LinkCAB0003, TFI0002
TFI0005Transfer receiptRequest the transfer receipt for the integrator's own records and audit trailDocumentation LinkTFI0002
Idempotency

The webhook may be delivered more than once. The integrator must key the transfer on the operation so that a redelivered INT0005 does not command a second transfer for the same NC. Reconciliation between the operation key and the credited transaction is the integrator's responsibility.

TFI0002 — Command the internal transfer

ENDPOINT
/account/ACCOUNT_KEY/ted
METHOD
POST

ACCOUNT_KEY is the origin QI Conta being debited. target_account is the WL settlement account — for the internal path its ispb is QI Tech's own (32402502), which is what makes the transfer settle account-to-account instead of going out over the TED rail.

Request Body
{
"request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
"target_account": {
"account_branch": "0001",
"account_number": "2359934",
"account_digit": "2",
"owner_document_number": "09080702000105",
"owner_name": "WL Settlement Account",
"ispb": "32402502",
"account_type": "checking_account"
},
"transaction_amount": 150000.00
}
request_control_key is the idempotency key

Derive it deterministically from the NC operation key rather than generating a fresh UUID per attempt. A redelivered INT0005 that produces the same request_control_key is rejected as a duplicate instead of double-paying the settlement account.

Response Body — 201
{
"request_control_key": "0c3d2a3e-c121-464e-b5a4-8e69e0c17bbd",
"ted_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"created_at": "2021-10-22T20:30:23.459Z",
"ted_status": "sent",
"transaction_amount": 150000.00,
"fee_amount": 0.0,
"transaction_key": "46804f32-101e-4702-8fbc-c2dbc4c2caec"
}

TFI0004 — Webhook confirming the credit

The credit in the WL settlement account arrives as an account_transaction webhook with a positive data.amount and source_sub_type = internal_funds_transfer. Match data.transaction_key against the transaction_key returned by TFI0002 to close the loop back to the NC operation.

WEBHOOK_TYPE
account_transaction
Webhook Body
{
"key": "<ACCOUNT-KEY>",
"data": {
"amount": 150000.00,
"origin": {
"name": "Origin Account",
"branch": "0001",
"document": "32402502000135",
"account_key": "5d068423-6094-49e4-b15b-7740038295a8",
"account_digit": "5",
"account_number": "00002"
},
"timestamp": "2022-09-02T21:36:33.446120",
"destination": {
"name": "WL Settlement Account",
"branch": "0001",
"document": "09080702000105",
"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
"account_digit": "2",
"account_number": "2359934"
},
"reference_key": "983b4a28-7de6-4e71-97ef-60fb50c7b013",
"reference_type": "movement_request",
"account_balance": 150000.00,
"source_sub_type": "internal_funds_transfer",
"transaction_key": "46804f32-101e-4702-8fbc-c2dbc4c2caec",
"source_sub_type_str": "Transferência Interna"
},
"datetime": "2022-09-02T21:36:33.446120",
"webhook_type": "account_transaction"
}
Do not map webhooks restrictively

Additional fields may be added to QI Tech webhook payloads at any time. Parse defensively — an integration that rejects unknown fields will break on a future release.

9.2 Leg 2 — Disbursement to the supplier 🆕

The issuer's settlement account is opened by QI Tech free of charge at issuance and is referenced in the NC signature package. Paying the supplier from the issuer's own settlement account preserves the commercial relationship: the supplier sees the payment arriving from its own client.

CodeStepDescriptionDocumentation LinkPrerequisitesStatus
PAY0001*Query the issuer settlement accountRetrieve the settlement account opened for the issuer at issuance, including its identifiers and balanceDocumentation Link (to be confirmed)COM0022🆕
PAY0002*Confirm funds availableConfirm that the funds transferred in leg 6.1 have settled into the settlement accountDocumentation LinkTFI0004
PAY0003*Initiate third-party paymentTrigger the payment from the issuer's settlement account to the supplier via the BaaS API. Estimated 4 weeks of developmentDocumentation Link (pending publication)PAY0002🆕
PAY0004*Query payment statusQuery the status of a payment by its unique keyDocumentation Link (to be confirmed)PAY0003🆕
PAY0005*Webhook — payment settledReceive the webhook confirming that the supplier has been paidDocumentation Link (to be confirmed)CAB0003, PAY0003🆕
Phase 1 scope

One NC per payment. Disbursement splitting — one note funding several supplier payments — is not supported in this phase and is targeted for phase 2 of the project. The integrator must model its requests accordingly: one operation, one beneficiary.


10. Webhook summary

Because the flow removes every manual checkpoint, these are the events the integrator must consume to follow an operation end to end.

EventPhaseWhat it unlocks
Issuer status changed1Approval gate — enables the Phase 2 request
Adoption agreement signed2Certificate issuance begins
Auto-signature active2All subsequent issuances may run automatically
Operation status changed4Visibility over analysis → approved
Operation signed4Subscription bulletin generation
Subscription bulletin signed5Trigger for the funding transfer to the WL settlement account (TFI0002)
Account transaction (internal_funds_transfer)6.1Funds confirmed in the WL settlement account — releases the supplier disbursement
Payment settled6.2Closes the cycle

11. Open points to be closed before go-live

#Open pointOwnerImpact
1Confirm the NC operating terms — number of instalments, payment methods and contract template. The auto-signature must cover every operating mode the client uses; anything outside the pre-approved set falls back to manual signingClientBlocks the definition of the auto-signature scope
2Define the supplier payment method: Pix/QR code or boleto. Pix/QR is straightforward; boleto requires significantly more developmentClient + QI TechSizes the Phase 6 development
3Third-party payment from the settlement account — estimated 4 weeks of developmentQI TechBlocks Phase 6
4Certificate creation via API — manual today (one-off per issuer, executed by QI Tech); timeline under assessment. Does not block go-liveQI TechAffects onboarding scalability, not the first operations
5Publication of the Phase 2 endpoint contracts (ASG) and of the automatic approval/signing behaviour (COM0020–COM0022)QI TechBlocks Phase 2 homologation
6Disbursement splitting confirmed as phase 2 scopeClient + QI TechDefines the phase 1 boundary
7Confirm which QI Conta is debited as the origin of the leg 6.1 transfer, and whether the WL settlement account is the same account referenced in the NC signature package or a separate oneClient + QI TechFixes the ACCOUNT_KEY and target_account of TFI0002

12. Error mapping

Errors originating from the issuer, investor and commercial note APIs are catalogued in the Error Catalog.

Auto-signature-specific errors — attempting issuance while enablement is not active, a revoked certificate, an operating term outside the approved scope, or a mismatch between the signer group and the certificate holder — will be added to the same catalog when the ASG endpoints are published.