API DOCUMENTATION

Confirm your assigned profile. Draft sections and verification limits are marked.

View open points →

PAYSTAR / DEVELOPER DOCUMENTATION

Reference dictionaries

Field names, currency identifiers, error handling and schemas, grouped for lookup.

Download just the dictionary you need using the links in each section. All separate downloads → · Combined dictionary file →

Download order statuses only · JSON ↓ · View order statuses in Downloads →

[01]

Additional fields

Download additional fields only · JSON ↓ · View additional fields in Downloads →

Every item has a key and a present, non-null scalar value. New examples use lowerCamelCase; required fields depend on the pipeline. These 47 names are a reference catalog, not a universal request schema. Ask your integration manager for the current required field set for your terminal.

Array structure and example
FieldPresenceType & meaning
keyRequiredstring

Canonical documented casing is lowerCamelCase.

minLength: 1

valueRequiredstring | number | boolean

Flow-specific scalar. Presence and non-null value are normative; formats and ranges belong to the selected flow schema.

AdditionalFieldValue

JSON · illustrative field arraySelect text to copy
{
  "additionalFields": [
    {
      "key": "payeerIdentifier",
      "value": "Merch-Customer-12345"
    }
  ]
}
payment method and card7 fields
FieldDescription / scopeSafe example
productCodeInternal product or service code.

Profile-specific; not universally required.

Merch-12345
cardNumberFull card PAN. Only send through a PCI-authorized H2H flow.

Profile-specific; not universally required.

<PAN>
cardExpireMonthCard expiry month in MM format.

Profile-specific; not universally required.

05
cardExpireYearCard expiry year in YY format.

Profile-specific; not universally required.

26
cardCvvCVV/CVC, 3–4 digits. Must never be stored.

Profile-specific; not universally required.

<CVV>
cardHolderName printed on the card.

Profile-specific; not universally required.

JOHN DOE
cardTokenTokenized card identifier issued by a bank/provider.

Profile-specific; not universally required.

<BANK_CARD_TOKEN>
tokenization1 fields
FieldDescription / scopeSafe example
cardStorageTokenToken used for subsequent payments in the merchant tokenized flow; availability and storage responsibility depend on the assigned profile.

Profile-specific; not universally required.

<PAYSTAR_CARD_STORAGE_TOKEN>
payment method1 fields
FieldDescription / scopeSafe example
typePayment type selector used in examples, e.g. card; not listed in the field catalog.

Profile-specific; not universally required.

card
customer identity kyc6 fields
FieldDescription / scopeSafe example
firstNameCustomer first name.

Profile-specific; not universally required.

John
middleNameCustomer middle name.

Profile-specific; not universally required.

Michael
lastNameCustomer last name.

Profile-specific; not universally required.

Smith
customerDocumentIdGovernment-issued document identifier; include document type where required.

Profile-specific; not universally required.

Passport <ID>
customerBirthdayDateDate of birth in YYYY-MM-DD format.

Profile-specific; not universally required.

1990-04-05
customerNationalityNationality, ISO 3166-1 alpha-3.

Profile-specific; not universally required.

NLD
customer contact and address10 fields
FieldDescription / scopeSafe example
emailCustomer email address.

Profile-specific; not universally required.

customer@example.com
phoneNumberCustomer phone number.

Profile-specific; not universally required.

31612345678
telecomOperatorMobile network enum/name used for telecom payments and routing.

Profile-specific; not universally required.

vodafone-uk
dialingCodeInternational dialing code.

Profile-specific; not universally required.

31
customerAddressCustomer street address.

Profile-specific; not universally required.

123 Main Street
customerCityCustomer city/locality.

Profile-specific; not universally required.

Amsterdam
customerStateState or region where applicable.

Profile-specific; not universally required.

Noord-Holland
customerZipCodePostal or ZIP code.

Profile-specific; not universally required.

1012 AB
customerCountryCodeISO 3166-1 alpha-3 country code.

Profile-specific; not universally required.

NLD
customerCountryFull country name if required by the downstream PSP.

Profile-specific; not universally required.

Netherlands
bank and payment details7 fields
FieldDescription / scopeSafe example
beneficiaryNameLegal name of the beneficiary/account holder.

Profile-specific; not universally required.

John Smith
bankNameBank enum/name used for routing.

Profile-specific; not universally required.

all
bankAccountBeneficiary bank account number.

Profile-specific; not universally required.

<ACCOUNT_NUMBER>
ibanInternational Bank Account Number.

Profile-specific; not universally required.

<IBAN>
bankCodeCountry-specific national bank identifier.

Profile-specific; not universally required.

<BANK_CODE>
bankBranchLocal branch identifier/name.

Profile-specific; not universally required.

<BRANCH>
ifcsCodeDocumented key for Indian IFSC code.

Profile-specific; not universally required.

HDFC0001234
crypto1 fields
FieldDescription / scopeSafe example
cryptoWalletAdressDocumented key for a crypto wallet address; chain may also be needed.

Profile-specific; not universally required.

<WALLET_ADDRESS>
browser and 3ds10 fields
FieldDescription / scopeSafe example
browserUserAgentFull browser User-Agent string.

Profile-specific; not universally required.

<USER_AGENT>
browserAcceptHeaderBrowser HTTP Accept header.

Profile-specific; not universally required.

text/html,application/xhtml+xml
browserLanguageBrowser language.

Profile-specific; not universally required.

en-GB
browserJavaEnabledWhether Java is enabled.

Profile-specific; not universally required.

true
browserJavascriptEnabledWhether JavaScript is enabled.

Profile-specific; not universally required.

true
browserColorDepthScreen color depth in bits.

Profile-specific; not universally required.

24
browserScreenWidthScreen width in pixels.

Profile-specific; not universally required.

1920
browserScreenHeightScreen height in pixels.

Profile-specific; not universally required.

1080
browserTZTimezone offset from UTC in minutes.

Profile-specific; not universally required.

-120
browserChallengeWindowSize3DS challenge window code: 01=250x400, 02=390x400, 03=500x600.

Profile-specific; not universally required.

03
merchant and store1 fields
FieldDescription / scopeSafe example
storeUrlMerchant website or checkout URL.

