> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topsort.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upsert Campaign Billing Contact

> Assign a billing contact to a campaign.

The campaign's billing contact is the advertiser and payer you display next to its
ads to meet the Digital Services Act (DSA). Campaigns created in the Topsort UI get
their billing contact from the campaign form. Campaigns created through the Campaign
API need this call, because Create Campaign doesn't accept a billing contact.

A campaign has one billing contact. Calling this again replaces it. Use a contact
that is linked to the campaign's vendor.

Returns `404` if the billing contact or the campaign doesn't exist in your
marketplace.

See the [DSA setup guide](https://docs.topsort.com/en/ad-server/additional-apis/digital-services-act).



## OpenAPI

````yaml /openapi.json put /public/v1/billing-service/campaign-billing-contact
openapi: 3.1.0
info:
  title: Topsort Endpoints v2 API Reference
  description: >
    In order for a storefront to be able to run auctions in Topsort and report
    auction-related events back to Topsort,

    both the `/v2/auctions` and `/v2/events` endpoints must be integrated.

    Below are the endpoint and model definitions for each.
  contact:
    email: wicha@topsort.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://assets.topsort.com/Topsort_logo_icon_dark.svg
    backgroundColor: '#fff'
    altText: Topsort
  version: 2.0.0
servers:
  - url: https://api.topsort.com
    description: Base API URL
security: []
tags:
  - name: Auctions
    description: >-
      An auction determines which products should be promoted based on the
      vendors' bids.
  - name: Events
    description: >-
      Events are sent to Topsort as part of the attribution and reporting
      journey.
  - name: Toptimize
    description: >
      An out-of-the-box solution for prediction, ranking, retrieval, and other
      elements of ad selection.
  - name: Toppie API
    description: Toppie management API.
  - name: Campaign API
    description: Full-featured campaign management API for banners and sponsored listings.
  - name: Catalog API
    description: Products catalog management API.
  - name: Billing API
    description: Marketplace and Vendor Billing management API.
  - name: Reporting API
    description: Marketplace, Vendor, Campaign, and product reporting API.
  - name: Invitation API
    description: Vendor invitations management API.
  - name: User API
    description: User management API.
  - name: Webhooks API
    description: Webhooks API that allows event-driven automation.
  - name: Assets API
    description: Assets management API.
  - name: Segments Service
    description: Segments Service.
  - name: Forecasting Service
    description: Toptimize Forecasting Service.
  - name: Offsite Ads API
    description: Offsite Ads API that allows to manage offsite ads campaigns.
  - name: Media API
    description: Ad configuration API.
  - name: Placement API
    description: Placement management API for sponsored brand slots.
  - name: Export API
    description: Request an asynchronous Parquet export of your performance data.
paths:
  /public/v1/billing-service/campaign-billing-contact:
    put:
      tags:
        - Billing API
      summary: Upsert Campaign Billing Contact
      description: >-
        Assign a billing contact to a campaign.


        The campaign's billing contact is the advertiser and payer you display
        next to its

        ads to meet the Digital Services Act (DSA). Campaigns created in the
        Topsort UI get

        their billing contact from the campaign form. Campaigns created through
        the Campaign

        API need this call, because Create Campaign doesn't accept a billing
        contact.


        A campaign has one billing contact. Calling this again replaces it. Use
        a contact

        that is linked to the campaign's vendor.


        Returns `404` if the billing contact or the campaign doesn't exist in
        your

        marketplace.


        See the [DSA setup
        guide](https://docs.topsort.com/en/ad-server/additional-apis/digital-services-act).
      operationId: upsert_campaign_bill_contact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Advanced_APIs_PublicUpsertBillingContactCampaignRequest
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Advanced_APIs_HTTPValidationError'
      security:
        - Advanced_APIs_HTTPBearer: []
components:
  schemas:
    Advanced_APIs_PublicUpsertBillingContactCampaignRequest:
      properties:
        billingContactId:
          type: string
          title: Billingcontactid
          description: The ID of the billing contact.
        campaignId:
          type: string
          format: uuid
          title: Campaignid
          description: The ID of the campaign.
      type: object
      required:
        - billingContactId
        - campaignId
      title: PublicUpsertBillingContactCampaignRequest
    Advanced_APIs_HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/Advanced_APIs_ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Advanced_APIs_ValidationError:
      properties:
        loc:
          items:
            oneOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    Advanced_APIs_HTTPBearer:
      type: http
      description: >-
        A valid API key generated in Topsort's UI. Use the TSE API key if
        calling auctions or events API, otherwise use the TSC API key.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.