API references
Merchant API

Sync object metadata

Metadata allows you to store and manage arbitrary JSON data associated with your merchant account.

Keys and Objects

Metadata is organized into objects, each identified by a unique key. The key is a string of your choice that serves as a unique identifier for the metadata record.

Nested Paths

You can use dot-separated paths (e.g., settings.theme or user.profile.id) to update specific parts of a metadata object without overwriting the entire thing.

  • If the path does not exist, it will be created.
  • If no path is provided, the entire metadata object for the given key is replaced.

Expiration (TTL)

Each metadata record has an expiration date.

  • By default, metadata expires after 2 years from its last update.
  • You can specify a custom ttl (Time To Live) in seconds when syncing.
  • Metadata can be deleted by syncing it with a ttl of 0.
  • Expired metadata can be reactivated by syncing it again.

Optimistic Locking

To prevent concurrent updates from overwriting each other, you can use the version argument. If provided, the update will only succeed if it matches the current version (lock_version) of the record.

Limits

  • Individual metadata records are limited to 4 KB.
  • For test accounts, the total size of all metadata records is limited to 10 MB.
Endpoint signature
This endpoint requires an API key. Read our authentication guide for more information.
POST https://api.reservepay.com/merchants/sync-metadata HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer <token>
{
key: string,
path: string?,
metadata: any,
version: number?,
ttl: number?,
}
Returns: string
New to Reservepay? Read our guide on how to call endpoints to get started.
Request arguments
key string

Required. The unique key that identifies the metadata object.

path string

Optional. Optional dot-separated path within the metadata object to update.

metadata any

Required. The JSON metadata to store (or value at path).

version number

Optional. The version number for optimistic locking (lock_version).

ttl number

Optional. The time to live in seconds. After this duration, the metadata will be considered expired. Maximum allowed is 2 years.

Errors common to all endpoints
UNHANDLED_ERROR

This error occurs when the server encounters an unexpected internal error that it cannot handle gracefully. This typically happens due to bugs, infrastructure issues, or edge cases that weren't anticipated during development.

INVALID_ARGUMENTS

This error occurs when the request contains invalid or missing parameters. Common cases include missing required fields, or values that don't match the expected format or type.

BAD_VERSION

This error occurs when making requests to an API version that does not exist. This commonly happens when using an outdated SDK or when the API version specified in the request URL is incorrect.

CODE SAMPLES
curl
curl "https://api.reservepay.com/merchants/sync-metadata" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $(RESERVEPAY_API_KEY)" \
  -d '{
        "key": "myData",
        "metadata": "{\"tags\":[\"a\",\"b\"]}"
      }'
Learn how to run these code samples in your terminal by reading our guide.