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

# Contact bijwerken

> Wijzig gegevens, notities, tags of het toegewezen teamlid.

Stuur minstens één veld mee dat je wilt wijzigen. Velden die je weglaat, behouden hun bestaande waarde.

## Een waarde wissen

| Wijziging | Wat stuur je mee? |
| - | - |
| Een optionele tekstwaarde verwijderen, zoals `jobTitle` of `email` | `null` of een lege string |
| De toewijzing aan een teamlid verwijderen | `"connectedWithProfileId": null` |
| Alle tags verwijderen | `"tags": []` |

Je kunt `fullName` niet leegmaken. Wil je een ander teamlid toewijzen? Gebruik de `id` uit [Teamleden ophalen](https://docs.tapify.app/nl/api-reference/team-members/list.md). Het teamlid moet bij dezelfde workspace horen.

> [!NOTE]
>
> Met `tags` vervang je de volledige taglijst. Stuur elke tag mee die je wilt behouden. Tagkleuren worden gedeeld binnen de workspace. Hergebruik je een naam, dan wordt de kleur overal bijgewerkt. Zonder kleur wordt `neutral` gebruikt.

Gebruik `internalNote` voor een interne notitie in de workspace. `message` en `captureMethod` kun je alleen lezen. Als je ze meestuurt, krijg je `400 Bad Request`.

Een contact bijwerken of het toegewezen teamlid wijzigen verstuurt geen e-mail.


## OpenAPI

````yaml nl/api-reference/openapi.json PATCH /contacts/{contactId}
openapi: 3.0.3
info:
  title: Tapify API
  version: 1.0.0
  description: >-
    Lees en beheer opgeslagen contacten, teamleden en hun digitale
    visitekaartjes in één Tapify Teams-workspace. Vereist Teams Connect-toegang
    en een API-sleutel voor de workspace.
servers:
  - url: https://tapify.app/api/v1
    description: Tapify API
security:
  - bearerAuth: []
  - apiKeyHeader: []
tags:
  - name: Workspace
    description: Controleer de workspace die aan een API-sleutel is gekoppeld.
  - name: Teamleden
    description: Beheer teamleden en hun digitale visitekaartjes.
  - name: Contacten
    description: Beheer contacten die in de workspace zijn verzameld.
  - name: Zapier
    description: >-
      Endpoints die de Tapify-integratie met Zapier gebruikt voor
      triggervoorbeelden en REST Hook-abonnementen.
paths:
  /contacts/{contactId}:
    parameters:
      - $ref: '#/components/parameters/ContactId'
    patch:
      tags:
        - Contacten
      summary: Contact bijwerken
      description: Wijzigt alleen de velden die in het verzoek zijn opgenomen.
      operationId: updateContact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateContactRequest'
            example:
              internalNote: Send the proposal on Friday.
              tags:
                - name: Follow up
                  color: blue
      responses:
        '200':
          description: Bijgewerkt contact
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/SubscriptionRequired'
        '404':
          $ref: '#/components/responses/NotFound'
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    ContactId:
      name: contactId
      in: path
      description: Contact-id.
      required: true
      schema:
        type: string
        format: uuid
        example: f08f7c49-8f1e-42ac-b5ac-e0d6bd37d938
  schemas:
    UpdateContactRequest:
      type: object
      description: >-
        Geef ten minste één ondersteund veld mee. Weggelaten velden blijven
        ongewijzigd. message en captureMethod zijn alleen-lezen en kunnen niet
        worden meegestuurd.
      minProperties: 1
      properties:
        fullName:
          type: string
          description: Volledige naam met ten minste één teken dat geen witruimte is.
          example: Alex Morgan
          minLength: 1
        jobTitle:
          type: string
          nullable: true
        company:
          type: string
          nullable: true
        email:
          type: string
          format: email
          nullable: true
          description: E-mailadres. Stuur null of een lege string om het te verwijderen.
        mobile:
          type: string
          nullable: true
          description: Mobiel telefoonnummer.
        phone:
          type: string
          nullable: true
          description: Ander telefoonnummer, zoals een kantoornummer.
        website:
          type: string
          nullable: true
        linkedin:
          type: string
          nullable: true
        address:
          type: string
          nullable: true
        internalNote:
          type: string
          nullable: true
          description: >-
            Interne notitie in de workspace. Tapify toont of verstuurt deze niet
            aan het contact.
          example: Send the proposal on Friday.
        connectedWithProfileId:
          type: string
          format: uuid
          nullable: true
          description: >-
            Id van het teamlid uit het team-members-endpoint in deze workspace.
            Gebruik null om de toewijzing te verwijderen. Verstuurt geen e-mail.
        tags:
          type: array
          description: >-
            Volledige vervangende lijst met tags. Neem alle tags op die je wilt
            behouden of stuur [] om ze allemaal te verwijderen. Tagkleuren
            worden in de hele workspace gedeeld.
          items:
            $ref: '#/components/schemas/ContactTagInput'
    ContactResponse:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/Contact'
    ContactTagInput:
      type: object
      description: >-
        Een tag van de workspace. Als je een naam opnieuw gebruikt, wordt de
        kleur overal bijgewerkt waar die tag wordt gebruikt. Laat je color weg,
        dan wordt neutral gebruikt.
      required:
        - name
      properties:
        name:
          type: string
          description: Tagnaam die in Tapify wordt getoond.
          example: Follow up
          minLength: 1
        color:
          $ref: '#/components/schemas/ContactTagColor'
    Contact:
      type: object
      description: Een contact dat is opgeslagen in de Tapify Teams-workspace.
      required:
        - id
        - workspaceId
        - fullName
        - jobTitle
        - company
        - email
        - mobile
        - phone
        - website
        - linkedin
        - address
        - message
        - internalNote
        - captureMethod
        - connectedWith
        - tags
        - details
        - createdAt
        - updatedAt
        - enrichedAt
      properties:
        id:
          type: string
          format: uuid
          description: Contact-id. Gebruik deze waarde in andere endpoints voor contacten.
          example: f08f7c49-8f1e-42ac-b5ac-e0d6bd37d938
        workspaceId:
          type: string
          format: uuid
          description: Id van de workspace waarin het contact staat.
          example: 9df81bd4-3d76-42cc-9518-a019ea75a221
        fullName:
          type: string
          example: Alex Morgan
        jobTitle:
          type: string
          nullable: true
          example: Sales Director
        company:
          type: string
          nullable: true
          example: Northstar
        email:
          type: string
          format: email
          nullable: true
          example: alex@northstar.example
        mobile:
          type: string
          nullable: true
          description: Mobiel telefoonnummer.
          example: '+31612345678'
        phone:
          type: string
          nullable: true
          description: Ander telefoonnummer, zoals een kantoornummer.
        website:
          type: string
          nullable: true
          example: https://northstar.example
        linkedin:
          type: string
          nullable: true
          example: https://linkedin.com/in/alex-morgan
        address:
          type: string
          nullable: true
          example: Amsterdam, Netherlands
        message:
          type: string
          nullable: true
          readOnly: true
          description: >-
            Bericht dat het contact via een digitaal visitekaartje heeft
            verstuurd. Alleen-lezen.
          example: Interested in a demo.
        internalNote:
          type: string
          nullable: true
          description: >-
            Interne notitie in de workspace. Tapify toont of verstuurt deze niet
            aan het contact.
          example: Met at Tech Expo.
        captureMethod:
          allOf:
            - $ref: '#/components/schemas/ContactCaptureMethod'
          readOnly: true
          description: Hoe het contact aan Tapify is toegevoegd. Alleen-lezen.
        connectedWith:
          type: object
          description: >-
            Teamlid dat aan het contact is toegewezen, of null als er niemand is
            toegewezen.
          required:
            - id
            - name
            - avatarUrl
          properties:
            id:
              type: string
              format: uuid
              description: Id van het teamlid dat aan het contact is toegewezen.
              example: 45fa16aa-2546-49b3-9d1e-7b7e1c9fb1e7
            name:
              type: string
              example: Mina Park
            avatarUrl:
              type: string
              format: uri
              nullable: true
              example: https://example.com/mina.jpg
          nullable: true
        tags:
          type: array
          description: Tags om het contact te ordenen.
          items:
            $ref: '#/components/schemas/ContactTag'
        details:
          type: array
          readOnly: true
          description: >-
            Alleen-lezen lijst die wordt samengesteld uit de velden voor
            e-mailadres, telefoon, website, LinkedIn en adres van het contact.
          items:
            $ref: '#/components/schemas/ContactDetail'
        createdAt:
          type: string
          format: date-time
          description: Datum en tijd waarop het contact is toegevoegd.
          example: '2026-07-28T09:30:00.000Z'
        updatedAt:
          type: string
          format: date-time
          nullable: true
          readOnly: true
          description: >-
            Tijdstip van de recentste update, of null als het contact niet is
            bijgewerkt.
          example: '2026-07-29T10:00:00.000Z'
        enrichedAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            Datum en tijd waarop verrijking voor het laatst is toegepast, of
            null als dit nog niet is gebeurd.
    ErrorResponse:
      type: object
      description: Informatie over een verzoek dat Tapify niet kon voltooien.
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Korte code die de fout aangeeft.
              example: bad_request
            message:
              type: string
              description: Begrijpelijke uitleg van wat er misging.
              example: Request body is invalid.
            details:
              type: object
              description: >-
                Aanvullende informatie die kan helpen om het verzoek te
                corrigeren.
              additionalProperties: true
              nullable: true
    ContactTagColor:
      type: string
      description: Kleur van het taglabel. Laat dit veld weg om neutral te gebruiken.
      enum:
        - red
        - green
        - blue
        - purple
        - pink
        - yellow
        - indigo
        - neutral
      default: neutral
    ContactCaptureMethod:
      type: string
      description: >-
        Hoe het contact is toegevoegd, bijvoorbeeld handmatig, via een
        profielformulier of door een visitekaartje of QR-code te scannen.
        Contacten die via de API zijn aangemaakt, gebruiken manual. Tapify stelt
        deze waarde in; de API kan deze niet wijzigen.
      enum:
        - manual
        - profile_form
        - ai_scan
        - paper_card
        - digital_card
        - linkedin_qr
        - vcard
    ContactTag:
      type: object
      description: Een tag die bij het contact is opgeslagen.
      required:
        - name
        - color
      properties:
        name:
          type: string
          example: Follow up
        color:
          $ref: '#/components/schemas/ContactTagColor'
    ContactDetail:
      type: object
      description: Eén opgeslagen manier om de persoon te bereiken.
      required:
        - type
        - value
      properties:
        type:
          type: string
          description: Type contactinformatie.
          enum:
            - email
            - mobile
            - phone
            - website
            - linkedin
            - address
          example: email
        value:
          type: string
          example: alex@northstar.example
        isPrimary:
          type: boolean
          description: true als dit het primaire contactgegeven van dit type is.
          example: true
  responses:
    BadRequest:
      description: >-
        De JSON van het verzoek, een verplicht veld of een parameter is
        ongeldig.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: bad_request
              message: fullName is required.
    Unauthorized:
      description: De API-sleutel ontbreekt, is onjuist of is verwijderd.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: invalid_api_key
              message: API key is invalid or revoked.
    SubscriptionRequired:
      description: >-
        De workspace heeft Teams Connect-toegang nodig. Controleer het
        abonnement, de abonnementsstatus en de einddatum van de proefperiode.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: subscription_required
              message: Tapify Teams Connect is required for this feature.
    NotFound:
      description: Het opgevraagde item bestaat niet in deze workspace.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: not_found
              message: Contact was not found.
    PayloadTooLarge:
      description: De JSON-body is groter dan 256 KB (262.144 bytes).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: payload_too_large
              message: Request body is too large.
    RateLimited:
      description: Er zijn te veel verzoeken in korte tijd verstuurd.
      headers:
        Retry-After:
          description: Aantal seconden dat je moet wachten voordat je het opnieuw probeert.
          schema:
            type: integer
            example: 30
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: rate_limited
              message: Rate limit exceeded.
              details:
                retryAfter: 30
    InternalError:
      description: Tapify kon het verzoek niet voltooien.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: internal_error
              message: Something went wrong.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Tapify API key
      description: API-sleutel die is gemaakt via Instellingen → API-sleutels.
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Alternatief voor Authorization: Bearer. Gebruik één authenticatiemethode
        per verzoek; een Bearer-token heeft voorrang.

````

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