> ## Documentation index
> Fetch the complete documentation index at: https://developer.rhombus.com/llms.txt
> Use it to discover all available pages before exploring further.

# Get RMAs

> Get RMAs

```http
POST https://api2.rhombussystems.com/api/logistics/getRMAs
```

EU organizations send the same request to `https://api2.eu.rhombussystems.com`.

## Authentication and parameters

- `x-auth-apikey` (header, required): Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
- `Authorization` (header): instead of an API key, an OAuth access token (`Bearer <token>`) with the `read` scope.
- `x-auth-scheme` (header, string, default: `api-token`): Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters. One of: `api-token`, `api`, `api-oauth-token`, `federated-token`, `partner-api-token`, `partner-api`, `partner-api-oauth-token`.
- `x-auth-org` (header, string<RUUID>): Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry `Deprecation` and `Sunset: Tue, 05 Jan 2027 00:00:00 GMT`). A malformed value returns 400 `INVALID_AUTH_ORG`; a client organization the partner cannot access returns 403 `PARTNER_CLIENT_ACCESS_DENIED`.

## Request body

Content type: `application/json`. Request object for getting RMAs (Return Merchandise Authorizations).

No fields: send `{}`.

## Response 200

OK. Content type: `application/json`

- `error` (boolean | null)
- `errorCode` (string | null): Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
- `errorMsg` (string | null)
- `rmaList` (array<object> | null): List of RMAs (Return Merchandise Authorizations)
- `warningMsg` (string | null)

## Errors

Also 400, 401, 403, 429, 500, 503 with the standard error body (`errorCode`, `errorMsg`): https://developer.rhombus.com/errors

## OpenAPI

````yaml
openapi: 3.0.1
info:
  title: Rhombus API
  version: "1.0"
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/logistics/getRMAs:
    post:
      description: Get RMAs
      operationId: getRMAs
      parameters:
        - description: "Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters."
          example: api-token
          in: header
          name: x-auth-scheme
          required: false
          schema:
            default: api-token
            enum:
              - api-token
              - api
              - api-oauth-token
              - federated-token
              - partner-api-token
              - partner-api
              - partner-api-oauth-token
            type: string
        - description: "Client organization UUID (22-character RUUID), for partner credentials only. With it the call runs in that client organization with the partner support authority's role. Without it a partner credential runs as the partner organization, which outside the partner endpoints is deprecated (responses carry `Deprecation` and `Sunset: Tue, 05 Jan 2027 00:00:00 GMT`). A malformed value returns 400 `INVALID_AUTH_ORG`; a client organization the partner cannot access returns 403 `PARTNER_CLIENT_ACCESS_DENIED`."
          in: header
          name: x-auth-org
          required: false
          schema:
            format: RUUID
            maxLength: 22
            minLength: 22
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Logistics_GetRMAsWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Logistics_GetRMAsWSResponse"
          description: OK
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "429":
          $ref: "#/components/responses/TooManyRequests"
        "500":
          $ref: "#/components/responses/InternalServerError"
        "503":
          $ref: "#/components/responses/ServiceUnavailable"
      security:
        - ApiKeyAuth: []
        - oauth2:
            - read
      summary: Get RMAs
      tags:
        - Logistics Webservice
