Skip to content

rmaOrderCancel

Cancels an RMA order. The order can be cancelled from NEW, REQUESTED, or ACCEPTED processing status. Once in PROCESSING status, the order cannot be cancelled.

Required scope: edit_rma_orders


Mutation

graphql
mutation RmaOrderCancel($id: String!) {
  rmaOrderCancel(id: $id) {
    id
    returnNumber
    returnReference
    processingStatus
    deliveryStatus
    financialStatus
    fulfillmentStatus
    expectedResolution
  }
}

Cancellation behaviour by processing status

Processing StatusBehaviour
NEWImmediately cancelled. Terminal.
REQUESTEDImmediately cancelled. Terminal.
ACCEPTEDCancelled. Any pending shipments may need to be handled separately. Terminal.
PROCESSINGCannot be cancelled — items are already being inspected.
COMPLETECannot be cancelled — already in terminal state.
REJECTEDCannot be cancelled — already in terminal state.

Arguments

ArgumentTypeRequiredDescription
idStringInternal UUID of the RMA order to cancel

Example Variables

json
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}

Example Response

json
{
  "data": {
    "rmaOrderCancel": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "returnNumber": 1001,
      "returnReference": "RMA-2024-1001",
      "processingStatus": "CANCELED",
      "deliveryStatus": "CANCELED",
      "financialStatus": "CANCELED",
      "fulfillmentStatus": "CANCELED",
      "expectedResolution": "REFUND"
    }
  }
}

Code Examples

bash
curl -X POST https://api-v3.happycolis.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
    "query": "mutation RmaOrderCancel($id: String!) { rmaOrderCancel(id: $id) { id returnNumber returnReference processingStatus } }",
    "variables": {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  }'
js
const mutation = `
  mutation RmaOrderCancel($id: String!) {
    rmaOrderCancel(id: $id) {
      id
      returnNumber
      returnReference
      processingStatus
    }
  }
`;

const response = await fetch('https://api-v3.happycolis.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
  body: JSON.stringify({
    query: mutation,
    variables: { id: '550e8400-e29b-41d4-a716-446655440000' },
  }),
});

const { data } = await response.json();
console.log(data.rmaOrderCancel);
python
import os
import requests

mutation = """
mutation RmaOrderCancel($id: String!) {
  rmaOrderCancel(id: $id) {
    id
    returnNumber
    returnReference
    processingStatus
  }
}
"""

response = requests.post(
    'https://api-v3.happycolis.com/graphql',
    headers={'Authorization': f'Bearer {os.environ["ACCESS_TOKEN"]}'},
    json={
        'query': mutation,
        'variables': {'id': '550e8400-e29b-41d4-a716-446655440000'},
    },
)

data = response.json()['data']
print(data['rmaOrderCancel'])
php
<?php
$mutation = <<<'GQL'
mutation RmaOrderCancel($id: String!) {
  rmaOrderCancel(id: $id) {
    id
    returnNumber
    returnReference
    processingStatus
  }
}
GQL;

$ch = curl_init('https://api-v3.happycolis.com/graphql');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode([
        'query'     => $mutation,
        'variables' => ['id' => '550e8400-e29b-41d4-a716-446655440000'],
    ]),
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'Authorization: Bearer ' . getenv('ACCESS_TOKEN'),
    ],
]);

$result = json_decode(curl_exec($ch), true);
curl_close($ch);

print_r($result['data']['rmaOrderCancel']);
go
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
	"os"
)

func main() {
	mutation := `
		mutation RmaOrderCancel($id: String!) {
			rmaOrderCancel(id: $id) {
				id
				returnNumber
				returnReference
				processingStatus
			}
		}`

	body, _ := json.Marshal(map[string]any{
		"query":     mutation,
		"variables": map[string]any{"id": "550e8400-e29b-41d4-a716-446655440000"},
	})

	req, _ := http.NewRequest("POST", "https://api-v3.happycolis.com/graphql", bytes.NewBuffer(body))
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", "Bearer "+os.Getenv("ACCESS_TOKEN"))

	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()

	var result map[string]any
	json.NewDecoder(resp.Body).Decode(&result)
	fmt.Println(result["data"])
}

HappyColis API Documentation