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

# Create contact async

## Field support per integration

> [accordion] AbaConnect
>
> > [!NOTE]
> >
> > This endpoint is **[asynchronous](https://docs.maesn.com/async-task.md)**. The response returns a `taskId`. Use `/asyncTask/{taskId}` to check the task status and obtain the final result once it is ready.
>
> Supported request parameters:
>
> **addresses** `Address[]`
>
> Only one address is allowed.
>
> **properties**
>
> **addressLine1** `string`
>
> At most 60 characters.
>
> **postalCode** `string`
>
> At most 15 characters.
>
> **city** `string`
>
> At most 50 characters.
>
> **countryCode** `enum`
>
> For details visit the [`Standardized Data`](https://docs.maesn.com/standardization) section.
>
> **type** `enum`
>
> Available options: `BILLING`
>
> **companyName** `string`
>
> Required for contact type `COMPANY`. At most 100 characters.
>
> **contactPersons** `ContactPerson[]`
>
> Required for contact type `CONTACT_PERSON`. Only one contact person is allowed.
>
> **properties**
>
> **firstName** `string` *required*
>
> At most 50 characters.
>
> **lastName** `string` *required*
>
> At most 100 characters.
>
> **emailAddresses** `EmailAddress[]`
>
> Only one email address is allowed.
>
> **properties**
>
> **email** `string`
>
> At most 65 characters.
>
> **type** `enum`
>
> Available options: `BUSINESS`
>
> **phoneNumbers** `PhoneNumber[]`
>
> At most one `BUSINESS` and one `MOBILE` number.
>
> **properties**
>
> **number** `string`
>
> At most 65 characters.
>
> **type** `enum`
>
> Available options: `BUSINESS`, `MOBILE`
>
> **contactType** `enum` *required*
>
> Available options: `CONTACT_PERSON`, `COMPANY`
>
> **emailAddresses** `EmailAddress[]`
>
> Only used for contact type `COMPANY`. Only one email address is allowed.
>
> **properties**
>
> **email** `string`
>
> At most 65 characters.
>
> **type** `enum`
>
> Available options: `BUSINESS`
>
> **number** `string`
>
> A whole number with at most 10 digits. If you leave it out, Abacus picks the number.
>
> **phoneNumbers** `PhoneNumber[]`
>
> Only used for contact type `COMPANY`. At most one `BUSINESS` and one `MOBILE` number.
>
> **properties**
>
> **number** `string`
>
> At most 65 characters.
>
> **type** `enum`
>
> Available options: `BUSINESS`, `MOBILE`


## OpenAPI

````yaml post /accounting/contacts/async
openapi: 3.0.0
info:
  title: Maesn unified API
  description: The Maesn unified API description
  version: '1.0'
  contact: {}
servers:
  - url: https://api.maesn.dev
security: []
tags:
  - name: maesn
    description: ''
paths:
  /accounting/contacts/async:
    post:
      tags:
        - accounting
      operationId: createContactAsync
      parameters:
        - name: X-API-KEY
          description: API key
          in: header
          schema:
            type: string
          required: true
        - name: X-ACCOUNT-KEY
          description: Account key
          in: header
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactRequestDtoV2'
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/BaseResponseDto'
                  - properties:
                      data:
                        $ref: '#/components/schemas/TaskIdResponseDto'
                        type: object
components:
  schemas:
    ContactRequestDtoV2:
      type: object
      properties:
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/ContactAddressV2'
        bankAccounts:
          type: array
          items:
            $ref: '#/components/schemas/BankAccountCommonDto'
        businessRegistrationNumber:
          type: string
          example: '12345678'
        companyName:
          type: string
          example: maesn
        contactPersons:
          type: array
          items:
            $ref: '#/components/schemas/ContactPersonV2Request'
        contactType:
          type: string
          enum:
            - CONTACT_PERSON
            - COMPANY
          example: CONTACT_PERSON
        emailAddresses:
          type: array
          items:
            $ref: '#/components/schemas/ContactEmailV2'
        isCustomer:
          type: boolean
          example: true
        isSupplier:
          type: boolean
          example: false
        number:
          type: string
          example: '1042'
        parentId:
          type: string
          example: 3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/ContactPhoneV2'
        projectId:
          type: string
          example: '3'
        vatId:
          type: string
          example: DE123456789
        website:
          type: string
          example: https://www.maesn.com
      required:
        - contactType
    BaseResponseDto:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/MetaResponse'
        data:
          oneOf:
            - type: object
            - type: array
    TaskIdResponseDto:
      type: object
      properties:
        taskId:
          type: string
          example: 02cc5849-b23c-48fe-8a9b-96f74bfc9571
    ContactAddressV2:
      type: object
      properties:
        addressLine1:
          type: string
          example: Lucky street 1
        addressLine2:
          type: string
          example: 2nd floor
        city:
          type: string
          example: Berlin
        countryCode:
          type: string
          example: DE
        postalCode:
          type: string
          example: '10243'
        type:
          type: string
          enum:
            - BILLING
            - DELIVERY
            - PRIVATE
            - WORK
            - PICKUP
          example: BILLING
    BankAccountCommonDto:
      type: object
      properties:
        id:
          type: string
          example: 5a6b7f5dw45c1c-403e-ad56-202fbc312414
        bankName:
          type: string
          example: Sparkasse
        bic:
          type: string
          example: DEUTDEFF
        code:
          type: string
          example: '50010517'
        iban:
          type: string
          example: DE89370400440532013000
        number:
          type: number
          example: 5407324931
    ContactPersonV2Request:
      type: object
      properties:
        birthDate:
          type: string
          example: '1990-05-12T00:00:00.000Z'
        emailAddresses:
          type: array
          items:
            $ref: '#/components/schemas/ContactEmailV2'
        firstName:
          type: string
          example: John
        jobTitle:
          type: string
          example: Managing Director
        lastName:
          type: string
          example: Doe
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/ContactPhoneV2'
        salutation:
          type: string
          example: Mr
    ContactEmailV2:
      type: object
      properties:
        email:
          type: string
          example: john.doe@company.com
        type:
          type: string
          enum:
            - BUSINESS
            - PRIVATE
            - OFFICE
            - INVOICE
            - PAYMENT
            - OTHER
          example: BUSINESS
    ContactPhoneV2:
      type: object
      properties:
        number:
          type: string
          example: +49 7163307056
        type:
          type: string
          enum:
            - BUSINESS
            - MOBILE
            - OFFICE
            - FAX
            - PRIVATE
            - OTHER
          example: MOBILE
    MetaResponse:
      type: object
      properties:
        warnings:
          type: array
          items:
            type: string
            example: Field not used by target system
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
        partialErrors:
          type: array
          description: >-
            Secondary operations that failed after the main operation succeeded.
            See [Partial Errors](/guides/partial-errors).
          items:
            type: object
            properties:
              code:
                type: string
                example: FILE_UPLOAD_FAILED
              message:
                type: string
                example: >-
                  Attachment invoice.pdf could not be uploaded to the target
                  system.
    PaginationResponse:
      type: object
      properties:
        total:
          type: number
          example: 125
        perPage:
          type: number
          example: 50
        currentPage:
          type: number
          example: 1
        totalPages:
          type: number
          example: 3

````

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