components:
  schemas:
    Logistics_GetRMAsWSRequest:
      description: Request object for getting RMAs (Return Merchandise Authorizations).
      type: object
    Logistics_GetRMAsWSResponse:
      description: Response object containing RMAs (Return Merchandise Authorizations).
      properties:
        error:
          nullable: true
          type: boolean
        errorCode:
          description: Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
          nullable: true
          type: string
        errorMsg:
          nullable: true
          type: string
        rmaList:
          description: List of RMAs (Return Merchandise Authorizations)
          items:
            $ref: "#/components/schemas/RMAType"
          nullable: true
          type: array
        warningMsg:
          nullable: true
          type: string
      type: object
    RMAType:
      description: List of RMAs (Return Merchandise Authorizations)
      properties:
        address:
          nullable: true
          type: string
        advancedRMAs:
          $ref: "#/components/schemas/AdvancedRMAType"
        briefDescription:
          nullable: true
          type: string
        city:
          nullable: true
          type: string
        costInDollars:
          format: float
          nullable: true
          type: number
        country:
          nullable: true
          type: string
        customerUnresponsive:
          nullable: true
          type: boolean
        deleted:
          nullable: true
          type: boolean
        deviceUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        errorCode:
          $ref: "#/components/schemas/ErrorCodeOrMessageEnum"
        failureDiagnostics:
          items:
            nullable: true
            type: string
          nullable: true
          type: array
        fedExReturnLabelSent:
          nullable: true
          type: boolean
        finalNotes:
          nullable: true
          type: string
        hardwareUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        initialFirmwareVersion:
          nullable: true
          type: string
        initiatedBy:
          nullable: true
          type: string
        inventoryNeeded:
          nullable: true
          type: string
        inventoryNeededMap:
          additionalProperties:
            nullable: true
            type: string
          nullable: true
          type: object
        isRefurbished:
          nullable: true
          type: boolean
        knownIssue:
          nullable: true
          type: boolean
        lastRecordedFirmwareVersion:
          nullable: true
          type: string
        lastUpdatedAtSec:
          format: int64
          nullable: true
          type: integer
        lastUpdatedBy:
          nullable: true
          type: string
        orgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        postalCode:
          nullable: true
          type: string
        prevShippingInfoUsedBy:
          nullable: true
          type: string
        prevShippingInfoUsedByAtSec:
          format: int64
          nullable: true
          type: integer
        proactiveReplacement:
          nullable: true
          type: boolean
        rctpPartnerOrgUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        recipientName:
          nullable: true
          type: string
        recipientPhoneNumber:
          nullable: true
          type: string
        replacementCourier:
          nullable: true
          type: string
        replacementHardwareUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        replacementTrackingNumber:
          nullable: true
          type: string
        requesterEmailAddress:
          nullable: true
          type: string
        returnLabelRequestedUpdatedAtSec:
          format: int64
          nullable: true
          type: integer
        returnLabelSent:
          nullable: true
          type: boolean
        returnLabelSentUpdatedAtSec:
          format: int64
          nullable: true
          type: integer
        returnTrackingNumber:
          nullable: true
          type: string
        rmaRequest:
          $ref: "#/components/schemas/RMARequest"
        rmaRequestUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        sdCardReplaced:
          nullable: true
          type: boolean
        shipmentMethod:
          $ref: "#/components/schemas/ShipmentMethodEnum"
        shipmentRequested:
          nullable: true
          type: boolean
        shipmentRequestedBy:
          nullable: true
          type: string
        shipmentRequestedUpdatedAtSec:
          format: int64
          nullable: true
          type: integer
        shipmentSent:
          nullable: true
          type: boolean
        shipmentSentUpdatedAtSec:
          format: int64
          nullable: true
          type: integer
        skipAutoRegistration:
          nullable: true
          type: boolean
        state:
          nullable: true
          type: string
        status:
          $ref: "#/components/schemas/RMAStatusEnum"
        storageCid:
          nullable: true
          type: string
        street:
          nullable: true
          type: string
        timestampSec:
          format: int64
          nullable: true
          type: integer
        uuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        warehouseInventoryNeeded:
          nullable: true
          type: boolean
        zenDeskTicketAssigneeEmail:
          nullable: true
          type: string
        zenDeskTicketSubject:
          nullable: true
          type: string
        zendeskTicket:
          format: int32
          nullable: true
          type: integer
      type: object
    AdvancedRMAType:
      properties:
        falseReport:
          nullable: true
          type: boolean
        invoiceNeeded:
          nullable: true
          type: boolean
        knownIssue:
          nullable: true
          type: boolean
        managerialApproved:
          nullable: true
          type: boolean
        rctpPartnerRequested:
          nullable: true
          type: boolean
        rctpPartnerUuid:
          nullable: true
          type: string
        rectified:
          nullable: true
          type: boolean
      type: object
    ErrorCodeOrMessageEnum:
      enum:
        - BADGE_READER_UNKNOWN
        - DEAD_OR_MISSING_BATTERY
        - DOORBELL_BUTTON_ISSUE
        - ERROR_2
        - ERROR_4
        - ERROR_5
        - ERROR_24
        - ERROR_28
        - ERROR_30
        - ERROR_39
        - ERROR_74
        - ERROR_84
        - FOREIGN_HARDWARE
        - BAD_SD_BLOCKS
        - NEVER_LEFT_BUSY_STATE
        - HARDWARE_DAMAGE
        - HEAVY_HARDWARE_DAMAGE
        - WATER_DAMAGE
        - VIDEO_HARDWARE_FAILURE
        - ENCRYPTED_CONTAINER_FAILURE_CREATE
        - ENCRYPTED_CONTAINER_FAILURE_OPEN
        - ENCRYPTED_CONTAINER_FAILURE_MOUNT
        - LIGHT_SENSOR
        - SD_CARD_UNKOWN
        - SD_CARD_READER_BROKEN
        - POWER_ISSUES
        - RS485_ISSUE
        - CUT_FILTER
        - QUALITY_OR_PERFORMANCE
        - NETWORK_ISSUES
        - UNKNOWN
        - ILLEGIBLE_SERIAL_COMM
        - NO_SERIAL_COMM
        - COSMETIC_DAMAGE
        - IR_RING_OVERHEATED
        - REGISTERED_SENSOR
        - UNDISCOVERED_ISSUE
        - FOCUS_ISSUES
        - FIRMWARE_REFLASH_REQUIRED
        - POTENTIAL_MANUFACTURING_DEFECT
        - NO_FAULT_FOUND
        - FDT_COMMAND_LINE_ERROR
        - KERNEL_PANIC
        - GET_DTB_FAILED
        - POTENTIAL_FIRMWARE_ISSUE
        - BOOTS_TO_AMBOOT
      type: string
    RMARequest:
      properties:
        formSubmitted:
          nullable: true
          type: boolean
        requestUuid:
          description: base 64 (url-safe) uuid string
          example: AAAAAAAAAAAAAAAAAAAAAA
          format: RUUID
          nullable: true
          type: string
        rmaOpportunityId:
          nullable: true
          type: string
        salesforceAccountId:
          nullable: true
          type: string
        salesforcePartnerContactId:
          nullable: true
          type: string
        salesforcePartnerId:
          nullable: true
          type: string
      type: object
    ShipmentMethodEnum:
      enum:
        - GROUND
        - EXPEDITED
        - OVERNIGHT
      type: string
    RMAStatusEnum:
      enum:
        - INITIATED
        - PENDING
        - APPROVED
        - INPROGRESS
        - COMPLETE
        - RETURN
        - STOLEN
        - OPERATIONAL
        - FULFILLMENT_ERROR
      type: string
  securitySchemes:
    ApiKeyAuth:
      description: Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
      in: header
      name: x-auth-apikey
      type: apiKey
    oauth2:
      description: 'OAuth 2.0 authorization code flow with PKCE (`S256`). Send the access token as `Authorization: Bearer <token>`. Each operation lists the scopes it requires; a token without them is refused 403 with `WWW-Authenticate: Bearer error="insufficient_scope"`.'
      flows:
        authorizationCode:
          authorizationUrl: https://console.rhombus.com/oauth/authorize
          refreshUrl: https://auth-web.rhombussystems.com/oauth/token
          scopes:
            physical: Unlock doors and elevators, lockdown, alarms, speakers and robots
            read: View cameras, footage and settings
            write: Change settings and data
          tokenUrl: https://auth-web.rhombussystems.com/oauth/token
      type: oauth2
````
