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

# Créer une mission

> Crée une mission de livraison (retrait, dépôt ou depuis stock).



## OpenAPI

````yaml POST /tasks
openapi: 3.0.0
info:
  title: Paps API
  version: 2.0.1
  description: >
    API de Paps pour les intégrateurs et partenaires : calcul de tarifs,
    création de missions de livraison, suivi des commandes, webhooks et
    bordereaux de transport.
  contact:
    name: Paps Support
    url: https://papslogistics.com/qui-sommes-nous/
    email: souaibou@paps-app.com
servers:
  - url: https://api.papslogistics.com
    description: Sandbox
  - url: https://paps-api.papslogistics.com
    description: Production
security: []
tags:
  - name: Auth
    description: Authentification (méthode historique, dépréciée)
  - name: Marketplace
    description: Calcul de tarifs et de formats de colis
  - name: Transport Requests
    description: Demandes de transport national
  - name: Tasks
    description: Création et suivi de missions
  - name: Orders
    description: Consultation et reprogrammation de commandes
  - name: Webhooks
    description: Notifications d'événements
  - name: Waybills
    description: Génération de bordereaux
paths:
  /tasks:
    post:
      tags:
        - Tasks
      summary: Créer une mission
      description: Crée une mission de livraison (retrait, dépôt ou depuis stock).
      operationId: TasksController_createTask
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskDto'
      responses:
        '200':
          description: Mission créée
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ResponseDto'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/JobDTO'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CreateTaskDto:
      type: object
      required:
        - type
        - vehicleType
        - receiver
        - parcels
      properties:
        type:
          type: string
          description: Type de mission à créer
          enum:
            - Pickup
            - Dropoff
            - FromStock
        datePickup:
          type: string
          description: Date de retrait (requis uniquement pour le type `Pickup`)
          example: '2026-08-01'
        timePickup:
          type: string
          description: Heure de retrait (requis uniquement pour le type `Pickup`)
          example: '11:00'
        vehicleType:
          type: string
          enum:
            - SCOOTER
            - MINI_VAN
            - TRICYCLE
            - VAN
            - CAMION
        address:
          type: string
          description: Adresse de retrait (requis uniquement pour le type `Pickup`)
          example: Dakar-Plateau, Dakar, Sénégal
        receiver:
          $ref: '#/components/schemas/CreateReceiverDTO'
        parcels:
          type: array
          items:
            $ref: '#/components/schemas/ParcelDTO'
    ResponseDto:
      type: object
      required:
        - code
        - message
        - error
      properties:
        code:
          type: number
          example: 200
          description: Code de statut de la réponse
        message:
          type: string
          example: Success
          description: Message associé à la réponse
        error:
          type: string
          nullable: true
          description: >
            `null` en cas de succès. En cas d'erreur métier (codes `400` et
            `500`), contient un message ou un nom d'exception sous forme de
            chaîne libre.
    JobDTO:
      type: object
      required:
        - _id
        - job_type
        - job_address
        - job_date
        - job_slot_start
        - job_slot_end
        - job_time
        - job_vehicle_type
      properties:
        _id:
          type: string
          description: >
            Identifiant de la mission. C'est ce champ qu'il faut conserver et
            transmettre à `GET /tasks/fetch/{id}` pour interroger la mission par
            la suite.
        uid:
          type: string
          description: >-
            Identifiant unique de la mission (non utilisé pour le fetch, voir
            `_id`)
        job_type:
          type: string
          enum:
            - Pickup
            - Dropoff
            - FromStock
        job_address:
          $ref: '#/components/schemas/AddressDTO'
        job_date:
          type: string
          example: '2020-01-01'
        job_slot_start:
          type: string
          example: '11:00'
        job_slot_end:
          type: string
          example: '13:00'
        job_time:
          type: string
          example: '11:00'
        job_vehicle_type:
          type: string
          enum:
            - SCOOTER
            - MINI_VAN
            - TRICYCLE
            - VAN
            - CAMION
    CreateReceiverDTO:
      type: object
      required:
        - firstname
        - lastname
        - phoneNumber
        - email
        - entreprise
        - address
        - specificationAddress
      properties:
        firstname:
          type: string
          example: John
        lastname:
          type: string
          example: Doe
        phoneNumber:
          type: string
          example: '+221770000000'
        email:
          type: string
          example: john.doe@gmail.com
        entreprise:
          type: string
          example: John Corporation
        address:
          type: string
          example: Dakar-Plateau, Dakar, Sénégal
        specificationAddress:
          type: string
          example: côté brioche
    ParcelDTO:
      type: object
      required:
        - packageSize
        - description
        - additionalInfo
        - Reference
        - price
        - amountCollect
      properties:
        identity_of_pickup_address:
          allOf:
            - $ref: '#/components/schemas/CreatePickupMoreInfoDTO'
          description: >-
            Informations complémentaires pour le retrait (requis uniquement pour
            le type `Pickup`)
        packageSize:
          type: string
          example: XL
          enum:
            - S
            - M
            - L
            - XL
            - XXL
            - D
        description:
          type: string
          example: iPhone 13 Pro Max
        additionalInfo:
          type: string
          example: Pay attention, it's fragile
        Reference:
          type: string
          example: 4759XHG0MKH
        price:
          type: number
          example: 10000
        amountCollect:
          type: number
          example: 10000
        address_pickup:
          type: string
          example: Dakar-Plateau, Dakar, Sénégal
          description: >-
            Adresse de retrait alternative (requis uniquement pour le type
            `Pickup`)
    AddressDTO:
      type: object
      required:
        - country
        - countryCode
        - city
        - region
        - address
        - additional_address
        - location
        - place_id
      properties:
        country:
          type: string
          example: Senegal
        countryCode:
          type: string
          example: SN
        city:
          type: string
          example: Dakar-Plateau
        region:
          type: string
          example: Dakar Region
        address:
          type: string
          example: Dakar-Plateau, Dakar Region, Senegal
        additional_address:
          type: string
          nullable: true
        location:
          $ref: '#/components/schemas/LocationDTO'
        place_id:
          type: string
          example: ChIJXRv0vE5ywQ4RpvG-1YKthC0
    CreatePickupMoreInfoDTO:
      type: object
      required:
        - address_pickup
        - firstname
        - lastname
        - phoneNumber
      properties:
        address_pickup:
          type: string
          example: Dakar-Plateau, Dakar, Sénégal
        firstname:
          type: string
          example: salim
        lastname:
          type: string
          example: Bowffer
        phoneNumber:
          type: string
          example: '+221770000000'
    LocationDTO:
      type: object
      required:
        - latitude
        - longitude
      properties:
        latitude:
          type: number
          example: 14.6629438
        longitude:
          type: number
          example: -17.4374803
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Clé API du client, disponible dans son espace personnel Paps.

````