---
title: "Create Retention Default Message Mapping"
method: POST
path: "/v2/retention-default-messages"
tags: ["Retention Default Messages V2"]
---

# Create Retention Default Message Mapping

`POST /v2/retention-default-messages`

Creates or replaces a default message mapping. Apple configure call succeeds first, then DB is upserted. Requires retention_messages:write scope.

## Request body

- object
  - `application_id` string, required — Application ID to create the default mapping for
  - `environment` 'sandbox' | 'production' — Environment for this default mapping
  - `product_id` string, required — Apple product ID
  - `locale` string, required — Locale code
  - `retention_message_id` integer, required — Retention message ID used for this default mapping

## Response `200`

Success

- object
  - `id` string, required — Unique identifier
  - `object` 'retention_default_message', required — Object type, always `retention_default_message`
  - `application_id` string, required — Application ID
  - `default_message_group_id` integer, nullable, required — an integer
  - `environment` 'sandbox' | 'production', required — Environment this default message mapping applies to
  - `product_id` string, required — Apple product ID
  - `locale` string, required — Locale code for this mapping
  - `retention_message_id` integer, required — Linked retention message ID
  - `message_name` string, required — Linked retention message name
  - `apple_message_identifier` string, required — Apple message identifier configured for this default mapping
  - `apple_sync_state` 'not_synced' | 'syncing' | 'synced' | 'failed', required — Apple default-message sync state
  - `apple_sync_attempt_count` number, required
  - `apple_sync_last_error` string, nullable, required
  - `apple_synced_at` string, nullable, required
  - `created_at` string, required — ISO 8601 timestamp
  - `updated_at` string, required — ISO 8601 timestamp

## Other responses

- `400` — The request did not match the expected schema
- `401` — No API key was provided in the request
- `403` — The API key does not have permission to perform this action
- `404` — The requested resource was not found
- `429` — Too many requests have been made in a short period
- `500` — A required post-operation side effect failed
- `502` — The upstream retention provider request failed

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) · [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/superwall/superwall-api-v2/revisions/44900ad77d2c/schema)
