Newstore profiles API

Clienteling Profiles

OpenAPI Specification

newstore-profiles-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: '1.0'
  title: NewStore address profiles API
  description: NewStore public APIs
  contact:
    email: support@newstore.com
    name: NewStore API Support
    url: https://developer.newstore.com
host: dodici-demo.p.newstore.net
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
security: []
tags:
- name: profiles
  description: Clienteling Profiles
paths:
  /clienteling/profiles:
    get:
      description: List all clienteling profiles.
      summary: listProfiles
      tags:
      - profiles
      operationId: listProfiles
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      parameters:
      - name: next_page_token
        in: query
        required: false
        type: string
        description: Pagination token that encodes the information required to retrieve the next page of profiles.
      - name: page_size
        in: query
        required: false
        default: 100
        type: integer
        format: int64
        minimum: 1.0
        maximum: 1000.0
        exclusiveMaximum: false
        exclusiveMinimum: false
        description: Number of profiles to be returned in a page.
      responses:
        default:
          description: Error response.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: List of clienteling profiles.
          schema:
            $ref: '#/definitions/Profiles'
          headers: {}
        '429':
          description: Too Many Requests
          schema:
            $ref: '#/definitions/Problem'
          headers:
            Retry-After:
              type: string
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '502':
          description: Bad Gateway
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '503':
          description: Service Unavailable
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
      security:
      - oauth:
        - clienteling:profile:read
  /clienteling/profiles/{customer_id}:
    get:
      description: Get a single clienteling profile.
      summary: showProfile
      tags:
      - profiles
      operationId: showProfile
      deprecated: false
      produces:
      - application/problem+json
      - application/json
      parameters:
      - name: customer_id
        in: path
        required: true
        type: string
        description: The identifier of the customer.
      responses:
        default:
          description: Error response.
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '200':
          description: Clienteling profile.
          schema:
            $ref: '#/definitions/Profile'
          headers: {}
        '429':
          description: Too Many Requests
          schema:
            $ref: '#/definitions/Problem'
          headers:
            Retry-After:
              type: string
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '502':
          description: Bad Gateway
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
        '503':
          description: Service Unavailable
          schema:
            $ref: '#/definitions/Problem'
          headers: {}
      security:
      - oauth:
        - clienteling:profile:read
definitions:
  Problem:
    title: Problem
    type: object
    properties:
      detail:
        description: A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
        example: some description for the error situation
        type: string
      error_code:
        type: string
      instance:
        description: A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.
        example: /some/uri-reference#specific-occurrence-context
        type: string
      message:
        type: string
      messages:
        type: array
        items:
          type: string
      request_id:
        type: string
      status:
        description: The HTTP status code generated by the origin server for this occurrence of the problem.
        type: integer
        minimum: 100.0
        maximum: 600.0
        exclusiveMaximum: true
        format: int32
      title:
        description: A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
        example: some title for the error situation
        type: string
      type:
        description: A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type.
        example: /some/uri-reference
        type: string
        default: about:blank
  OptInState:
    title: OptInState
    description: The current opt-in state for this store.
    type: string
    enum:
    - accepted
    - waiting
    - rejected
  Meta:
    title: Meta
    description: Additional response information.
    example:
      next_page_token: abcfed
    type: object
    properties:
      next_page_token:
        description: 'Token that can be used to retrieve the next page of results.

          If this field is null, the last page of the results has been reached.'
        type: string
    required:
    - next_page_token
  Profiles:
    title: Profiles
    description: Clienteling profile information for multiple customers.
    example:
      meta:
        next_page_token: abcfed
      profiles:
      - customer_id: 123e4567-e89b-12d3-a456-426614174000
        opted_in:
          store_123:
            opt_in_state: accepted
            opt_in_state_modified_at: '2024-03-20T15:30:00Z'
        opted_out: false
        opted_out_at: null
        phone_number: '+1234567890'
      - customer_id: 987fcdeb-51d3-12a4-b678-426614174111
        opted_in:
          store_456:
            opt_in_state: rejected
            opt_in_state_modified_at: '2024-03-19T10:15:00Z'
        opted_out: true
        opted_out_at: '2024-03-19T10:15:00Z'
        phone_number: '+1987654321'
    type: object
    properties:
      meta:
        type: object
        allOf:
        - $ref: '#/definitions/Meta'
        - description: Additional response information.
          example:
            next_page_token: abcfed
      profiles:
        type: array
        items:
          $ref: '#/definitions/Profile'
    required:
    - meta
    - profiles
  Profile:
    title: Profile
    description: Clienteling profile information for a customer.
    example:
      customer_id: 123e4567-e89b-12d3-a456-426614174000
      opted_in:
        store_123:
          opt_in_state: accepted
          opt_in_state_modified_at: '2024-03-20T15:30:00Z'
        store_456:
          opt_in_state: waiting
          opt_in_state_modified_at: '2024-03-18T09:00:00Z'
      opted_out: false
      opted_out_at: null
      phone_number: '+1234567890'
    type: object
    properties:
      customer_id:
        description: The identifier of the customer.
        type: string
        format: uuid
      opted_in:
        description: The opt-in status for the customer per store.
        type: object
        additionalProperties:
          $ref: '#/definitions/OptedIn'
      opted_out:
        description: Whether the customer has opted out.
        type: boolean
      opted_out_at:
        description: The date when the customer opted out.
        type: string
        format: date-time
      phone_number:
        description: The phone number of the customer.
        type: string
    required:
    - customer_id
    - opted_in
    - opted_out
    - opted_out_at
    - phone_number
  OptedIn:
    title: OptedIn
    description: Opt-in status information for a conversation between a customer and a store.
    example:
      opt_in_state: accepted
      opt_in_state_modified_at: '2025-01-03T18:03:00Z'
    type: object
    properties:
      opt_in_state:
        type: object
        allOf:
        - $ref: '#/definitions/OptInState'
        - description: The current opt-in state for this store.
      opt_in_state_modified_at:
        description: Timestamp when the opt-in state was last modified.
        type: string
        format: date-time
    required:
    - opt_in_state
    - opt_in_state_modified_at
securityDefinitions:
  oauth:
    type: oauth2
    flow: application
    tokenUrl: https://id.p.newstore.net/auth/realms/dodici-demo/protocol/openid-connect/token
    scopes:
      catalog:import-schemas:read: Grants privileges to read import schema
      catalog:import-schemas:write: Grants privileges to write import schema
      catalog:pricebook-export:read: Grants privileges to export pricebook data
      catalog:product-export:read: Grants privileges to export product data
      checkout:carts:read: Grants privileges to read cart data
      checkout:carts:write: Grants privileges to write cart data
      clienteling:profile:read: Grants privileges to read clienteling profiles
      customer:profile:read: Grants privileges to read API customer data
      customer:profile:write: Grants privileges to modify API customer data
      newstore:configuration:read: Grants privileges to read configuration
      newstore:configuration:write: Grants privileges to write configuration
      fiscalization:orders:read: View orders with fiscal transactions and signatures
      fiscalization:orders:write: Create orders with fiscal transactions and signatures
      shipments:read: Read Shipping Options and Audits
      iam:providers:read: ' Grants read privileges to provider resources'
      iam:providers:write: ' Grants write privileges to provider resources'
      iam:roles:read: ' Grants privileges to read roles data'
      iam:roles:write: ' Grants privileges to write roles data'
      iam:users:read: ' Grants privileges to read user data'
      iam:users:write: ' Grants privileges to write user data'
      inventory:reservations:read: Allows access to retrieve reservations
      inventory:reservations:write: Allows access to create and update reservations
      promotions:config:read: Grants privileges to read configuration
      promotions:config:write: Grants privileges to write into configuration
      promotions:reason-codes:read: Grants privileges to list reason codes
      promotions:reason-codes:write: Grants privileges to create and update reason codes
      audit-events:read: Grants read access to the tenant's audit events.
      taxes:preview-transactions:write: Preview tax transactions
      taxes:transactions:read: Read tax transactions