Skip to content

rmaOrderStartFulfillment

Starts the fulfillment process for an accepted RMA order. Transitions the processing status from ACCEPTED to PROCESSING. This indicates that returned items are being received and inspected at the warehouse.

Required scope: edit_rma_orders


Mutation

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

Arguments

ArgumentTypeRequiredDescription
idStringInternal UUID of the RMA order to start fulfillment for

Example Variables

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

Example Response

json
{
  "data": {
    "rmaOrderStartFulfillment": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "returnNumber": 1001,
      "returnReference": "RMA-2024-1001",
      "processingStatus": "PROCESSING",
      "deliveryStatus": "DELIVERED",
      "financialStatus": "PENDING",
      "fulfillmentStatus": "IN_PROGRESS",
      "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 RmaOrderStartFulfillment($id: String!) { rmaOrderStartFulfillment(id: $id) { id returnNumber returnReference processingStatus fulfillmentStatus } }",
    "variables": {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    }
  }'
js
const mutation = `
  mutation RmaOrderStartFulfillment($id: String!) {
    rmaOrderStartFulfillment(id: $id) {
      id
      returnNumber
      returnReference
      processingStatus
      fulfillmentStatus
    }
  }
`;

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.rmaOrderStartFulfillment);
python
import os
import requests

mutation = """
mutation RmaOrderStartFulfillment($id: String!) {
  rmaOrderStartFulfillment(id: $id) {
    id
    returnNumber
    returnReference
    processingStatus
    fulfillmentStatus
  }
}
"""

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['rmaOrderStartFulfillment'])
php
<?php
$mutation = <<<'GQL'
mutation RmaOrderStartFulfillment($id: String!) {
  rmaOrderStartFulfillment(id: $id) {
    id
    returnNumber
    returnReference
    processingStatus
    fulfillmentStatus
  }
}
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']['rmaOrderStartFulfillment']);
go
package main

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

func main() {
	mutation := `
		mutation RmaOrderStartFulfillment($id: String!) {
			rmaOrderStartFulfillment(id: $id) {
				id
				returnNumber
				returnReference
				processingStatus
				fulfillmentStatus
			}
		}`

	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