Profile-specific; not universally required.

https://merchant.example.com/
miscellaneous2 fields
FieldDescription / scopeSafe example
ipEnd-user IP address.

Profile-specific; not universally required.

203.0.113.10
payeerIdentifierPayer/customer identifier on the merchant side.

Profile-specific; not universally required.

Merch-Customer-12345
sandbox1 fields
FieldDescription / scopeSafe example
ExpectedResultLegacy-documented sandbox control; casing, supported outcomes and profile applicability require confirmation. Not verified by this test set.

optional_test_only

status=failed

[02]

Currency codes

Download currencies only · JSON ↓ · View currencies in Downloads →

179 published reference identifiers.

currency is a string key. There is no lexical length or pattern validation: values such as USDT_TRC20 can be submitted. Passing the request schema does not mean that the currency is known, enabled for your profile or routable.

  1. Internal currency dictionary lookup. PayStar looks up the submitted key. An unknown currency is rejected at this stage.
  2. Pipeline route lookup. For a known currency, payment creation searches for a route matching the pipeline conditions. A known currency can still have no matching route.

Fiat commonly uses ISO 4217 alpha-3 codes, such as RUB. Crypto may use an asset/network key, such as USDT_TRC20. Use the exact value supplied for your integration; this example is not a promise of crypto support on your key. Confirm the available currencies and limits with your manager. Do not infer case-insensitive lookup or aliases.

The catalog below is a published ISO-style reference, not the full internal currency dictionary. It does not enumerate crypto support. Balance remains a read-only lookup with its own outcomes; the creation routing sequence does not apply to it.

Alpha-3 currency catalog179 entries
CodeNumeric codeCurrency
AED784UAE Dirham
AFN971Afghani
ALL008Lek
AMD051Armenian Dram
ANG532Netherlands Antillean Guilder
AOA973Kwanza
ARS032Argentine Peso
AUD036Australian Dollar
AWG533Aruban Florin
AZN944Azerbaijan Manat
BAM977Convertible Mark
BBD052Barbados Dollar
BDT050Taka
BGN975Bulgarian Lev
BHD048Bahraini Dinar
BIF108Burundi Franc
BMD060Bermudian Dollar
BND096Brunei Dollar
BOB068Boliviano
BOV984Mvdol
BRL986Brazilian Real
BSD044Bahamian Dollar
BTN064Ngultrum
BWP072Pula
BYN933Belarusian Ruble
BZD084Belize Dollar
CAD124Canadian Dollar
CDF976Congolese Franc
CHE947WIR Euro
CHF756Swiss Franc
CHW948WIR Franc
CLF990Unidad de Fomento
CLP152Chilean Peso
CNY156Yuan Renminbi
COP170Colombian Peso
COU970Unidad de Valor Real
CRC188Costa Rican Colon
CUC931Peso Convertible
CUP192Cuban Peso
CVE132Cabo Verde Escudo
CZK203Czech Koruna
DJF262Djibouti Franc
DKK208Danish Krone
DOP214Dominican Peso
DZD012Algerian Dinar
EGP818Egyptian Pound
ERN232Nakfa
ETB230Ethiopian Birr
EUR978Euro
FJD242Fiji Dollar
FKP238Falkland Islands Pound
GBP826Pound Sterling
GEL981Lari
GHS936Ghana Cedi
GIP292Gibraltar Pound
GMD270Dalasi
GNF324Guinean Franc
GTQ320Quetzal
GYD328Guyana Dollar
HKD344Hong Kong Dollar
HNL340Lempira
HTG332Gourde
HUF348Forint
IDR360Rupiah
ILS376New Israeli Sheqel
INR356Indian Rupee
IQD368Iraqi Dinar
IRR364Iranian Rial
ISK352Iceland Krona
JMD388Jamaican Dollar
JOD400Jordanian Dinar
JPY392Yen
KES404Kenyan Shilling
KGS417Som
KHR116Riel
KMF174Comorian Franc
KPW408North Korean Won
KRW410Won
KWD414Kuwaiti Dinar
KYD136Cayman Islands Dollar
KZT398Tenge
LAK418Lao Kip
LBP422Lebanese Pound
LKR144Sri Lanka Rupee
LRD430Liberian Dollar
LSL426Loti
LYD434Libyan Dinar
MAD504Moroccan Dirham
MDL498Moldovan Leu
MGA969Malagasy Ariary
MKD807Denar
MMK104Kyat
MNT496Tugrik
MOP446Pataca
MRU929Ouguiya
MUR480Mauritius Rupee
MVR462Rufiyaa
MWK454Malawi Kwacha
MXN484Mexican Peso
MXV979Mexican Unidad de Inversion
MYR458Malaysian Ringgit
MZN943Mozambique Metical
NAD516Namibia Dollar
NGN566Naira
NIO558Cordoba Oro
NOK578Norwegian Krone
NPR524Nepalese Rupee
NZD554New Zealand Dollar
OMR512Rial Omani
PAB590Balboa
PEN604Sol
PGK598Kina
PHP608Philippine Peso
PKR586Pakistan Rupee
PLN985Zloty
PYG600Guarani
QAR634Qatari Rial
RON946Romanian Leu
RSD941Serbian Dinar
RUB643Russian Ruble
RWF646Rwanda Franc
SAR682Saudi Riyal
SBD090Solomon Islands Dollar
SCR690Seychelles Rupee
SDG938Sudanese Pound
SEK752Swedish Krona
SGD702Singapore Dollar
SHP654Saint Helena Pound
SLE925Leone
SOS706Somali Shilling
SRD968Surinam Dollar
SSP728South Sudanese Pound
STN930Dobra
SVC222El Salvador Colon
SYP760Syrian Pound
SZL748Lilangeni
THB764Baht
TJS972Somoni
TMT934Turkmenistan New Manat
TND788Tunisian Dinar
TOP776Pa’anga
TRY949Turkish Lira
TTD780Trinidad and Tobago Dollar
TWD901New Taiwan Dollar
TZS834Tanzanian Shilling
UAH980Hryvnia
UGX800Uganda Shilling
USD840US Dollar
USN997US Dollar (Next day)
UYI940Uruguay Peso en Unidades Indexadas (UI)
UYU858Peso Uruguayo
UYW927Unidad Previsional
UZS860Uzbekistan Sum
VED926Bolívar Soberano
VES928Bolívar Soberano
VND704Dong
VUV548Vatu
WST882Tala
XAF950CFA Franc BEAC
XAG961Silver
XAU959Gold
XBA955Bond Markets Unit European Composite Unit (EURCO)
XBB956Bond Markets Unit European Monetary Unit (E.M.U.-6)
XBC957Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
XBD958Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
XCD951East Caribbean Dollar
XDR960SDR (Special Drawing Right)
XOF952CFA Franc BCEAO
XPD964Palladium
XPF953CFP Franc
XPT962Platinum
XSU994Sucre
XTS963Codes specifically reserved for testing purposes
XUA965ADB Unit of Account
XXX999The codes assigned for transactions where no currency is involved
YER886Yemeni Rial
ZAR710Rand
ZMW967Zambian Kwacha
ZWG924Zimbabwe Gold

