Skip to Content
DestinationsOtherPartnerStack

PartnerStack

Sync partner ecosystem data to PartnerStack for partnership management, customer attribution, deal tracking, and revenue recording. Zeotap supports creating and updating customers, partnerships, deals, and transactions via the PartnerStack Vendor API.

Prerequisites

  • A PartnerStack vendor account with API access enabled
  • PartnerStack API keys (public key and secret key) from Settings > Integrations > PartnerStack API Keys
  • Appropriate permissions for the objects you plan to sync (customers, partnerships, deals, or transactions)

Authentication

PartnerStack uses API Key authentication via HTTP Basic Auth.

  1. Log in to your PartnerStack vendor dashboard
  2. Navigate to Settings > Integrations > PartnerStack API Keys
  3. Copy your Public Key and Secret Key
  4. In Zeotap, enter the Public Key and Secret Key when configuring the destination

PartnerStack provides separate test and production keys. Use test keys during development and switch to production keys before going live.

Configuration

No additional configuration fields are required beyond authentication.

Target Settings

FieldTypeRequiredDescription
Object TypeSelectYesThe PartnerStack object to sync data to. Options: Customers, Partnerships, Deals, Transactions.

Supported Operations

Sync Modes

ModeSupportedNotes
InsertYesCreates new records in PartnerStack
UpdateYesUpdates existing customers and partnerships by key
UpsertYesCreates or updates records based on key presence

Note: Transactions are append-only and only support the Insert sync mode. Deals support Insert and Upsert only; the Update mode is not currently wired up for deals in Zeotap.

Audience Sync Modes

ModeSupported
Add
Remove
Mirror

PartnerStack does not have a list or audience membership concept, so audience sync modes are not supported.

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

Required fields vary by object type.

Customers

Destination FieldTypeRequiredDescription
emailStringYesCustomer email address
partner_keyStringYesKey of the partner responsible for the customer

Partnerships

Destination FieldTypeRequiredDescription
emailStringYesPartner email address

Deals

Destination FieldTypeRequiredDescription
group_keyStringYesUnique key of the group for the deal’s partner
account_nameStringYesName of the deal account
amountNumberYesDeal amount in cents
close_dateStringYesExpected close date (YYYY-MM-DD)
contact_first_nameStringYesContact’s first name
contact_last_nameStringYesContact’s last name
stageStringYesCurrent deal stage (must match a configured stage)

Transactions

Destination FieldTypeRequiredDescription
amountNumberYesTransaction amount in cents
currencyStringYesThree-letter ISO currency code (e.g., USD, EUR)
customer_keyStringYesPartnerStack customer key, external key, or email

Default Destination Fields

Customers

FieldTypeDescription
emailStringCustomer email address
partner_keyStringKey of the partner responsible for the customer
customer_keyStringExternal customer key for identification
nameStringCustomer or company name (max 100 characters)
provider_keyStringPayment provider identifier (e.g., Stripe customer ID)

Partnerships

FieldTypeDescription
emailStringPartner email address
first_nameStringPartner’s first name
last_nameStringPartner’s last name
partner_keyStringUnique partner identifier
group_keyStringGroup identifier for partnership placement
manager_emailStringEmail of the assigned partner manager

Deals

FieldTypeDescription
group_keyStringUnique key of the group for the deal’s partner
account_nameStringName of the deal account
amountNumberDeal amount in cents
close_dateStringExpected close date (YYYY-MM-DD or ISO 8601)
contact_first_nameStringContact’s first name
contact_last_nameStringContact’s last name
stageStringCurrent deal stage
customer_keyStringAssociated customer identifier
sourceStringDeal source: partner or vendor

Transactions

FieldTypeDescription
amountNumberTransaction amount in cents
currencyStringThree-letter ISO currency code
customer_keyStringPartnerStack customer key
customer_external_keyStringExternal customer key (alternative to customer_key)
category_keyStringTransaction category identifier
product_keyStringTransaction product identifier
keyStringUnique transaction key in PartnerStack

How It Works

  1. Zeotap maps each row to the selected PartnerStack object type using your field mapping configuration
  2. Each row is sent as an individual API request to the PartnerStack Vendor API v2 (https://api.partnerstack.com/api/v2/)
  3. Authentication uses HTTP Basic Auth with your public key as the username and secret key as the password
  4. For upsert sync mode on customers and partnerships, Zeotap attempts to update the record first (using customer_key or partnership_key), and creates a new record if the update fails
  5. Transactions are always created (append-only) — they cannot be updated or deleted
  6. Deals are created via POST — the PartnerStack API does not support deal updates
  7. Failed rows are logged individually with error details and do not prevent remaining rows from being processed

Rate Limits

PartnerStack enforces a rate limit of 4,000 requests per minute per IP address. Exceeding this limit results in HTTP 429 (Too Many Requests) responses. Zeotap processes rows sequentially and includes automatic retry logic with exponential backoff for rate limit responses.

Best Practices

  • Use test API keys during initial setup and testing. Test keys create test customers that do not affect production data.
  • Provide a customer_key when creating customers so you can reference them in transactions later.
  • Match deal stages exactly to the stages configured in your PartnerStack group settings. Mismatched stage names cause API errors.
  • Use ISO currency codes for transactions (e.g., USD, EUR, GBP). The currency field must be exactly 3 characters.
  • Transaction amounts are in cents — multiply dollar amounts by 100 before syncing.
  • Set partner_key on customer records to ensure proper attribution in the partner program.

Troubleshooting

Authentication failed (HTTP 401)

Verify your public key and secret key in Settings > Integrations > PartnerStack API Keys. Ensure you are using the correct key pair (test vs. production). Regenerate keys if they may have been compromised.

Customer creation fails with “partner_key required”

Every customer record must include a partner_key field that references an existing partner in your PartnerStack program. Verify the partner key is correct and the partner exists.

Transaction fails with “customer not found”

The customer referenced by customer_key, customer_external_key, or customer_email must already exist in PartnerStack. Create the customer first, then sync transactions.

Deal creation fails with “invalid stage”

The stage field must exactly match one of the configured deal stages in your PartnerStack group settings. Check Programs > [Group] > Deal Stages for valid values.

Rate limit exceeded (HTTP 429)

Zeotap automatically retries rate-limited requests with exponential backoff. If you consistently hit rate limits, reduce the sync frequency or split large syncs into smaller batches.

Update fails with “not found” (HTTP 404)

When using Update sync mode, the record must already exist. Ensure the customer_key or partnership_key is correct. Consider switching to Upsert mode to automatically create missing records.

Test data appearing in production

Ensure you are using production API keys, not test keys. Customers created with test keys are marked as test customers and cannot receive production transactions.

Amount field errors

The amount field for both deals and transactions must be an integer representing cents. If you see validation errors, verify that amounts are not in dollars (e.g., use 1000 for $10.00, not 10.00).

Last updated on