# woocommerce-pos/1.10.2/includes/Sync/Api.php

WCPOS – Point of Sale (POS) plugin for WooCommerce, version 1.10.2. 75 lines.

- Page: https://pluginprobe.com/plugins/woocommerce-pos/1.10.2/code/includes/Sync/Api.php
- Raw: https://pluginprobe.com/plugins/woocommerce-pos/1.10.2/raw/includes/Sync/Api.php
- Modified: 2026-08-25T07:52:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/woocommerce-pos/1.10.2/code/includes/Sync/Api.php#L10-L20`.

```php
<?php
/**
 * Sync REST API registration.
 *
 * @package WCPOS\WooCommercePOS\Sync
 */

namespace WCPOS\WooCommercePOS\Sync;

use WCPOS\WooCommercePOS\API\V2\Catalog_Proxy_Controller;
use WCPOS\WooCommercePOS\API\V2\Changes_Controller;
use WCPOS\WooCommercePOS\API\V2\Digests_Controller;
use WCPOS\WooCommercePOS\API\V2\Integrity_Controller;
use WCPOS\WooCommercePOS\API\V2\Orders_Controller;
use WCPOS\WooCommercePOS\API\V2\Resolve_Controller;
use WCPOS\WooCommercePOS\API\V2\Status_Controller;
use WCPOS\WooCommercePOS\API\V2\Uuid_Backfill_Controller;
use WCPOS\WooCommercePOS\API\V2\Variations_Controller;
use WCPOS\WooCommercePOS\API\V2\Write_Controller;

/**
 * Sync REST API configuration and controller registration.
 */
final class Api {
	public const ROUTE_NAMESPACE = 'wcpos/v2';
	public const ADMIN_OP_PATHS  = array( 'uuid/backfill', 'orders/index/backfill', 'integrity/rebuild' );
	public const UUID_META_KEY   = '_woocommerce_pos_uuid';
	// 5: (status, created_at) index on the mutations table for retention pruning.
	public const SCHEMA_VERSION  = '5';
	public const SCHEMA_OPTION   = 'wcpos_sync_schema_version';

	/**
	 * Declare routes with special permission-gate handling.
	 *
	 * @return array<string, string[]> Route classifications.
	 */
	public static function route_classifications(): array {
		$admin_routes = array();

		foreach ( self::ADMIN_OP_PATHS as $path ) {
			$admin_routes[] = '/' . self::ROUTE_NAMESPACE . '/' . $path;
		}

		return array(
			'admin_op'       => $admin_routes,
			'rewrite_exempt' => array( '/' . self::ROUTE_NAMESPACE . '/' ),
		);
	}

	/**
	 * Register sync REST API controllers.
	 *
	 * @param array $controllers REST API controllers.
	 *
	 * @return array REST API controllers.
	 */
	public static function register_controllers( array $controllers ): array {
		Response_Telemetry::register_hooks();
		Retry_After_Mirror::register_hooks();
		Response_Envelope::register_hooks();
		$controllers['sync-status']     = Status_Controller::class;
		$controllers['sync-catalog']    = Catalog_Proxy_Controller::class;
		$controllers['sync-orders']     = Orders_Controller::class;
		$controllers['sync-changes']    = Changes_Controller::class;
		$controllers['sync-digests']    = Digests_Controller::class;
		$controllers['sync-integrity']  = Integrity_Controller::class;
		$controllers['sync-uuid']       = Uuid_Backfill_Controller::class;
		$controllers['sync-variations'] = Variations_Controller::class;
		$controllers['sync-resolve']    = Resolve_Controller::class;
		$controllers['sync-write']      = Write_Controller::class;

		return $controllers;
	}
}

```
