Use a field-level contract to define employee identity, approved amounts, delivery controls, and the acknowledgment payroll must return.

Commission software should send payroll a stable employee identifier, legal entity, payout currency, earning code, commission period, destination payroll period, approved amount, approval status and reference, and stable batch and row identifiers. Together, these fields establish who receives what, through which payroll run, and under whose approval. When implementing Qobra, define this contract before configuring the handoff; an integration mechanism alone does not establish the receiving system’s requirements.

Agree the payroll handoff contract. Keep stable identifiers, decimal precision and a traceable batch reference.
Keep stable identifiers, decimal precision and a traceable batch reference. Illustrative field checklist • confirm the destination specification.

The contract should specify each field’s owner, format, validation, and missing-value action. It should also explain how payroll acknowledges receipt and how both teams distinguish an unchanged retry from a correction.

Define what one payroll row represents

Use one approved amount per employee, legal entity, currency, earning code, commission period, and destination payroll period. Keep the two periods separate: September commissions may enter an October payroll run. If several statements contribute to one row, maintain a mapping back to their approved versions.

Match workers using the payroll-recognized identifier, not names or email addresses. Preserve identifiers as text, including leading zeros. Where systems use different IDs, assign HRIS responsibility for a controlled crosswalk.

For an employee transferring between entities, payroll must confirm the paying entity for the destination period. Do not infer it from currency or simply copy the latest employee record. Keep bank details and unrelated personal information outside this handoff.

A field dictionary with accountable owners

This is a recommended destination schema, not a Qobra native export layout. The hypothetical samples below demonstrate the contract. Where payroll cannot ingest a control field, retain it in a companion record linked to the delivered row.

Field Owner Validation Missing-value action
employee_id HRIS Text; matches one worker in the entity. Quarantine; resolve crosswalk.
legal_entity Payroll/HRIS Valid worker assignment for receiving period. Quarantine; confirm assignment.
currency Payroll Three-letter ISO currency code accepted by destination. Quarantine; never infer.
earning_code Payroll Active code permitted for this entity. Quarantine; approve mapping.
commission_period Compensation operations Identifies the approved earning window. Quarantine; identify period.
payroll_period Payroll Maps to intended receiving run. Quarantine; assign run.
approved_amount Compensation approver Exact approved value; agreed precision and sign. Quarantine; never substitute zero.
approval_status Compensation approver Must equal APPROVED before release. Block release.
approval_reference Compensation approver Resolves to exact amount and statement version. Block release.
batch_id Integration owner Identifies an immutable delivery set. Block batch delivery.
row_id Integration owner Unique logical item within the agreed sender namespace. Block row delivery.
schema_version Integration owner Version supported by receiver. Block batch delivery.

Quarantine means exclude the row from release, retain the failure reason, and route it to the named owner. Never silently drop it. Agree whether one invalid row blocks the entire batch or permits a controlled partial release; record every excluded row either way.

Two hypothetical handoff rows

Assume both workers belong to US01, receive USD commissions, and have approved September amounts assigned to the same October run. The table displays two logical rows vertically for readability. Batch ID and schema version could instead appear once in a file header or API envelope.

Field Sample row 1 Sample row 2
employee_id 000184 000207
legal_entity US01 US01
currency USD USD
earning_code COMM COMM
commission_period 2026-09 2026-09
payroll_period US01-2026-10-P1 US01-2026-10-P1
approved_amount 1250.00 375.50
approval_status APPROVED APPROVED
approval_reference APR-087 APR-088
batch_id COMM-202610-001 COMM-202610-001
row_id CL-000391 CL-000392
schema_version 1.0 1.0

Specify precision, locale, and sign conventions

For this USD example, transmit amounts with exactly two decimal places, a period decimal separator, no currency symbol, and no thousands separator. Thus 1250.00 is valid; 1,250.00 is not. Use decimal arithmetic and serialize the approved result without introducing another rounding step.

Agree currency-specific precision and rounding ownership before supporting other currencies. Do not assume every currency uses two decimal places or silently convert amounts. Define the file encoding, delimiter, maximum field lengths, and identifier types; test that spreadsheet handling does not turn 000184 into 184.

In this contract, positive amounts represent approved additions. If signed adjustments are supported, define their meaning separately with payroll. A negative calculation does not authorize a deduction or wage recovery. A blank amount is an error, not zero; accept zero only when explicitly approved and supported by the receiving process.

