Skip to main content
POST
Create a magic link

Authorizations

X-API-Key
string
header
required

Your partner API key. Use raas_sandbox_* keys for the sandbox environment and raas_live_* keys for production.

Body

application/json
referenceId
string
required

Your unique identifier for the end user in your system. Used to correlate users with your records and to detect returning users.

Example:

"user-12345"

flow
enum<string>
required

Flow discriminator. Must be "m2m" for this variant.

Available options:
m2m
Example:

"m2m"

externalId
string

Your tracing ID for this link/intent (order id, ticket, invoice, etc.). Copied onto the operation when the transfer is created so you can search operations by this value. Distinct from referenceId (which identifies the user).

Maximum string length: 128
Example:

"ORD-2026-001"

campaign
string

Campaign slug this link belongs to. Opaque to RaaS — the campaign definition (sponsor, dates, terms) lives in your campaign system. Lowercased and trimmed; rejected (not rewritten) if it is not a slug. Stamped on the user at claim (first-touch) and copied onto every operation.

Maximum string length: 64
Pattern: ^[a-z0-9][a-z0-9._-]{0,63}$
Example:

"feb-promo-gt"

expiresInMinutes
number
default:60

Link time-to-live in minutes. The link becomes inaccessible after expiration. Minimum: 5 minutes. Maximum: 10,080 minutes (7 days). Defaults to the partner-level configuration (usually 60 minutes).

Required range: 5 <= x <= 10080
Example:

120

metadata
object

Arbitrary key-value metadata to attach to the link. Useful for storing internal references. Campaign attribution uses the first-class campaign field, not metadata. Returned in link detail and webhook payloads.

Example:
theme
object

Theme configuration object for the widget. The schema is owned by the flow frontend and is stored as-is. Overrides the partner-level theme.

Example:
language
enum<string>

Language code for the widget UI (ISO 639-1). Overrides browser detection. Must be one of the languages shipped by the widgets.

Available options:
en,
es,
fr
Example:

"es"

callbackUrl
string

HTTPS (or http) URL the widget uses for Return to app while this magic link is still valid. Distinct from the partner-level sessionExpiredRedirectUrl used on 410/409, and from webhookUrl (Partner Settings → Webhooks).

Example:

"https://app.example.com/return"

headerName
string

Brand name shown in the widget header for this link. When omitted, the widget falls back to the partner logo, then to the partner display name.

Maximum string length: 80
Example:

"Lola Send"

cipTemplateId
string

Kentucky CIP template ID to use when provisioning the CIP ticket for this link. Overrides the partner-level setting and the global default.

Maximum string length: 120
Example:

"raas-v1"

presentation
object

Link-scoped presentation flags (splash / agreement) common to every flow. Returned to the widget inside the claim config block.

contact
object

Optional end-user contact data (e.g. email from your auth provider). Merged onto the User when the link is claimed by the same referenceId. Not used for notifications or corridor provisioning.

config
object

M2M-specific configuration: pre-filled user data, transfer flavor, theme mode.

Response

Magic link created successfully

success
boolean
required
Example:

true

data
object
required