[03]

Bank names

Download bank scopes only · JSON ↓ · View bank scopes in Downloads →

bankName can guide routing when BIN-based identification is insufficient. Confirm the accepted bank value with PayStar; all is the documented broad selector.

Available scope reference
ScopeCurrencyDocumented selector
Any bank & Any GEOProfile-specificall
AzerbaijanAZNNot supplied
KazakhstanKZTNot supplied
MongoliaMNTNot supplied
PhilippinesPHPNot supplied
PolandPLNNot supplied
Republic of MoldovaMDLNot supplied
RussiaRUBNot supplied
SlovakiaEURNot supplied
ThailandTHBNot supplied
TurkeyTRYNot supplied
UkraineUAHNot supplied
United KingdomGBPNot supplied
VietnamVNDNot supplied

[04]

Telecom operators

Download telecom operators only · JSON ↓ · View telecom operators in Downloads →

Use the enum for the configured mobile-payment profile; inclusion does not guarantee routing.

Operator catalog31 entries
CountryOperatorEnum
United KingdomVodafonevodafone-uk
United KingdomO2 (Telefónica)o2-uk
United KingdomEverything Everywhere (EE)everything-everywhere-uk
United KingdomTalkTalktalk-talk-uk
UkraineKievstarkievstar-ua
UkraineVodafon Ukrainevodafon-ua
UkraineLifecelllifecell-ua
UkraineIntertelecomintertelecom-ua
Republic of MoldovaOrange Moldovaorange-md
Republic of MoldovaMoldcellmoldcell-md
Republic of MoldovaUniteunite-md
PolandtMobile PolandtMobile-pl
PolandOrange Polandorange-pl
PolandPlayplay-pl
PolandPlusplus-pl
PolandLykamobilelykamobile-pl
PolandVirginvirginMobile-pl
HungaryMagyar TelekommagyarTelekom-hu
HungaryTelenortelenor-hu
HungaryVodafone Hungaryvodafone-hu
SlovakiaT-Comt-com-sk
SlovakiaT-Mobilet-mobile-sk
SlovakiaOrange Slovenskoorange-sk
SlovakiaUPCupc-sk
RussiaBeelinebeeline-ru
RussiaMegafonmegafon-ru
RussiaМТСmts-ru
RussiaRostelecomrostelecom-ru
RussiaTele2tele2-ru
RussiaYotayota-ru
RussiaTinkoff Mobiletmobile-ru

[05]

Errors and what to do next

Download errors only · JSON ↓ · View errors in Downloads →

Find the response condition below. Each scenario is listed once, with its scope, response body when available, and next action. Match documented structured codes, not exact message text. The catalog is not exhaustive.

Unsuccessful responseJSON response examples
HTTP 200 · Order created, processing failed

Applies to: P2P deposit H2H/H2C, ECOM H2H deposit, Hosted H2C deposit, Tokenized deposit, Payout.

The request produced an order, but processing failed. Keep the PayStar externalId and your original merchant order ID. This is not a rejection without an order.

HTTP: 200

Order created.

JSON · HTTP 200 response bodySelect text to copy
{
  "externalId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
  "orderStatus": "Failed"
}

What to do: HTTP 200 means the order was created, not that the payment succeeded. This body uses orderStatus, not status, and does not include payment details or a form URL. Inspect orderStatus and retain both order identifiers.

HTTP 423 · No matching channel or route

Applies to: P2P deposit H2H/H2C, ECOM H2H deposit, Hosted H2C deposit, Tokenized deposit, Payout.

The currency, amount, or other request parameters do not match available routing conditions for this pipeline. No order is created.

HTTP: 423

No new order created.

JSON · HTTP 423 response bodySelect text to copy
{
  "label": "TEMPORARY_ERROR",
  "message": "TEMPORARY_ERROR",
  "statusDescrption": "0000-2",
  "externalTransactionId": null,
  "code": "1.2.4.3"
}

What to do: Check the request parameters and the pipeline routing conditions with your manager.

HTTP 422 · Insufficient balance

Applies to: Payout.

Insufficient balance to create the payout. No order is created.

HTTP: 422. Owner-confirmed HTTP mapping (CREATE-HTTP-001, 15 September 2026) for this response example; not new per-flow live verification. Payout only.

No new order created.

JSON · HTTP 422 response bodySelect text to copy
{
  "label": "TEMPORARY_ERROR",
  "message": "TEMPORARY_ERROR",
  "statusDescrption": "1-4010",
  "externalTransactionId": null,
  "code": "1.1.4.3"
}

What to do: Confirm the balance involved with your manager; the payload alone does not identify an account or wallet.

HTTP 400 · Configured limit reached

Applies to: P2P deposit H2H/H2C, ECOM H2H deposit, Hosted H2C deposit, Tokenized deposit, Payout.

A configured limit was reached. No order is created.

HTTP: 400. Owner-confirmed HTTP mapping (CREATE-HTTP-001, 15 September 2026) for this response example; not new per-flow live verification. Deposit creation and payout.

No new order created.

JSON · HTTP 400 response bodySelect text to copy
{
  "label": "LIMITS_ERROR",
  "message": "Limit id: aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa was reached",
  "statusDescrption": "0001-0",
  "externalTransactionId": null
}

What to do: The limit ID is illustrative. This example has no code field; do not map the error by a particular UUID or exact message text.

HTTP 400 · Duplicate merchant order ID

Applies to: P2P deposit H2H/H2C, ECOM H2H deposit, Hosted H2C deposit, Tokenized deposit, Payout.

An order with this merchant ID already exists. No new order is created by this rejected attempt.

HTTP: 400. Owner-confirmed HTTP mapping (CREATE-HTTP-001, 15 September 2026) for this response example; not new per-flow live verification. Deposit creation and payout.

No new order created.

JSON · HTTP 400 response bodySelect text to copy
{
  "label": "VALIDATION_ERROR",
  "message": "Order with this external_transaction_id already exist",
  "statusDescrption": "1-4007",
  "externalTransactionId": null,
  "code": "1.1.5.1"
}

Historical example: label VALIDATION_ERROR., without code or externalTransactionId. This is not a second current error.

What to do: Query the existing order using the original externalTransactionId from your request, even when externalTransactionId is null in this error. Do not replace the ID for a blind retry.

HTTP 400 · Required parameter missing

Applies to: P2P deposit H2H/H2C, ECOM H2H deposit, Hosted H2C deposit, Tokenized deposit, Payout.

A field required by the configured terminal is missing. No order is created.

HTTP: 400. Owner-confirmed HTTP mapping (CREATE-HTTP-001, 15 September 2026) for this response example; not new per-flow live verification. Deposit creation and payout.

No new order created.

JSON · HTTP 400 response bodySelect text to copy
{
  "label": "VALIDATION_ERROR",
  "message": "additionalField BankAccount not found in request data. Description: Beneficiary’s bank account number, e.g. 1234567890",
  "statusDescrption": "0000-0",
  "externalTransactionId": null,
  "code": "1.2.4.8"
}

What to do: BankAccount is an example of a configured requirement, not a mandatory field for every flow. Use the required-field list supplied for your terminal.

HTTP 423 · Unknown currency

Applies to: deposit_h2h, deposit_h2c.

CUR-002 (9 Sep 2026): unrecognized currency values, including RU and ZZZ, return the unknown-currency response. This is distinct from routing failure.

HTTP: 423. Owner-confirmed CUR-002; refined message not yet live-verified. Deposit H2H/H2C only; does not extend to Balance or payout.

JSON · HTTP 423 response bodySelect text to copy
{
  "label": "TEMPORARY_ERROR",
  "message": "Currency value \"RU\" is unknown",
  "statusDescrption": "2-00100-2",
  "externalTransactionId": null,
  "code": "1.2.4.9"
}

What to do: Use the exact currency key enabled for your integration; do not impose an alpha-3 format check. Unknown currency is detected during internal dictionary lookup, before route lookup. Do not branch on exact message text or automatically retry an unchanged request. The refined message is owner-confirmed, not yet live-verified.

HTTP 400 · General request validation

Applies to: deposit_create, payout_create.

Malformed request, missing required field, or invalid field value.

HTTP: 400. Legacy documented examples; distinguish these from configured-field validation. Create requests.

JSON · HTTP 400 response bodySelect text to copy
{
  "label": "VALIDATION_ERROR.",
  "message": "External_transaction_id is required property",
  "statusDescrption": "0-0000"
}
Other documented messages — same legacy envelope
  • Amount is required property
  • Currency is required property
  • currency has invalide value

What to do: Fix the request contract. Confirm flow-specific additional fields with the Account Manager.

Historical label VALIDATION_ERROR. and statusDescrption 0-0000 are retained verbatim. Message variants replace only message; do not match exact text or restore alpha-3 validation from the historical currency message.

HTTP 423 · Payment temporarily unavailable — legacy variant

Applies to: deposit_create, payout_create.

Distinct legacy payload with statusDescrption 0000-1, not the owner-confirmed 0000-2 routing response.

HTTP: 423. Legacy/general reference, not a universal routing mapping. Legacy documented create response.

JSON · HTTP 423 response bodySelect text to copy
{
  "label": "TEMPORARY_ERROR",
  "statusDescrption": "0000-1",
  "message": "There is currently no possibility to make a payment, please try again later"
}

What to do: Contact the Account Manager and check route/amount/currency/additional-field constraints.

HTTP and transport responsesIncludes responses without a JSON body
401 · authentication

Applies to: all.

Authorization header/key is missing or invalid.

HTTP: 401. Documented outcome. All operations.

May be empty; no JSON example is supplied.

What to do: Verify the Bearer token and that the correct deposit/payout key is used.

403 · forbidden

Applies to: all.

Access denied. The HTTP status or an empty body does not identify a single cause.

HTTP: 403. Documented outcome. All operations.

May be empty; no JSON example is supplied.

Possible causeWhat to check
The key/pipeline is not activated or lacks permission.Contact the Account Manager.
The key is active but belongs to another flow type, e.g. payout key used for deposit.Use the dedicated key for the requested operation.
Source IP is not whitelisted.Ask the Account Manager to whitelist the IP; documentation says propagation can take up to one hour.

What to do: Ask your manager to check the key, flow capability, pipeline and IP allowlist.

The legacy IP propagation estimate is not a newly verified SLA.

404 · payment not found

Applies to: status_endpoints.

No order found by this lookup.

HTTP: 404. Documented status-lookup outcome. Status lookups, not create rejection.

Use the response model documented for the status method; this catalog does not invent a body.

What to do: Verify whether a PayStar externalId or merchant externalTransactionId is expected by this endpoint. Continue the agreed uncertainty-resolution process.

415 · media type

Applies to: JSON requests.

Unsupported request content type.

HTTP: 415. Documented framework outcome. Request media type.

application/problem+json; not the PayStar BusinessError envelope.

What to do: Send application/json. ProblemDetails is a separate response model.

500 · server or configuration error

Applies to: create_and_some_status_endpoints.

A server or configuration failure does not establish whether an order was created.

HTTP: 500. Documented server-error outcome; other 5xx may also occur. Affected operations.

No universal JSON body is established.

What to do: Do not assume the order was not created. Query status before any cascade/retry.

No HTTP response

Applies to: all.

The create result may be unresolved.

HTTP: HTTP not specified. No HTTP response is a transport failure, not an API status code. Timeout, missing response or broken connection.

No HTTP response body.

What to do: Retain the original merchant ID. Query status by that ID before another create attempt or cascade; do not replace the ID for a blind retry.

BusinessError fields and matching rules
FieldPresenceType & meaning
labelRequiredstring
messageRequiredstring

Do not branch on exact message text.

statusDescrptionOptionalstring | null

Current compatible wire spelling, including the typo.

externalTransactionIdOptionalstring | null
codeOptionalstring | null

Application code; the complete stable catalog is not yet documented.

statusDescrption is the compatible wire spelling. Fields may be absent or null as documented; a missing error ID does not establish order state. The created-Failed payload is not a BusinessError envelope.

For any create error, 499+, timeout, broken connection, or missing response, check order status before initiating another attempt/cascade.

[06]

Payment history

Download payment history only · JSON ↓ · View payment history in Downloads →

orderStatus is authoritative for current state. Deposit status includes at least one history item; this does not promise an exhaustive trace. Payout history may be delayed or empty. This code catalog is partial: retain unknown values without guessing their meaning.

Documented action segments
SegmentMeaning
A_stage1 — PayStar
2 — Gateway create
3 — Hosted Payment Page / user interaction
4 — Gateway polling
B_operation_result0 — Info
1 — Success
2 — Failed
C_payment_state0 — Init
1 — Created
2 — Processing
3 — Success
4 — Failed
5 — Unchanged
RR_reason_group00 — None
11..19 — TECH
21..29 — AUTHZ
31..39 — BUSINESS
41..49 — RISK
51..59 — USER
61..69 — ISSUER
Examples and partial configuration codes
CodeMeaning
1.1.1.00PayStar: payment created
2.1.1.00Gateway: payment created
2.1.2.00Gateway: processing
4.1.3.00Gateway polling: payment successful
4.1.4.63Gateway polling: failed, issuer insufficient funds
2.2.4.16Meaning not established; preserve as unknown.
New code / legacy codeContext
1.2.4.18.1
1200-1-1
Pipeline configuration missing formUrl.
1.2.4.18.2
0000-911
Endpoint has no pipeline/routes configured.
1.2.4.18.3
0000-2
Pipeline has no channel configured.
1.2.4.18.4
0000-180924
Gateway integration configuration invalid.
1.2.4.18.5
0000-4
Gateway implementation configuration invalid.

History model and timestamp warning →

[07]

Integration terms

Identifiers, pipelines and payment flows
TermMeaning
PipelineThe configuration to which a key, access, routes, limits and required fields are assigned.
Merchant IDYour original externalTransactionId, supplied when creating an order.
PayStar IDThe externalId returned by PayStar for the accepted order.
H2HServer-to-server integration; distinguish P2P, acquiring and tokenized profiles.
H2C / hosted checkoutThe customer uses a hosted payment form. P2P can use the PayStar form URL returned alongside payment instructions; the separate hosted-card profile handles card entry.
CallbackA configured asynchronous payment notification to your server.
Operational eventA platform/account alert, distinct from a payment callback.
cardStorageTokenA PayStar stored-card token; not interchangeable with a bank cardToken.
RoutingSelection of an available configured route; a currency catalog is not a route guarantee.

[08]

Schema reference

Schema files in Downloads: OpenAPI JSON · OpenAPI YAML.

The baseline schemas and owner-approved additions below are also available in the downloads. The ECOM response is still an observed draft, not a newly approved schema.