Require a payroll acknowledgment, not just a delivery receipt

Track calculation, approval, transmission, destination acceptance, and payment separately. Compensation operations prepares the data, an authorized approver releases it, the integration owner tracks delivery, and payroll confirms acceptance. A successful upload or HTTP response may establish receipt without confirming row-level validation.

For the hypothetical batch, request a counterpart acknowledgment containing:

  • Batch and version: COMM-202610-001; schema 1.0.
  • Receiving run: US01-2026-10-P1.
  • Row outcomes: CL-000391 ACCEPTED; CL-000392 ACCEPTED.
  • Control totals: two accepted rows, zero rejected rows, USD 1625.50 accepted under US01/COMM.
  • Receipt reference and timestamp: ACK-00421; 2026-10-05T14:30:00Z.

This example confirms acceptance, not payment. For rejections, require the row ID and a reason such as INVALID_EARNING_CODE, plus an owner for resolution. If acknowledgment never arrives, investigate destination status before treating the delivery as failed and resending it.

Keep deeper total-matching procedures in the process for reconciling approved commissions with payroll. Here, the essential requirement is that both systems can identify the same batch, rows, and outcomes.

Make retry and correction idenNL05.htmltities different

Test an unchanged retry

Deliver the sample batch, simulate a lost acknowledgment, and deliver the identical payload again. Require the receiving implementation to recognize existing row IDs and return or retrieve the previous outcome without creating additional payable items. The logical accepted total must remain USD 1625.50, not USD 3251.00.

Keep both batch and row identities unchanged for this retry. A separate transmission-attempt identifier may change, but it must not replace the logical row identity. Also test the same row ID with a different amount: require rejection as a conflict, not silent overwrite. Specify how long duplicate records remain available to cover the agreed retry window.

Give corrections their own traceable identity

An approved correction is not a retry. Hypothetically, if payroll authorizes a separate additional USD 50.00 for CL-000391, assign a new row ID, such as CL-000393, and a new batch ID. Include correction_of_row_id = CL-000391, a reason, a new approval reference, and the assigned payroll period. Define 50.00 explicitly as an incremental amount, not a replacement total.

Under those assumptions, the worker’s original USD 1250.00 plus the separate USD 50.00 equals USD 1300.00. Preserve the original record rather than rewriting it. The operational treatment for handling corrections after a payroll close belongs in a separate workflow; the field contract supplies the linkage without deciding payroll policy.

Evaluate tools against the handoff requirements

Keep the evaluation focused on mapping and controls rather than a connector logo:

  • Qobra: A strong fit for administrator-owned commission rules and controlled release, with a no-code plan editor, approval and statement-lock workflows, custom roles, audit trails, and outbound APIs/webhooks. Its guide to commission software and payroll handoffs adds context. Require demonstration of this contract’s mapping and acknowledgment path.
  • CaptivateIQ: Relevant when data preparation needs substantial transformation. SmartGrid supports joins, unions, point-and-click transformations, and effective dating, alongside approvals and audit logs. Test historical employee/entity mappings.
  • Salesforce Spiff: Relevant for calculation tracing, rep statements, audit logs, and connections across CRM, ERP, HCM, and payroll. Test the exact receiving-system mapping.

Qobra’s webhook can send an HTTPS request when a statement is sent to payroll. That mechanism does not establish a particular native payroll connector, this schema, or duplicate handling. Qobra hands off approved commission data; it does not execute payroll or move funds.

Source freshness also matters before approval. Qobra’s Salesforce and HubSpot inbound connectors are read-only, with nightly full refreshes, incremental updates every two hours, and manual refresh—not streaming or CRM writeback. Check the last successful refresh against the agreed cutoff.

Assign ownership before changing the contract

Make the integration owner responsible for the schema register and payroll responsible for destination acceptance rules. Require HRIS approval for identity changes and compensation approval for amount or approval semantics. Record each change’s version, effective batch, mapping, test results, and rollback plan.

Do not change a field’s meaning under an existing version. Agree how long sender and receiver support the previous version, and reject unsupported versions before import. Start with the two sample rows: prove leading-zero preservation, missing-value quarantine, acknowledgment, duplicate prevention, and correction linkage before releasing live commissions.