MyCarrier Invoice Management API

The Invoice Management API from MyCarrier — 4 operation(s) for invoice management.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mycarrier-invoice-management-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mycarrier-invoice-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: FreightAudit Public Invoice Management API
  version: public
servers:
- url: https://invoice.mycarriertms.com
tags:
- name: Invoice Management
paths:
  /api/v2/Integrations/Invoices/Status/{status}:
    patch:
      tags:
      - Invoice Management
      summary: Updates status for the identified invoice.
      parameters:
      - name: status
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/MC.Invoice.Data.Enums.IntegrationInvoiceStatusType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceUpdateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceUpdateRequest'
      responses:
        '200':
          description: The operation was successfully completed.
        '400':
          description: Bad request due to data validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized. The username or password provided is incorrect.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Access to the requested resource is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
      - BasicAuth:
        - AuthenticationSchemes:BasicAuthentication
      x-code-samples:
      - lang: C#
        source: "static async Task PatchAsync(HttpClient httpClient)\n{\n    using StringContent jsonContent = new(\n        JsonSerializer.Serialize(new IntegrationInvoiceUpdateRequest()\n        {\n            RecordId = Guid.Parse(\"6b727121-309f-4536-be35-a4838edf6662\"),\n            UpdatedBy = \"MyCarrier TMS\"\n        }),\n        Encoding.UTF8,\n        \"application/json\");\n\n    using HttpResponseMessage response = await httpClient.PatchAsync(\n        \"https://localhost:7205/api/v2/Integrations/Invoices/Status/Open\",\n        jsonContent);\n\n    response.EnsureSuccessStatusCode();\n\n    var jsonResponse = await response.Content.ReadAsStringAsync();\n\n}"
      - lang: CURL
        source: "curl --location --request PATCH 'https://localhost:7205/api/v2/Integrations/Invoices/Status/Open' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Basic dHJhdmlzaF9hdF9kZGdsb2JhbC5jb21AaW50ZWdyYXRlZHRtLmRl' \\\n--data '{\n  \"recordId\": \"543b840b-935e-4d23-af4b-792af029e1f2\",\n  \"updatedBy\": \"MyCarrier TMS\"\n}'"
      - lang: JavaScript
        source: "const options = {\n  method: 'PATCH',\n  headers:\n{\n    'Content-Type': 'application/json',\n    'Authorization': 'Basic ' + btoa('username:password') },\n    body: JSON.stringify(\n    {\n      'recordId': '543b840b-935e-4d23-af4b-792af029e1f2',\n      'updatedBy': 'MyCarrier TMS'\n    })\n};\n\nfetch('https://localhost:7205/api/v2/Integrations/Invoices/Status/Open', options)\n  .then(response => response.json())\n  .then(response => console.log(response))\n  .catch(err => console.error(err));\";"
  /api/v2/Integrations/Invoices/Status/Approve/Reason:
    patch:
      tags:
      - Invoice Management
      summary: Updates approval reason for the identified invoice.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceApprovalReasonRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceApprovalReasonRequest'
      responses:
        '200':
          description: The operation was successfully completed.
        '400':
          description: Bad request due to data validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized. The username or password provided is incorrect.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Access to the requested resource is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
      - BasicAuth:
        - AuthenticationSchemes:BasicAuthentication
      x-code-samples:
      - lang: C#
        source: "static async Task PatchAsync(HttpClient httpClient)\n{\n    using StringContent jsonContent = new(\n        JsonSerializer.Serialize(new IntegrationInvoiceApprovalReasonRequest()\n        {\n            RecordId = Guid.Parse(\"6b727121-309f-4536-be35-a4838edf6662\"),\n            UpdatedBy = \"MyCarrier TMS\",\n            ApprovedReason = \"Incorrect Weight When Shipped\",\n            ApprovedOtherNotes = \"Some Notes\"\n        }),\n        Encoding.UTF8,\n        \"application/json\");\n\n    using HttpResponseMessage response = await httpClient.PatchAsync(\n        \"https://localhost:7205/api/v2/Integrations/Invoices/Status/Approve/Reason\",\n        jsonContent);\n\n    response.EnsureSuccessStatusCode();\n\n    var jsonResponse = await response.Content.ReadAsStringAsync();\n\n}"
      - lang: CURL
        source: "curl --location --request PATCH 'https://localhost:7205/api/v2/Integrations/Invoices/Status/Approve/Reason' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Basic dHJhdmlzaF9hdF9kZGdsb2JhbC5jb21AaW50ZWdyYXRlZHRtLmRl' \\\n--data '{\n  \"recordId\": \"543b840b-935e-4d23-af4b-792af029e1f2\",\n  \"updatedBy\": \"MyCarrier TMS\",\n  \"approvedReason\": \"Incorrect Weight When Shipped\",\n  \"approvedOtherNotes\": \"Some Notes\"\n}'"
      - lang: JavaScript
        source: "const options = {\n  method: 'PATCH',\n  headers:\n{\n    'Content-Type': 'application/json',\n    'Authorization': 'Basic ' + btoa('username:password') },\n    body: JSON.stringify(\n    {\n      'recordId': '543b840b-935e-4d23-af4b-792af029e1f2',\n      'updatedBy': 'MyCarrier TMS',\n      'approvedReason': 'Incorrect Weight When Shipped',\n      'approvedOtherNotes': 'Some Notes'\n    })\n};\n\nfetch('https://localhost:7205/api/v2/Integrations/Invoices/Status/Approve/Reason', options)\n  .then(response => response.json())\n  .then(response => console.log(response))\n  .catch(err => console.error(err));\";"
  /api/v2/Integrations/Invoices/ArchiveToggle/{type}:
    patch:
      tags:
      - Invoice Management
      summary: Archive or Unarchive the identified invoice.
      parameters:
      - name: type
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/MC.Invoice.Data.Enums.InvoiceArchivingType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceUpdateRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceUpdateRequest'
      responses:
        '200':
          description: The operation was successfully completed.
        '400':
          description: Bad request due to data validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized. The username or password provided is incorrect.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Access to the requested resource is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
      - BasicAuth:
        - AuthenticationSchemes:BasicAuthentication
      x-code-samples:
      - lang: C#
        source: "static async Task PatchAsync(HttpClient httpClient)\n{\n    using StringContent jsonContent = new(\n        JsonSerializer.Serialize(new IntegrationInvoiceUpdateRequest()\n        {\n            RecordId = Guid.Parse(\"3ca85f64-5717-4562-b3fc-5d953f66afa6\"),\n            UpdatedBy = \"MyCarrier TMS\",\n        }),\n        Encoding.UTF8,\n        \"application/json\");\n\n    using HttpResponseMessage response = await httpClient.PatchAsync(\n        \"https://localhost:7205/api/v2/Integrations/Invoices/ArchiveToggle/Archive\",\n        jsonContent);\n\n    response.EnsureSuccessStatusCode();\n\n    var jsonResponse = await response.Content.ReadAsStringAsync();\n\n}"
      - lang: CURL
        source: "curl --location --request PATCH 'https://localhost:7205/api/v2/Integrations/Invoices/ArchiveToggle/Archive' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Basic dHJhdmlzaF9hdF9kZGdsb2JhbC5jb21AaW50ZWdyYXR' \\\n--data '{\n  \"recordId\": \"3ca85f64-5717-4562-b3fc-5d953f66afa6\",\n  \"updatedBy\": \"MyCarrier TMS\"\n}'"
      - lang: JavaScript
        source: "const options = {\n  method: 'PATCH',\n  headers:\n{\n    'Content-Type': 'application/json',\n    'Authorization': 'Basic ' + btoa('username:password') },\n    body: JSON.stringify(\n    {\n      'recordId': '3ca85f64-5717-4562-b3fc-5d953f66afa6',\n      'updatedBy': 'MyCarrier TMS'\n    })\n};\n\nfetch('https://localhost:7205/api/v2/Integrations/Invoices/ArchiveToggle/Archive', options)\n  .then(response => response.json())\n  .then(response => console.log(response))\n  .catch(err => console.error(err));\";"
  /api/v2/Integrations/Invoices/Create:
    post:
      tags:
      - Invoice Management
      summary: Creates new invoices that a customer needs to pay.
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest'
      responses:
        '200':
          description: The operation was successfully completed.
        '400':
          description: Bad request due to data validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '401':
          description: Unauthorized. The username or password provided is incorrect.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
        '403':
          description: Access to the requested resource is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
      security:
      - BasicAuth:
        - AuthenticationSchemes:BasicAuthentication
      x-code-samples:
      - lang: C#
        source: "static async Task PostAsync(HttpClient httpClient)\n{\n    using StringContent jsonContent = new(\n        JsonSerializer.Serialize(new List<IntegrationCreateInvoiceRequest>() {\n            new ()\n            {\n               InvoiceNumber = \"23224234234\",\n               CarrierCode = \"SAIA\",\n               InvoiceDateTime = DateTime.Parse(\"2024-04-15T00:00:00\"),\n               Shipment = new ()\n               {\n                 CarrierProNumber = \"23224234234\"\n               }\n            }\n        }),\n        Encoding.UTF8, \"application/json\");\n\n    string username = \"username\";\n    string password = \"password\";\n    string authString = Convert.ToBase64String(\n        Encoding.UTF8.GetBytes($\"{username}:{password}\"));\n\n    httpClient.DefaultRequestHeaders.Authorization =\n        new AuthenticationHeaderValue(\"Basic\", authString);\n\n    using HttpResponseMessage response = await httpClient.PostAsync(\n        \"https://localhost:7205/api/v2/Integrations/Invoices/Create\",\n        jsonContent);\n\n    response.EnsureSuccessStatusCode();\n\n    var jsonResponse = await response.Content.ReadAsStringAsync();\n}"
      - lang: CURL
        source: "curl --location 'https://localhost:7205/api/v2/Integrations/Invoices/Create' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Basic ZW1haWKAKNFPOdf76YXBpLWtleQ65rhG' \\\n--data '[\n    {\n        \n        \"invoiceNumber\": \"23224234234\",\n        \"invoiceDateTime\": \"2024-04-15T00:00:00\",\n        \"carrierCode\": \"SAIA\",\n        \"shipment\": {\n            \"carrierPRONumber\": \"23224234234\"\n        }\n    }\n]'"
      - lang: JavaScript
        source: "const options = {\n  method: 'POST',\n  headers:\n{\n    'Content-Type': 'application/json',\n    'Authorization': 'Basic ' + btoa('username:password') },\n    body: JSON.stringify(\n    [{\n       invoiceNumber: '23224234234',\n       carrierCode: 'SAIA',\n       invoiceDateTime: '2024-04-15T16:20:40.144Z',\n       shipment:\n       {\n         carrierProNumber: '23224234234'\n       }\n    }]\n  )\n};\n\nfetch('https://localhost:7205/api/v2/Integrations/Payments/BulkPay', options)\n  .then(response => response.json())\n  .then(response => console.log(response))\n  .catch(err => console.error(err));\";"