CurrencyCode
JSON SchemaSelect text to copy
{
  "type": "string",
  "example": "RUB",
  "description": "Currency key as a string, with no lexical length or pattern validation. Values such as USDT_TRC20 can be submitted; this does not guarantee that a value is known or enabled. For payment creation, PayStar first looks up the exact submitted value in its internal currency dictionary, then searches for a route matching the pipeline conditions. Use the currency key provided for your integration. Fiat commonly uses ISO 4217 alpha-3 codes; crypto may use an asset/network key. Requiredness and operation-specific business errors remain unchanged.",
  "x-paystar-owner-confirmed": true,
  "x-paystar-currency-key": {
    "decision": "CUR-CRYPTO-001",
    "approvedAt": "2026-09-10",
    "lexicalFormatValidation": false,
    "paymentCreationProcessingOrder": [
      "internal currency dictionary lookup",
      "route lookup using pipeline conditions"
    ],
    "illustrativeInput": "USDT_TRC20",
    "illustrativeInputGuaranteesSupport": false,
    "catalogScope": "Published ISO-style reference only; not an exhaustive internal currency dictionary or an enabled-currency list.",
    "unchanged": [
      "string type",
      "field requiredness",
      "operation-specific HTTP outcomes",
      "amount rules"
    ],
    "unconfirmed": [
      "crypto catalog and profile support",
      "dictionary casing and alias matching",
      "missing/null/empty business behavior"
    ],
    "balanceScope": "Shared lexical schema only; no order creation or route lookup is asserted for Balance."
  }
}
Amount
JSON SchemaSelect text to copy
{
  "type": "number",
  "exclusiveMinimum": 0,
  "example": 100,
  "description": "Amount in major currency units. JSON number is normative; quoted numeric strings remain backward-compatible. Normal requests and displayed examples use two decimal places. Flow-specific min/max are routing configuration.",
  "x-paystar-normal-decimal-places": 2,
  "x-paystar-display-format": "0.00",
  "x-paystar-string-compatibility": true
}
ExternalTransactionId
JSON SchemaSelect text to copy
{
  "type": "string",
  "minLength": 1,
  "description": "Unique merchant-generated identifier used for status lookup and safe retry resolution."
}
AdditionalFieldValue
JSON SchemaSelect text to copy
{
  "description": "Flow-specific scalar. Presence and non-null value are normative; formats and ranges belong to the selected flow schema.",
  "oneOf": [
    {
      "type": "string"
    },
    {
      "type": "number"
    },
    {
      "type": "boolean"
    }
  ]
}
AdditionalField
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "key",
    "value"
  ],
  "properties": {
    "key": {
      "type": "string",
      "minLength": 1,
      "description": "Canonical documented casing is lowerCamelCase."
    },
    "value": {
      "$ref": "#/components/schemas/AdditionalFieldValue"
    }
  }
}
BaseDepositRequest
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "amount",
    "currency",
    "externalTransactionId"
  ],
  "properties": {
    "amount": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Amount"
        }
      ],
      "x-paystar-p2p-rounding": {
        "mode": "half-up",
        "decimalPlaces": 2,
        "examples": {
          "100.124": 100.12,
          "100.125": 100.13,
          "100.126": 100.13
        }
      }
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyCode"
    },
    "externalTransactionId": {
      "$ref": "#/components/schemas/ExternalTransactionId"
    },
    "callbackUrl": {
      "type": "string",
      "format": "uri",
      "description": "Optional callback URL."
    },
    "processingRedirectUrl": {
      "type": "string",
      "format": "uri"
    },
    "failedRedirectUrl": {
      "type": "string",
      "format": "uri"
    },
    "successRedirectUrl": {
      "type": "string",
      "format": "uri"
    },
    "additionalFields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AdditionalField"
      },
      "description": "Array of objects with key and value. The required field set depends on the individual configuration of each terminal (pipeline). Ask your integration manager for the current required fields before sending a request. A catalog entry is not automatically required or supported for every terminal."
    }
  }
}
P2PDepositRequest
JSON SchemaSelect text to copy
{
  "title": "P2P H2H deposit request",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseDepositRequest"
    },
    {
      "type": "object",
      "required": [
        "processingRedirectUrl",
        "failedRedirectUrl",
        "successRedirectUrl"
      ]
    }
  ]
}
H2CDepositRequest
JSON SchemaSelect text to copy
{
  "title": "H2C hosted-form deposit request",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseDepositRequest"
    }
  ],
  "x-paystar-pci-rule": "Merchant must not collect card data."
}
TokenDepositRequest
JSON SchemaSelect text to copy
{
  "title": "Tokenized H2H deposit request",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseDepositRequest"
    },
    {
      "type": "object",
      "required": [
        "additionalFields"
      ],
      "properties": {
        "additionalFields": {
          "type": "array",
          "minContains": 1,
          "contains": {
            "type": "object",
            "required": [
              "key",
              "value"
            ],
            "properties": {
              "key": {
                "const": "cardStorageToken"
              }
            }
          },
          "items": {
            "$ref": "#/components/schemas/AdditionalField"
          }
        }
      }
    }
  ]
}
PayoutRequest
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "amount",
    "currency",
    "externalTransactionId"
  ],
  "properties": {
    "amount": {
      "$ref": "#/components/schemas/Amount"
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyCode"
    },
    "externalTransactionId": {
      "$ref": "#/components/schemas/ExternalTransactionId"
    },
    "callbackUrl": {
      "type": "string",
      "format": "uri"
    },
    "additionalFields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AdditionalField"
      },
      "description": "Required key set is merchant- and flow-configured. Confirm it with the PayStar manager.",
      "x-paystar-requiredness": "flow-specific"
    }
  },
  "description": "Deposit redirect fields are not payout request fields and must not be added to canonical payout examples."
}
P2PPaymentDetails
JSON SchemaSelect text to copy
{
  "type": "object",
  "properties": {
    "card": {
      "type": [
        "string",
        "null"
      ],
      "description": "Sensitive payment detail; redact in stored evidence."
    },
    "fio": {
      "type": [
        "string",
        "null"
      ]
    },
    "bank": {
      "type": [
        "string",
        "null"
      ]
    },
    "formUrl": {
      "type": "string",
      "format": "uri",
      "description": "Required non-null PayStar payment-form URI in a valid accepted P2P response. The merchant may use this H2C presentation instead of displaying the returned payment instructions itself. Use the full returned URL, not this illustrative EXAMPLE_ONLY query. Never log one-time query tokens.",
      "example": "https://p2p.paystar.uk/?EXAMPLE_ONLY"
    },
    "number": {
      "description": "Recipient phone payment instruction at paymentDetails.number, not phoneNumber or card. It is a string in the owner example; preserve the plus sign and value as returned. No numeric conversion, E.164, length, requiredness or nullability rule is inferred.",
      "example": "<RECIPIENT_PHONE_NUMBER>",
      "x-paystar-observed-type": "string",
      "x-paystar-confirmation": {
        "source": "owner-provided example",
        "date": "2026-09-10",
        "decision": "P2P-DETAILS-001",
        "requiredness": "not established for all profiles",
        "nullability": "not established",
        "noNewValueConstraints": true
      }
    },
    "iban": {
      "description": "IBAN payment instruction at paymentDetails.iban. Keep it as a string. Confirmed by the owner example, not a universal required field.",
      "example": "<IBAN>",
      "x-paystar-observed-type": "string",
      "x-paystar-confirmation": {
        "source": "owner-provided example",
        "date": "2026-09-10",
        "decision": "P2P-DETAILS-001",
        "requiredness": "not established for all profiles",
        "nullability": "not established",
        "noNewValueConstraints": true
      }
    },
    "accountNumber": {
      "description": "Account-number payment instruction at paymentDetails.accountNumber, not bankAccount. Keep the string exactly as returned, including leading zeroes. It can coexist with qrUrl, as in the owner example.",
      "example": "<ACCOUNT_NUMBER>",
      "x-paystar-observed-type": "string",
      "x-paystar-confirmation": {
        "source": "owner-provided example",
        "date": "2026-09-10",
        "decision": "P2P-DETAILS-001",
        "requiredness": "not established for all profiles",
        "nullability": "not established",
        "noNewValueConstraints": true
      }
    },
    "qrUrl": {
      "description": "QR content at paymentDetails.qrUrl. The owner labels this value Base64; despite the field name, it is not confirmed to be an HTTP URL. Actual QR bytes, MIME type and raw-Base64 versus data-URI envelope remain unconfirmed.",
      "example": "<BASE64_QR_DATA>",
      "x-paystar-observed-type": "string",
      "x-paystar-confirmation": {
        "source": "owner-provided example",
        "date": "2026-09-10",
        "decision": "P2P-DETAILS-001",
        "requiredness": "not established for all profiles",
        "nullability": "not established",
        "noNewValueConstraints": true
      }
    },
    "method": {
      "description": "Method label at paymentDetails.method. ArsCbu is an owner-provided example, not a complete enum or a unique response-variant discriminator.",
      "example": "ArsCbu",
      "x-paystar-observed-type": "string",
      "x-paystar-confirmation": {
        "source": "owner-provided example",
        "date": "2026-09-10",
        "decision": "P2P-DETAILS-001",
        "requiredness": "not established for all profiles",
        "nullability": "not established",
        "noNewValueConstraints": true
      }
    }
  },
  "required": [
    "formUrl"
  ],
  "description": "Payment instructions and the PayStar form URL returned together for P2P with an H2H gateway integration (P2P-FORM-001, owner-confirmed 2026-09-10).",
  "x-paystar-detail-mapping": {
    "decision": "P2P-DETAILS-001",
    "confirmedAt": "2026-09-10",
    "source": "owner-provided examples; no new live test",
    "phoneNumberPathConfirmed": true,
    "phoneNumberResponsePath": "paymentDetails.number",
    "qrEncodingDetailsConfirmed": false,
    "methodEnumConfirmed": false,
    "exclusiveVariants": false
  },
  "examples": [
    {
      "fio": "<RECIPIENT_NAME>",
      "bank": "<BANK_NAME>",
      "number": "<RECIPIENT_PHONE_NUMBER>",
      "formUrl": "https://checkout.example/EXAMPLE_ONLY"
    },
    {
      "fio": "<RECIPIENT_NAME>",
      "iban": "<IBAN>",
      "formUrl": "https://checkout.example/EXAMPLE_ONLY"
    },
    {
      "fio": "<RECIPIENT_NAME>",
      "method": "ArsCbu",
      "formUrl": "https://checkout.example/EXAMPLE_ONLY",
      "accountNumber": "<ACCOUNT_NUMBER>"
    },
    {
      "qrUrl": "<BASE64_QR_DATA>",
      "fio": "<RECIPIENT_NAME>",
      "method": "ArsCbu",
      "formUrl": "https://checkout.example/EXAMPLE_ONLY",
      "accountNumber": "<ACCOUNT_NUMBER>"
    }
  ]
}
P2PDepositCreateResponse
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus",
    "paymentDetails"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Processing"
      ]
    },
    "paymentDetails": {
      "$ref": "#/components/schemas/P2PPaymentDetails"
    }
  },
  "description": "When the gateway integration uses H2H, the same P2P create request returns both payment instructions and a PayStar payment-form URL. The merchant can display the instructions in its own checkout (H2H) or send the customer to the returned PayStar form (H2C), without creating another order or changing the request.",
  "example": {
    "externalId": "<PAYSTAR_ORDER_ID>",
    "orderStatus": "Processing",
    "paymentDetails": {
      "card": "<REDACTED_PAYMENT_DETAIL>",
      "fio": "<RECIPIENT_NAME>",
      "bank": "<BANK_NAME>",
      "formUrl": "https://p2p.paystar.uk/?EXAMPLE_ONLY"
    }
  },
  "examples": [
    {
      "externalId": "<PAYSTAR_ORDER_ID>",
      "orderStatus": "Processing",
      "paymentDetails": {
        "card": "<REDACTED_PAYMENT_DETAIL>",
        "fio": "<RECIPIENT_NAME>",
        "bank": "<BANK_NAME>",
        "formUrl": "https://p2p.paystar.uk/?EXAMPLE_ONLY"
      }
    },
    {
      "externalId": "<PAYSTAR_ORDER_ID>",
      "orderStatus": "Processing",
      "paymentDetails": {
        "fio": "<RECIPIENT_NAME>",
        "bank": "<BANK_NAME>",
        "number": "<RECIPIENT_PHONE_NUMBER>",
        "formUrl": "https://checkout.example/EXAMPLE_ONLY"
      }
    },
    {
      "externalId": "<PAYSTAR_ORDER_ID>",
      "orderStatus": "Processing",
      "paymentDetails": {
        "fio": "<RECIPIENT_NAME>",
        "iban": "<IBAN>",
        "formUrl": "https://checkout.example/EXAMPLE_ONLY"
      }
    },
    {
      "externalId": "<PAYSTAR_ORDER_ID>",
      "orderStatus": "Processing",
      "paymentDetails": {
        "fio": "<RECIPIENT_NAME>",
        "method": "ArsCbu",
        "formUrl": "https://checkout.example/EXAMPLE_ONLY",
        "accountNumber": "<ACCOUNT_NUMBER>"
      }
    },
    {
      "externalId": "<PAYSTAR_ORDER_ID>",
      "orderStatus": "Processing",
      "paymentDetails": {
        "qrUrl": "<BASE64_QR_DATA>",
        "fio": "<RECIPIENT_NAME>",
        "method": "ArsCbu",
        "formUrl": "https://checkout.example/EXAMPLE_ONLY",
        "accountNumber": "<ACCOUNT_NUMBER>"
      }
    }
  ]
}
H2CDepositCreateResponse
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus",
    "formUrl"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Init"
      ]
    },
    "formUrl": {
      "type": "string",
      "format": "uri"
    }
  }
}
TokenDepositCreateResponse
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Processing"
      ]
    },
    "paymentDetails": {
      "type": "object",
      "properties": {
        "formUrl": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        }
      }
    }
  }
}
PayoutCreateResponse
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Created"
      ]
    }
  }
}
OrderHistoryItem
JSON SchemaSelect text to copy
{
  "type": "object",
  "properties": {
    "time": {
      "type": "string",
      "format": "date-time",
      "description": "History record time in UTC for deposit and payout status responses. If returned without Z or an offset, interpret this field as UTC, not local time (owner-confirmed 2026-09-08). The missing suffix remains a date-time wire-format discrepancy; this clarification does not relax the schema."
    },
    "action": {
      "type": [
        "string",
        "null"
      ],
      "description": "Payment History action code."
    },
    "newCode": {
      "type": [
        "string",
        "null"
      ],
      "description": "Additional Payment History code returned by the current API."
    }
  }
}
ExternalParams
JSON SchemaSelect text to copy
{
  "type": "object",
  "properties": {
    "cardToken": {
      "type": [
        "string",
        "null"
      ],
      "writeOnly": false,
      "description": "Sensitive; access and logging must be restricted."
    },
    "cardStorageToken": {
      "type": [
        "string",
        "null"
      ],
      "writeOnly": false,
      "description": "Sensitive; access and logging must be restricted."
    },
    "cardHolder": {
      "type": [
        "string",
        "null"
      ]
    },
    "cardNumber": {
      "type": [
        "string",
        "null"
      ],
      "description": "Must be masked when returned."
    }
  },
  "additionalProperties": true,
  "description": "Flow-dependent object; it may be absent or contain null fields."
}
DepositStatusResponse
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus",
    "orderHistory"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Init",
        "Created",
        "Processing",
        "Success",
        "Failed"
      ],
      "description": "Current deposit order state. P2P exception (P2P-STATE-001, owner-confirmed 2026-09-10): Failed is not unconditionally final; the same order with unchanged identifiers can be corrected to Success, usually after initiation by merchant support. The merchant must handle the corresponding callback update. A reverse Success-to-Failed business transition need not be implemented. This does not change other deposit flows, introduce new status values, define callback delivery guarantees or prescribe indefinite polling."
    },
    "amount": {
      "$ref": "#/components/schemas/Amount"
    },
    "externalParams": {
      "$ref": "#/components/schemas/ExternalParams"
    },
    "currency": {
      "$ref": "#/components/schemas/CurrencyCode",
      "description": "Currency key of the deposit, for example ARS. The response field is confirmed by owner examples; universal presence is not separately established. No alpha-3-only restriction is imposed."
    },
    "orderHistory": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OrderHistoryItem"
      },
      "description": "Required non-empty payment history: at least one item in deposit status responses, by merchant ID or PayStar ID (owner-confirmed 2026-09-11). Use orderStatus for the current state. A non-empty history is not a guarantee of a complete trace.",
      "minItems": 1
    }
  },
  "x-paystar-p2p-status-correction": {
    "decision": "P2P-STATE-001",
    "confirmedAt": "2026-09-10",
    "scope": "P2P deposits, including merchant-side H2H/H2C presentation",
    "from": "Failed",
    "to": "Success",
    "sameOrder": true,
    "identifiersUnchanged": true,
    "usualInitiator": "merchant support",
    "callbackHandlingRequired": true,
    "reverseBusinessTransitionRequired": false,
    "liveCorrectionVerified": false,
    "liveCallbackDeliveryVerified": false,
    "correctionDeadlineConfirmed": false,
    "pollingStopPolicyConfirmed": false,
    "deliveryContract": "Payload, signature, acknowledgement and retry details still require approved fixtures; this lifecycle decision does not define them.",
    "handling": "Process an authenticated Success correction for the existing P2P order even if it was Failed. Do not discard it solely because the order ID has been seen. Apply the successful business effect idempotently. Do not downgrade a stored Success to Failed; this does not waive callback validation or the agreed acknowledgement protocol."
  },
  "x-paystar-deposit-history": {
    "decision": "DEP-STATUS-001",
    "confirmedAt": "2026-09-11",
    "scope": [
      "getDepositStatusByMerchantId",
      "getDepositStatusByPayStarId"
    ],
    "required": true,
    "minItems": 1,
    "currentStateField": "orderStatus",
    "completeTraceGuaranteed": false,
    "payoutAndCallbackRulesChanged": false
  }
}
PayoutStatusResponse
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Created",
        "Processing",
        "Success",
        "Failed"
      ]
    },
    "amount": {
      "$ref": "#/components/schemas/Amount"
    },
    "externalParams": {
      "$ref": "#/components/schemas/ExternalParams"
    },
    "orderHistory": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OrderHistoryItem"
      },
      "description": "Not guaranteed to be populated and may be delayed."
    }
  }
}
Balance
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "currency",
    "merchantBalance",
    "merchantOverdraft",
    "pipelineBalance",
    "pipelineAvailableBalance",
    "pipelineProcessingOrdersDeposit",
    "pipelineProcessingOrdersWithdrawals"
  ],
  "properties": {
    "currency": {
      "type": "string"
    },
    "merchantBalance": {
      "type": "number"
    },
    "merchantOverdraft": {
      "type": "number"
    },
    "pipelineBalance": {
      "type": "number"
    },
    "pipelineAvailableBalance": {
      "type": "number"
    },
    "pipelineProcessingOrdersDeposit": {
      "type": "number"
    },
    "pipelineProcessingOrdersWithdrawals": {
      "type": "number"
    }
  }
}
BusinessError
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "label",
    "message"
  ],
  "properties": {
    "label": {
      "type": "string",
      "examples": [
        "VALIDATION_ERROR",
        "REQUEST_VALIDATION_ERROR",
        "TEMPORARY_ERROR",
        "NOT_FOUND",
        "INTERNAL_SERVER_ERROR"
      ]
    },
    "message": {
      "type": "string",
      "description": "Do not branch on exact message text."
    },
    "statusDescrption": {
      "type": [
        "string",
        "null"
      ],
      "description": "Current compatible wire spelling, including the typo."
    },
    "externalTransactionId": {
      "type": [
        "string",
        "null"
      ]
    },
    "code": {
      "type": [
        "string",
        "null"
      ],
      "description": "Application code; the complete stable catalog is not yet documented."
    }
  }
}
ProblemDetails415
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "type",
    "title",
    "status"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri"
    },
    "title": {
      "type": "string",
      "example": "Unsupported Media Type"
    },
    "status": {
      "type": "integer",
      "const": 415
    },
    "traceId": {
      "type": "string"
    }
  }
}
CreatedFailedResponse
JSON SchemaSelect text to copy
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Failed"
      ]
    }
  }
}

Need the required fields, currencies or limits for your pipeline?

Confirm your profile with Yegor ↗