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

# Create a new payment transaction



## OpenAPI

````yaml /marketONE/MarketONEAPIs.yaml post /partnersub/v2/transaction
openapi: 3.0.1
info:
  title: MarketONE APIs
  description: >
    The MarketONE OpenAPIs provide a quick and easy way to access MarketONE
    features and your data. These APIs let Resellers (Service Providers) and
    Merchants work together to resell products and handle billing on a single
    platform.


    With an API key, you can authenticate and perform various tasks, like
    accessing and managing data. You can use an HTTP client in any programming
    language to send HTTP requests to MarketONE to create, edit, or delete data.
    The data you work with, like subscriptions or entitlements, are called
    resources, and each resource has its own endpoint (URL).


    The MarketONE OpenAPIs use built-in HTTP features, like HTTP authentication
    and HTTP verbs, which are easy for standard HTTP clients to understand. They
    also use HTTP response codes to indicate errors. All responses, including
    errors, are in JSON format, but our API libraries convert them into objects
    that are specific to the programming language you're using. 


    You can also download the MarketONE OpenAPIs in a YAML file, which is easy
    to read and manage.


    For more information about the MarketONE OpenAPIs, see the [API Reference
    Guide for Merchants](https://docs.saas.amdocs.com/bundle/b_partnerAPIGuide/)
    and the [API Reference Guide for Resellers (Service
    Providers)](https://docs.saas.amdocs.com/bundle/b_aggregatorAPIGuide).


    ## Other MarketONE APIs


    Other MarketONE APIs, such as the [Reseller (CSP) Adapter
    OpenAPIs](https://docs.saas.amdocs.com/bundle/MarketONECSPAdapter/page/index.html),
    the [Merchant (OTT) Service
    Callbacks](https://docs.saas.amdocs.com/bundle/MarketONEOTTServiceCallbacks/page/index.html),
    and the [Commerce Gateway
    OpenAPIs](https://docs.saas.amdocs.com/bundle/Amdocs_Media-Commerce-Gateway-Latest-resolved/page/index.html),
    are available to provide additional services for specific organizations.


    # Environments


    MarketONE provides two distinct environments for testing and production:

    - **Prodtest environment**: this is a pre-production environment allowing
    you to test your application with test data. Use server
    <https://int-prodtest.m1amdocs.io/>.

    - **Production environment**: this is the live environment for the
    real-world implementation of  data. Use server <https://int.m1amdocs.com/>.


    # HTTP Verbs


    The MarketONE OpenAPIs support the following HTTP verbs:

    - **GET**: Retrieve resources (as a list or single record fetch).

    - **POST**:  Create new resources or update existing ones (overloading
    during create/update is permitted where specified).

    - **PUT**: Create a new resource or replace a resource with the request
    payload.

    - **DELETE**: Remove ownership or hierarchical association between certain
    resources.


    #  Example

     ## Request Example

     ```
    POST /v1/entitlement 

    Content-Type: application/json

    {
      "account": {
        "id": "2922fbf1-1dc4-2293-9d0e-c9a46630ad6e"
      },
      "subscriptionId": "ef1917b8-4a06-4595-9998-718799a33ed6",
      "productCodes": [
        "Basic_Addon"
      ],
      "metadata": {
        "email": "j.smith@email.com"
      }
    }

    ```

      ## Response Example

    ```

    Response: 200 OK

    Content-Type: application/json

    [
      {
        "partnerSubscriptionId": "80e08955-b0e9-4ba6-b882-b24230bfc703",
        "account": {
          "id": "0006fbf1-1ac4-4793-9d0e-c0a0080ad6e",
          "partnerCustomerId": "1bbbb3a5-0f05-4009-b4ae-b01f7eba7g"
        },
       "subscriptionId": "ef1417b8-4a06-7775-8518-718714a33ed2",
        "externalPartnerSubscriptionId": "7d50531-31eb-45f9-91ce-6355250f5501",
        "partnerCode": "PRTNR",
        "productCode": "Basic_Addon",
        "createdDate": "2024-05-04T17:38:10.889",
        "updatedDate": "2024-05-04T17:38:11.160",
        "startServiceDate": "2024-05-04T17:38:10.889",
        "serviceStatus": "PROVISION-COMPLETE"
      }
    ]

    ```


    # Status Codes


    MarketONE uses the following HTTP response codes to indicate the success or
    failure of an API request.


    | Code | Status | Description |

    | -------  | ------   | ------------------- |

    | **200** | OK | Everything worked as expected. |

    | **201** | OK | Everything worked as expected. |

    | **400** | Bad Request | The request was unacceptable, often due to missing
    a required parameter. Other possibilities include: <ul><li>A parameter
    doesn't fit the data type</li><li>A parameter is outside the maximum or
    minimum boundaries of what can be accepted.</li> |

    | **401** | Unauthorized | Couldn’t authenticate your request. This could be
    due to a wrong or invalid API key. |

    | **403** | Forbidden | Authentication failed. Check your username and
    password. |

    | **404** | Not Found | The requested resource doesn’t exist. |

    | **409** | Conflict | |

    | **429** | Too Many Requests | Too many requests were made to the API too
    quickly. |

    | **500** | Internal Server Error  | |

    | **501** | Not Implemented | |

    | **503** | Service Unavailable | We’re temporarily offline for maintenance.
    Please try again later. |


    # Authentication


    API keys are required to make requests to the MarketONE OpenAPIs. In Partner
    Ecosystem Management, Resellers (Service Providers) can conveniently
    [generate an API
    key](https://docs.saas.amdocs.com/bundle/b_userGuideForResellers/page/topics/apiKeysAggregatorManage_t.html).
    Merchants can also [generate an API key for each Reseller (Service Provider)
    partnership](https://docs.saas.amdocs.com/bundle/b_userGuideForMerchants/page/topics/apiKeysManage_t.html)
    in Partner Ecosystem Management. After you authenticate with your API
    key(s), you can access resources through the MarketONE OpenAPIs.


    Each API key is a JSON Web Token (JWT) that doesn't expire. For every API
    call you make to the MarketONE OpenAPIs, the API key must be included in the
    header (`X-API-KEY`) of the call to ensure trusted communication. All
    communication is HTTP(s) based and supports SSL/TLS encryption.


    # Errors


    All error responses will return an error object.


    # Attributes


    | Name | Type | Required/Optional | Description |

    | -------  | ------ | ------ | ------ |

    | **code** | string | required | The error type, such as
    "authentication-required" (401) or "not-found" (404). |

    | **message** | string | required | A human-readable message providing more
    detailed information about the error. |

    | **validationErrors** | object | optional | An array of validation errors
    with **code** and **message** attributes provided. |
  license:
    name: Amdocs Inc.
    url: http://www.amdocs.com
  version: Released
servers:
  - url: https://int-prodtest.m1amdocs.io/
    description: Sandbox server (uses test data)
  - url: https://int.m1amdocs.com/
    description: Production server (uses live data)
security: []
paths:
  /partnersub/v2/transaction:
    post:
      tags:
        - partnerSubscription
        - transaction
      summary: Create a new payment transaction
      operationId: postTransaction
      parameters:
        - name: X-B3-TraceId
          in: header
          description: >-
            The TraceId indicates the overall ID of the trace. Every span in a
            trace shares this ID. The X-B3-TraceId header is encoded as 32 or 16
            lower-hex characters. For example, a 128-bit TraceId header might
            look like 463ac35c9f6413ad48485a3953bb6124.
          required: false
          style: simple
          explode: false
          schema:
            type: string
        - name: X-B3-SpanId
          in: header
          description: >-
            The SpanId is 64-bit in length and indicates the position of the
            current operation in the trace tree. The value should not be
            interpreted; it may or may not be derived from the value of the
            TraceId. The X-B3-SpanId header is encoded as 16 lower-hex
            characters. For example, a SpanId header might look like
            a2fb4a1d1a96d312. Unless propagating only the Sampling State, the
            X-B3-SpanId header is required.
          required: false
          style: simple
          explode: false
          schema:
            type: string
        - name: X-B3-ParentSpanId
          in: header
          description: >-
            The ParentSpanId is 64-bit in length and indicates the position of
            the parent operation in the trace tree. When the span is the root of
            the trace tree, there is no ParentSpanId. The X-B3-ParentSpanId
            header may be present on a child span and must be absent on the root
            span. It is encoded as 16 lower-hex characters. For example, a
            ParentSpanId header might look like 0020000000000001.
          required: false
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: >-
          A new Transaction; required attributes are id, account vid,
          transaction items for amount and tax as appropriate, product code
          passed in as 'code' for transaction item, code value as 'TOTAL_TAX'
          for tax trasanction item.
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/OTTV2TransactionRequest'
        required: true
      responses:
        '200':
          description: Successfully created Transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OTTTransactionResponse'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400ErrorTransaction'
        '401':
          description: authorization failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401Error'
        '403':
          description: authorization failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Error'
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
        '500':
          description: internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/500Error'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    OTTV2TransactionRequest:
      required:
        - account
        - amount
        - id
        - items
      type: object
      properties:
        object:
          type: string
          description: Value is “Transaction”
          enum:
            - Transaction
        id:
          $ref: '#/components/schemas/ID'
        created:
          type: string
          description: The time this transaction was initiated.
          format: date-time
        amount:
          type: number
          description: >-
            The net amount of the charge presented by this transaction, as a
            decimal. Must be positive (zero allowed).
        currency:
          type: string
          description: >-
            The [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) Currency Code
            of this transaction
        partnersubscription:
          $ref: '#/components/schemas/PartnerSubscriptionReference'
        metadata:
          description: >-
            A set of key/value pairs that you can attach to an object. Useful
            for storing additional information. For transactions resulting from
            a subscription, the metadata is also inherited from the
            subscription.
          allOf:
            - $ref: '#/components/schemas/METADATA'
        items:
          type: array
          description: >-
            The array of Transaction Items belonging to this transaction. Items
            correspond to the charges.There will be 2 separate items - One for
            the actual amount and other for tax amount.
          items:
            $ref: '#/components/schemas/OTTTransactionItem'
        billing_descriptor:
          type: string
          description: >-
            Optional “soft descriptor” to send to the aggregator for this
            transaction.
        original_billing_date:
          type: string
          description: >-
            The original scheduled billing date associated with the billing for
            which this transaction collects funds. For an initial attempt, this
            is the same as the transaction date; for a retry transaction this is
            the original attempt date.
          format: date-time
      description: The Transaction object provides a way to charge a customer.
    OTTTransactionResponse:
      title: OTTTransactionResponse
      required:
        - id
        - status
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ID'
        extConfirmationId:
          maxLength: 36
          type: string
          description: Transaction identifier
        status:
          type: string
          description: Status of the transaction once processed (mandatory on the response)
        metadata:
          $ref: '#/components/schemas/METADATA'
      description: >-
        The transaction response entity relates to the payment request that can
        be initiated either by the digital partner in the case of direct carrier
        billing (BILLING), or the backend billing system of the service provider
        at the end of every billing cycle.
    400ErrorTransaction:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - invalid-request
            - eligibility-failed-csp
            - exceeds-daily-limit
            - exceeds-monthly-limit
            - insufficient-balance
            - server-error
            - suspended-long-term
            - suspended-lost-stolen
            - suspended-non-payment
            - suspended-short-term
            - invalid-partner-product
        message:
          type: string
          enum:
            - Invalid request.
            - >-
              You are not eligible to subscribe to this service based on the
              rules set by your aggregator.
            - Insufficient funds (prepaid).
            - Server error.
            - Voluntarily long-term account suspended on user request.
            - The account is suspended because of a lost or stolen phone.
            - >-
              The account is suspended because of non-payment or other billing
              issue.
            - Voluntarily temporary account suspended on user request.
            - Partner product not defined in PLM.
    401Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - authentication-required
            - invalid-api-key
            - api-key-not-found
        message:
          type: string
    403Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - forbidden
            - access-denied
            - agreement-not-found
        message:
          type: string
    404Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - not-found
        message:
          type: string
    500Error:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          enum:
            - server-error
        message:
          type: string
    ID:
      maxLength: 128
      type: string
      description: A unique identifier.
    PartnerSubscriptionReference:
      required:
        - id
      type: object
      properties:
        id:
          maxLength: 50
          type: string
          description: MarketONE partner service provisioning record identifier.
        metadata:
          $ref: '#/components/schemas/METADATA'
      description: The Account represents an aggregator’s customer.
    METADATA:
      type: object
      additionalProperties:
        type: string
        properties:
          key:
            type: string
          value:
            type: string
      description: >-
        A set of key/value pairs that you can attach to an object. Useful for
        storing additional information.
    OTTTransactionItem:
      required:
        - code
        - name
        - price
        - quantity
        - tax_classification
        - total
      type: object
      properties:
        code:
          type: string
          description: >-
            The SKU or unique identifier of the product purchased with this
            item. This value must match one of the OTT service product codes
            defined in MarketONE or a tax code value (TOTAL_TAX).
        name:
          type: string
          description: Name of the product purchased.
        price:
          type: number
          description: unit price of this item
        quantity:
          type: number
          description: The unit quantity for the item.
        tax_classification:
          type: string
          description: >-
            The tax code or classification applicable to this item. Should
            default to "NonTaxable" for OTT managed subscriptions.
        total:
          type: number
          description: The grand total of this item
        metadata:
          $ref: '#/components/schemas/METADATA'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: The authorization key obtained from MarketONE.
      name: X-API-KEY
      in: header

````

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