components:
  schemas:
    MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_ShippingTimeline:
      type: object
      properties:
        estimatedDate:
          type:
          - string
          - 'null'
          format: date-time
        actualDate:
          type:
          - string
          - 'null'
          format: date-time
      additionalProperties: false
    MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_InvoiceCompanyAddress:
      type: object
      properties:
        companyName:
          type:
          - string
          - 'null'
        streetLine1:
          type:
          - string
          - 'null'
        streetLine2:
          type:
          - string
          - 'null'
        city:
          type:
          - string
          - 'null'
        state:
          type:
          - string
          - 'null'
        zip:
          type:
          - string
          - 'null'
        country:
          type:
          - string
          - 'null'
      additionalProperties: false
    Microsoft.AspNetCore.Mvc.ProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
      additionalProperties: {}
    MC.Invoice.Data.Enums.IntegrationInvoiceStatusType:
      enum:
      - Open
      - Approved
      - Paid
      - ShortPaid
      type: string
    MC.Invoice.Data.Entities.ShipmentPriceDetail:
      type: object
      properties:
        description:
          type:
          - string
          - 'null'
        amount:
          type: number
          format: double
        chargeCode:
          type:
          - string
          - 'null'
      additionalProperties: false
    MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceUpdateRequest:
      required:
      - recordId
      - updatedBy
      type: object
      properties:
        recordId:
          type: string
          format: uuid
        updatedBy:
          minLength: 1
          type: string
      additionalProperties: false
    MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_InvoiceCompanyInfo:
      type: object
      properties:
        companyName:
          type:
          - string
          - 'null'
        streetLine1:
          type:
          - string
          - 'null'
        streetLine2:
          type:
          - string
          - 'null'
        city:
          type:
          - string
          - 'null'
        state:
          type:
          - string
          - 'null'
        zip:
          type:
          - string
          - 'null'
        country:
          type:
          - string
          - 'null'
        contactName:
          type:
          - string
          - 'null'
        contactEmail:
          type:
          - string
          - 'null'
        contactPhone:
          type:
          - string
          - 'null'
      additionalProperties: false
    MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_Commodity:
      type: object
      properties:
        description:
          type:
          - string
          - 'null'
        piecesNumber:
          type:
          - integer
          - 'null'
          format: int32
        totalWeight:
          type:
          - integer
          - 'null'
          format: int32
        freightClassCode:
          type:
          - string
          - 'null'
        packingType:
          type:
          - string
          - 'null'
      additionalProperties: false
    MC.Invoice.Data.Enums.InvoiceArchivingType:
      enum:
      - Unarchive
      - Archive
      type: string
    MC.Invoice.API.Dtos.Integrations.IntegrationInvoiceApprovalReasonRequest:
      required:
      - approvedReason
      - recordId
      - updatedBy
      type: object
      properties:
        recordId:
          type: string
          format: uuid
        updatedBy:
          minLength: 1
          type: string
        approvedReason:
          minLength: 1
          type: string
        approvedOtherNotes:
          type:
          - string
          - 'null'
      additionalProperties: false
    MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_CreateInvoiceShipment:
      required:
      - carrierProNumber
      type: object
      properties:
        carrierProNumber:
          minLength: 1
          type: string
        customerBOLNumber:
          type:
          - string
          - 'null'
        poNumber:
          type:
          - string
          - 'null'
        delivery:
          $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_ShippingTimeline'
        pickup:
          $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_ShippingTimeline'
        shipperInfo:
          $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_InvoiceCompanyInfo'
        consigneeInfo:
          $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_InvoiceCompanyInfo'
        requesterInfo:
          $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_InvoiceCompanyAddress'
        commodities:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_Commodity'
        lineItems:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/MC.Invoice.Data.Entities.ShipmentPriceDetail'
      additionalProperties: false
    MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest:
      required:
      - carrierCode
      - invoiceDateTime
      - invoiceNumber
      type: object
      properties:
        invoiceNumber:
          minLength: 1
          type: string
        carrierCode:
          minLength: 1
          type: string
        invoiceDateTime:
          type: string
          format: date-time
        termsOfSaleDueDate:
          type:
          - string
          - 'null'
          format: date-time
        createdBy:
          type:
          - string
          - 'null'
        shipment:
          $ref: '#/components/schemas/MC.Invoice.API.Dtos.Integrations.IntegrationCreateInvoiceRequest_CreateInvoiceShipment'
      additionalProperties: false
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic