Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate recorded, valid to 2026-12-08
Authorization not required
Added "list_orders"; changed the definition of "cancel_order", "compose_private_card", "delete_private_content" and 9 more (12 tools before, 13 now)
Cancel an eligible purchase or eligible paid cards atitsthe current order revision. Before payment,only whole-purchase cancellationomitiscard_idssupported:foromitwhole-purchasecard_ids.cancellation. After payment,supply returnedomitcard_idsthemtoforcanceltheonlywhole eligibleitems,purchase oromit them for theselect
ComposeCreateanaimmutablenewprivateimmutable card face fromuploads inthisscopescope’sand/orartwork,alogo or QRlinkURL.(Requires at least one of those inputs; a QR-onlycardface needs noupload).upload.GenerateReturns
Request deletion of unusedprivateuploads and compositions inthisone private scope at the buyer’s request.ContentReturnsrequiredacceptancebyandadeletionpaidstate;openitorderdoesisnotkeptcancel an order. Purchased content remains untilthat
StartOpen acardprivatefromupload scope for the buyer’sownphoto, artwork, logo or QRlink. Returns acard.privateOmit24-hourbothupload_urlinputs forthe buyer to open and choose theafilenewthemselvesscope,plus the scope_id and order_access_token to keep for the order.orPass
Start or resume payment for this exact preparedorder.order and revision. Show the exact amount andanyreturned action_urlsofor the buyercan securelyto connect Link, approve this purchase,or complete bank authentication. Only the buyer cangrant permission; doapprove;notnever askthemforcard details, wallet credentials orpaymenttokenscredentials in chat. Call again afterthey completethat step, respecting retry_after_seconds.ReportConfirm paymentcompleteonly when status is paid; processing and requires_action arenot payment success.
Prepare one unpaid purchase of1–5001cards,tomixed500acrosscards,anywithoccasions,mixeddesignsartwork, formats, messages, recipientsand dates.,Oneoccasionscardandusesdatestheinsameone
Optional, never required to buy. ReturnsShowonea preparedcard exactly as it will print, outside andcard’sinside,finishedassurfacesimagesbeforeatpaymentthewhencurrentpreview_availableorderisrevision;true.card_idOptional,isnever
Readaone known private purchaseandusing itsorder.cardsorderusingID and matching capability. Returns theparentcurrentorder_idrevision, payment state andorder_access_token.order.cardsPayment,withper-cardeach card’s production and mailingarestates.distinct
Listwhatassetstheandbuyerexistinguploadedcardandcompositionsthein one privatecardsscopecomposedafterfromtheit.buyerUseuploads. Returns asset IDs with their kinds and each composition’sdesign_keydesign_key/version.
Optionallyreportrecord a technical problem, suggestioncategoryor neutral successful outcome using fixed choices.NeverUse after communicating the outcome to the buyer; never required to buy a card. Reports are stored for 30 days and deduplicated daily. Returns recorded or duplicate; TRY_LATER means the daily limit of 100 new reports per server-assigned scope or 500 overall was reached. Do not include personal content, credentials, links ⟨14 unchanged words⟩
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"category":{"description":"For problem, choose no_suitable_card, irrelevant_results, unclear_result, preview_unavailable, request_rejected, slow_response, unexpected_error or recovery_failed. For suggestion, choose broader_selection, clearer_results, better_recovery, simpler_checkout, faster_responses or better_documentation. Success requires completed_as_expected.","enum":["no_suitable_card","irrelevant_results","unclear_result", ⟨15 unchanged words⟩ ":{"default":"none","description":"Reported
Replaceaanpreparedunpaidorderdraft beforeanypaymenthas started.starts. Send the complete desired cards array, including unchangedcards, with the original order_id, order_access_token,cards.expected_revisionValidation anda new request_id. Change artwork, format, message, address, timing, or batchreplacementcontents.areValidationatomic:happensfailurebeforeleaves theold
Findcurrently availableordinary and artist cards byoccasionartwork,toneoccasion, format,artistor budget. Returnsthree concisematchesbywithdefault;exactusedesignnext_cursorkeysforandmore.versions,Pricesimages,followorderability,the
List your orders — Find orders first prepared through this assistant connection with history permission, newest first. Replacements inherit their original order’s history access; revising an unlinked order does not add it. Requires a connected buyer who granted orders:read; the public endpoint returns connection instructions. Returns compact order IDs, dates, totals, card counts and payment/refund states, plus next_cursor. Use read_order with a returned order_id for card details and mailing status; no per-order token is needed with history permission. Excludes expired, erased and revoked orders. Reconnecting st…
Added "compose_private_card", "delete_private_content", "open_private_content" and 4 more; changed the definition of "prepare_order" and "search_cards" (5 tools before, 12 now)
⟨16 unchanged words⟩ dates. One card uses the same cards array. Each card is priced for its own recipient country. Returns the order and its card records, the ⟨10 unchanged words⟩ review and payment, and a private order_access_token.OptionalWhenper-cardpreview_availablepreviewsisaretrue,availableoptionalonpreview_card can show thereview
Changed the definition of "cancel_order", "prepare_order", "read_order" and 1 more
before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"}},"required":["order"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}Changed the definition of "cancel_order", "prepare_order", "read_order" and 2 more
⟨129 unchanged words⟩ :"boolean"},"message":{"description":"PersonalBody of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000 ⟨41 unchanged words⟩ ,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":" ⟨69 unchanged words⟩ type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"}," ⟨1124 unchanged words⟩
Unknown → Live
First tool surface recorded: 5 tools (server version 1.1.0)
https://api.paddock.so/agent-commerce/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 9 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨8 unchanged words⟩ :"Omit to cancel the whole eligible purchase.For a paidAfterpurchasepayment,listselecttheIDsreturnedfromcardthisIDsorder.cards[].id to cancel only those eligible items.TheBeforeservicepayment,verifiesomiteverythisIDfield.belongsIDs must be distinct and belong to this order.","items":{"pattern": ⟨22 unchanged words⟩ ,"type":"array"},"expected_revision":{"description":"Current parent order.revision from prepare_order, revise_order or read_order. A mismatch fails with CONFLICT; read the order before deciding whether to retry cancellation.","exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"order_access_token":{"description":"PrivateExactpurchaseprivatecapability.order_access_token returned by prepare_order or revise_order for this order. Keep it secret; never invent it or put it in a public URL or log." ⟨5 unchanged words⟩ ","type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨19 unchanged words⟩
⟨86 unchanged words⟩ additionalProperties":false,"properties":{"design_key":{"description":"Exact card.design.key from search_cards, or its occasion_design_keys entry for the selected occasion when present. Private cards use design_key from read_private_content or compose_private_card.","maxLength":160,"minLength":1,"type":"string"},"design_version":{"description":"Matching card.design.version from the same search result, or design_version returned for the private composition. Never infer a version.","exclusiveMinimum":0,"maximum":2147483646,"type":" ⟨139 unchanged words⟩ ,"type":"string"},"message_font":{"description":"Font for the personal message: serif, sans_serif, old_school or handwriting. Omission uses serif. Artwork lettering is unchanged.","enum":["serif","sans_serif","old_school", ⟨24 unchanged words⟩ :{"calendar":{"const":"us-western-v1","description":"Must be us-western-v1, the supported occasion calendar.","type":"string"},"day":{"description":"Day valid for occasion.month, required for personal annual occasions such as anniversary. Birthdays use recipient.birthday_day.","maximum":31,"minimum":1,"type":" ⟨33 unchanged words⟩ ,"type":"string"},"month":{"description":"Required with day for a personal annual occasion such as anniversary. Omit for holidays and one-off occasions; birthdays use recipient.birthday_month.","maximum":12,"minimum":1,"type":"integer"},"send_on":{"description":"Requested mailing date as YYYY-MM-DD, only for one-off occasions such as just_because. Omit for the next available mailing date. This is not a delivery guarantee.","pattern":"^\\d{4}-\\d{2}-\\d{2} ⟨11 unchanged words⟩ properties":{"address_confirmed":{"const":true,"description":"Must be true: the buyer has confirmed the supplied mailing address.","type":"boolean"},"anniversary_day":{"description":"Optional anniversary day valid for anniversary_month; supply both fields together or omit both. Paired zeros mean unknown.","maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"description":"Optional recipient anniversary month, paired with anniversary_day. Use 1 through 12, or 0 for both when unknown. Mailing timing uses occasion.month and occasion.day.","maximum":12,"minimum":0,"type":" ⟨22 unchanged words⟩ :"integer"},{"type":"null"}],"description":"Known birth year, optional. Requires a valid full birth date that is not in the future. Omit or use null when unknown."},"display_name":{"description":"Name on ⟨34 unchanged words⟩ additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}}," ⟨9 unchanged words⟩ },"origin":{"const":"manual","description":"Must be manual: recipient details come from the buyer, without a member recipient ID or Contacts import.","type":"string"}},"required":["display_name ⟨8 unchanged words⟩ additionalProperties":false,"properties":{"display_name":{"description":"Sender name printed with the return address.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}}," ⟨8 unchanged words⟩ "object"},"source_kind":{"const":"manual","description":"Must be manual: the buyer supplies this address; billing and saved Home addresses are not inferred.","type":"string"}},"required": ⟨1286 unchanged words⟩
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"artwork_asset_id":{"description":"asset_id with kind artwork from read_private_content in this scope. Supply at least one artwork asset, logo asset or QR URL.","pattern":"^[0-9a-f]{8}-[0-9a-f]{ ⟨69 unchanged words⟩ ,"type":"string"},"logo_asset_id":{"description":"asset_id with kind logo from read_private_content in this scope. Optional when artwork_asset_id or qr_url is supplied.","pattern":"^[0-9a-f]{8}-[0-9a-f]{ ⟨12 unchanged words⟩ :"string"},"order_access_token":{"description":"TheExact privatecapabilityorder_access_token returned byopen_private_content.open_private_contentNeverfor this scope. Keep it private and never invent one.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"qr_url":{"description":"Full HTTP(S) destination printed as a QRcode.code;NotPaddockfetched.does not fetch it. A QR-only card needs no uploaded asset.","maxLength":512,"type":"string"},"scope_id":{"description":"Exact scope_id returned by open_private_content. All supplied asset IDs must belong to this scope.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨39 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"order_access_token":{"description":"TheExact privatecapabilityorder_access_token returned byopen_private_content.open_private_contentNeverfor this scope. Keep it private and never invent one.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"scope_id":{"description":"Exact scope_id from open_private_content whose unused content the buyer wants deleted.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨18 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"order_access_token":{"description":"TheMatching privatecapabilitytoken for the existing unpaid order, returned byopen_private_content.prepare_order, revise_order or its open_private_content scope. Required with order_id; omit both for a new scope. Never inventone.a token.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"order_id":{"description":"With order_access_token: reopen the private scope of an existingExisting unpaiddraftorder.idsofromtheprepare_order,buyerrevise_ordercanoraddread_order.aSupplypictureitstomatchingit,order_access_tokenthentoreplacereopenitsthatcardsdraft’swithuploadrevise_order.scope;Omitomit bothtofieldsstartfor a new scope.","pattern":"^[0-9a-f ⟨18 unchanged words⟩
⟨3 unchanged words⟩ additionalProperties":false,"properties":{"expected_revision":{"description":"Parent order.revision for the exact purchase shown to the buyer, returned by prepare_order, revise_order or read_order. A mismatch fails with CONFLICT; read the order and obtain approval for any changed purchase.","exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"order_access_token":{"description":"PrivateExactpurchaseprivatecapability.order_access_token returned by prepare_order or revise_order for this order. Keep it secret; never invent it or put it in a public URL or log." ⟨5 unchanged words⟩ ","type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨19 unchanged words⟩
⟨33 unchanged words⟩ ,"type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f]{ ⟨55 unchanged words⟩ ,"type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f]{ ⟨54 unchanged words⟩ ,"type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f]{ ⟨46 unchanged words⟩ ","type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨43 unchanged words⟩
before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"cards":{"description":"One purchase containing 1–500 explicit card compositions in their supplied order. Mix any supported designs, formats, messages, recipients, occasions and dates. Do not group purchases by occasion. One card uses this same array.","items":{"additionalProperties":false,"description":"One manual guest card. Each card may have its own artwork, format, message, recipient, optional occasion and timing. Existing destination/calendar rules apply. No member, Property, recipient, card or calendar-event IDs.","properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"default":0,"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"default":0,"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"description":"Required for every card format: the sender’s name and return mailing address supplied by the buyer. Not automatically obtained from billing details.","properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient","return_address"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"order_access_token":{"description":"Omit on the first call so Paddock securely generates and returns the private token. Never invent or type a random-looking token. On retries use the exact returned token, same request_id and unchanged cards. Only clients with a cryptographic random generator may pre-generate 32 random bytes encoded as 43 base64url characters for first-response recovery. Existing purchase capabilities cannot be replaced.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"request_id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"}},"required":["request_id","cards"],"type":"object"}after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"cards":{"description":"One purchase containing 1–500 explicit card compositions in their supplied order. Mix any supported designs, formats, messages, recipients, occasions and dates. Do not group purchases by occasion. One card uses this same array.","items":{"additionalProperties":false,"description":"One manual guest card. Each card may have its own artwork, format, message, recipient, optional occasion and timing. Existing destination/calendar rules apply. No member, Property, recipient, card or calendar-event IDs.","properties":{"design_key":{"description":"Exact card.design.key from search_cards, or its occasion_design_keys entry for the selected occasion when present. Private cards use design_key from read_private_content or compose_private_card.","maxLength":160,"minLength":1,"type":"string"},"design_version":{"description":"Matching card.design.version from the same search result, or design_version returned for the private composition. Never infer a version.","exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"description":"Font for the personal message: serif, sans_serif, old_school or handwriting. Omission uses serif. Artwork lettering is unchanged.","enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","description":"Must be us-western-v1, the supported occasion calendar.","type":"string"},"day":{"description":"Day valid for occasion.month, required for personal annual occasions such as anniversary. Birthdays use recipient.birthday_day.","maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"description":"Required with day for a personal annual occasion such as anniversary. Omit for holidays and one-off occasions; birthdays use recipient.birthday_month.","maximum":12,"minimum":1,"type":"integer"},"send_on":{"description":"Requested mailing date as YYYY-MM-DD, only for one-off occasions such as just_because. Omit for the next available mailing date. This is not a delivery guarantee.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"description":"Buyer-supplied recipient details for this card. This does not create or select a saved member recipient.","properties":{"address_confirmed":{"const":true,"description":"Must be true: the buyer has confirmed the supplied mailing address.","type":"boolean"},"anniversary_day":{"description":"Optional anniversary day valid for anniversary_month; supply both fields together or omit both. Paired zeros mean unknown.","maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"description":"Optional recipient anniversary month, paired with anniversary_day. Use 1 through 12, or 0 for both when unknown. Mailing timing uses occasion.month and occasion.day.","maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"default":0,"description":"Birth day valid for birthday_month; February 29 is allowed. Use 0 with birthday_month 0 when the birthday is unknown and this is not a birthday mailing.","maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"default":0,"description":"Birth month, 1 through 12, required with birthday_day when occasion.kind is birthday. Otherwise omit both or use 0 for both when unknown.","maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}],"description":"Known birth year, optional. Requires a valid full birth date that is not in the future. Omit or use null when unknown."},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"description":"Recipient mailing address supplied and confirmed by the buyer.","properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","description":"Must be manual: recipient details come from the buyer, without a member recipient ID or Contacts import.","type":"string"}},"required":["display_name","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"description":"Required for every card format: the sender’s name and return mailing address supplied by the buyer. Not automatically obtained from billing details.","properties":{"display_name":{"description":"Sender name printed with the return address.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"description":"Sender return mailing address supplied by the buyer.","properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","description":"Must be manual: the buyer supplies this address; billing and saved Home addresses are not inferred.","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient","return_address"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"order_access_token":{"description":"For a new catalog purchase, omit so Paddock generates and returns the private token. Private artwork uses the token from open_private_content with request_id = scope_id. Retries require the exact token, same request_id and unchanged cards. Never invent a token. Only clients with a cryptographic random generator may pre-generate 32 random bytes encoded as 43 base64url characters for first-response recovery. Keep it private; existing purchase capabilities cannot be replaced.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"request_id":{"description":"Caller-generated UUID for a new purchase. For private artwork, use scope_id from open_private_content. Retry only with this same ID, unchanged cards and the exact order_access_token; a different purchase needs a new ID.","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"}},"required":["request_id","cards"],"type":"object"}⟨86 unchanged words⟩ additionalProperties":false,"properties":{"design_key":{"description":"Exact card.design.key from search_cards, or its occasion_design_keys entry for the selected occasion when present. Private cards use design_key from read_private_content or compose_private_card.","maxLength":160,"minLength":1,"type":"string"},"design_version":{"description":"Matching card.design.version from the same search result, or design_version returned for the private composition. Never infer a version.","exclusiveMinimum":0,"maximum":2147483646,"type":" ⟨139 unchanged words⟩ ,"type":"string"},"message_font":{"description":"Font for the personal message: serif, sans_serif, old_school or handwriting. Omission uses serif. Artwork lettering is unchanged.","enum":["serif","sans_serif","old_school", ⟨24 unchanged words⟩ :{"calendar":{"const":"us-western-v1","description":"Must be us-western-v1, the supported occasion calendar.","type":"string"},"day":{"description":"Day valid for occasion.month, required for personal annual occasions such as anniversary. Birthdays use recipient.birthday_day.","maximum":31,"minimum":1,"type":" ⟨33 unchanged words⟩ ,"type":"string"},"month":{"description":"Required with day for a personal annual occasion such as anniversary. Omit for holidays and one-off occasions; birthdays use recipient.birthday_month.","maximum":12,"minimum":1,"type":"integer"},"send_on":{"description":"Requested mailing date as YYYY-MM-DD, only for one-off occasions such as just_because. Omit for the next available mailing date. This is not a delivery guarantee.","pattern":"^\\d{4}-\\d{2}-\\d{2} ⟨11 unchanged words⟩ properties":{"address_confirmed":{"const":true,"description":"Must be true: the buyer has confirmed the supplied mailing address.","type":"boolean"},"anniversary_day":{"description":"Optional anniversary day valid for anniversary_month; supply both fields together or omit both. Paired zeros mean unknown.","maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"description":"Optional recipient anniversary month, paired with anniversary_day. Use 1 through 12, or 0 for both when unknown. Mailing timing uses occasion.month and occasion.day.","maximum":12,"minimum":0,"type":" ⟨22 unchanged words⟩ :"integer"},{"type":"null"}],"description":"Known birth year, optional. Requires a valid full birth date that is not in the future. Omit or use null when unknown."},"display_name":{"description":"Name on ⟨34 unchanged words⟩ additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}}," ⟨9 unchanged words⟩ },"origin":{"const":"manual","description":"Must be manual: recipient details come from the buyer, without a member recipient ID or Contacts import.","type":"string"}},"required":["display_name ⟨8 unchanged words⟩ additionalProperties":false,"properties":{"display_name":{"description":"Sender name printed with the return address.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}}," ⟨8 unchanged words⟩ "object"},"source_kind":{"const":"manual","description":"Must be manual: the buyer supplies this address; billing and saved Home addresses are not inferred.","type":"string"}},"required": ⟨1334 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"card_id":{"description":"ID from this order.cards[].id. Required when the order has more than one card; omit to preview its only card.","pattern":"^[0-9a-f]{8}- ⟨13 unchanged words⟩ :"string"},"expected_revision":{"description":"FailParentwithorder.revisionCONFLICTreturnedifbytheprepare_order,orderrevise_orderrevisionordiffersread_order. If supplied,soa mismatch fails with CONFLICT; omission previews thebuyercurrentapprovesrevision.whatPreviewtheyagainsaw.after changes.","exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"faces":{"default":"both","description":"Surfaces to render; omission means both. Outside/inside are front/back for postcards and flat cards, or cover/inside for folded cards.","enum":["outside","inside","both"],"type":"string"},"order_access_token":{"description":"TheExact privatecapabilityorder_access_token returned byprepare_order.prepare_orderNeveror revise_order for this order. Keep it private and never invent one.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching private token.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨18 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"order_access_token":{"description":"PrivateExactpurchaseprivatecapability.order_access_token returned by prepare_order or revise_order for this order. Keep it secret; never invent it or put it in a public URL or log." ⟨5 unchanged words⟩ ","type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨18 unchanged words⟩
⟨86 unchanged words⟩ additionalProperties":false,"properties":{"design_key":{"description":"Exact card.design.key from search_cards, or its occasion_design_keys entry for the selected occasion when present. Private cards use design_key from read_private_content or compose_private_card.","maxLength":160,"minLength":1,"type":"string"},"design_version":{"description":"Matching card.design.version from the same search result, or design_version returned for the private composition. Never infer a version.","exclusiveMinimum":0,"maximum":2147483646,"type":" ⟨139 unchanged words⟩ ,"type":"string"},"message_font":{"description":"Font for the personal message: serif, sans_serif, old_school or handwriting. Omission uses serif. Artwork lettering is unchanged.","enum":["serif","sans_serif","old_school", ⟨24 unchanged words⟩ :{"calendar":{"const":"us-western-v1","description":"Must be us-western-v1, the supported occasion calendar.","type":"string"},"day":{"description":"Day valid for occasion.month, required for personal annual occasions such as anniversary. Birthdays use recipient.birthday_day.","maximum":31,"minimum":1,"type":" ⟨33 unchanged words⟩ ,"type":"string"},"month":{"description":"Required with day for a personal annual occasion such as anniversary. Omit for holidays and one-off occasions; birthdays use recipient.birthday_month.","maximum":12,"minimum":1,"type":"integer"},"send_on":{"description":"Requested mailing date as YYYY-MM-DD, only for one-off occasions such as just_because. Omit for the next available mailing date. This is not a delivery guarantee.","pattern":"^\\d{4}-\\d{2}-\\d{2} ⟨11 unchanged words⟩ properties":{"address_confirmed":{"const":true,"description":"Must be true: the buyer has confirmed the supplied mailing address.","type":"boolean"},"anniversary_day":{"description":"Optional anniversary day valid for anniversary_month; supply both fields together or omit both. Paired zeros mean unknown.","maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"description":"Optional recipient anniversary month, paired with anniversary_day. Use 1 through 12, or 0 for both when unknown. Mailing timing uses occasion.month and occasion.day.","maximum":12,"minimum":0,"type":" ⟨22 unchanged words⟩ :"integer"},{"type":"null"}],"description":"Known birth year, optional. Requires a valid full birth date that is not in the future. Omit or use null when unknown."},"display_name":{"description":"Name on ⟨34 unchanged words⟩ additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}}," ⟨9 unchanged words⟩ },"origin":{"const":"manual","description":"Must be manual: recipient details come from the buyer, without a member recipient ID or Contacts import.","type":"string"}},"required":["display_name ⟨8 unchanged words⟩ additionalProperties":false,"properties":{"display_name":{"description":"Sender name printed with the return address.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}}," ⟨8 unchanged words⟩ "object"},"source_kind":{"const":"manual","description":"Must be manual: the buyer supplies this address; billing and saved Home addresses are not inferred.","type":"string"}},"required": ⟨1286 unchanged words⟩
⟨5 unchanged words⟩ ,"properties":{"order_access_token":{"description":"TheExact privatecapabilityorder_access_token returned byopen_private_content.open_private_contentNeverfor this scope. Keep it private and never invent one.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"scope_id":{"description":"Exact scope_id returned by open_private_content for the uploads to list.","pattern":"^[0-9a-f]{8}-[0-9a-f] ⟨18 unchanged words⟩
before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"cards":{"description":"One purchase containing 1–500 explicit card compositions in their supplied order. Mix any supported designs, formats, messages, recipients, occasions and dates. Do not group purchases by occasion. One card uses this same array.","items":{"additionalProperties":false,"description":"One manual guest card. Each card may have its own artwork, format, message, recipient, optional occasion and timing. Existing destination/calendar rules apply. No member, Property, recipient, card or calendar-event IDs.","properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"default":0,"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"default":0,"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"description":"Required for every card format: the sender’s name and return mailing address supplied by the buyer. Not automatically obtained from billing details.","properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient","return_address"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"expected_revision":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"order_access_token":{"description":"Private purchase capability. Keep it secret; never put it in a public URL or log.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"order_id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"request_id":{"description":"A new UUID for this replacement. Reuse it with the identical full cards array and original order capability to recover a lost response. After success, later edits target the returned replacement order.","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"}},"required":["request_id","cards","order_id","order_access_token","expected_revision"],"type":"object"}after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"cards":{"description":"One purchase containing 1–500 explicit card compositions in their supplied order. Mix any supported designs, formats, messages, recipients, occasions and dates. Do not group purchases by occasion. One card uses this same array.","items":{"additionalProperties":false,"description":"One manual guest card. Each card may have its own artwork, format, message, recipient, optional occasion and timing. Existing destination/calendar rules apply. No member, Property, recipient, card or calendar-event IDs.","properties":{"design_key":{"description":"Exact card.design.key from search_cards, or its occasion_design_keys entry for the selected occasion when present. Private cards use design_key from read_private_content or compose_private_card.","maxLength":160,"minLength":1,"type":"string"},"design_version":{"description":"Matching card.design.version from the same search result, or design_version returned for the private composition. Never infer a version.","exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"description":"Font for the personal message: serif, sans_serif, old_school or handwriting. Omission uses serif. Artwork lettering is unchanged.","enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","description":"Must be us-western-v1, the supported occasion calendar.","type":"string"},"day":{"description":"Day valid for occasion.month, required for personal annual occasions such as anniversary. Birthdays use recipient.birthday_day.","maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"description":"Required with day for a personal annual occasion such as anniversary. Omit for holidays and one-off occasions; birthdays use recipient.birthday_month.","maximum":12,"minimum":1,"type":"integer"},"send_on":{"description":"Requested mailing date as YYYY-MM-DD, only for one-off occasions such as just_because. Omit for the next available mailing date. This is not a delivery guarantee.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"description":"Buyer-supplied recipient details for this card. This does not create or select a saved member recipient.","properties":{"address_confirmed":{"const":true,"description":"Must be true: the buyer has confirmed the supplied mailing address.","type":"boolean"},"anniversary_day":{"description":"Optional anniversary day valid for anniversary_month; supply both fields together or omit both. Paired zeros mean unknown.","maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"description":"Optional recipient anniversary month, paired with anniversary_day. Use 1 through 12, or 0 for both when unknown. Mailing timing uses occasion.month and occasion.day.","maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"default":0,"description":"Birth day valid for birthday_month; February 29 is allowed. Use 0 with birthday_month 0 when the birthday is unknown and this is not a birthday mailing.","maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"default":0,"description":"Birth month, 1 through 12, required with birthday_day when occasion.kind is birthday. Otherwise omit both or use 0 for both when unknown.","maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}],"description":"Known birth year, optional. Requires a valid full birth date that is not in the future. Omit or use null when unknown."},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"description":"Recipient mailing address supplied and confirmed by the buyer.","properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","description":"Must be manual: recipient details come from the buyer, without a member recipient ID or Contacts import.","type":"string"}},"required":["display_name","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"description":"Required for every card format: the sender’s name and return mailing address supplied by the buyer. Not automatically obtained from billing details.","properties":{"display_name":{"description":"Sender name printed with the return address.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"description":"Sender return mailing address supplied by the buyer.","properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}},"required":["line1","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","description":"Must be manual: the buyer supplies this address; billing and saved Home addresses are not inferred.","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient","return_address"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"expected_revision":{"description":"Current parent order.revision from prepare_order, revise_order or read_order. A mismatch fails with CONFLICT; read the order again before deciding whether to retry. Keep the original revision when recovering an identical replacement request.","exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"order_access_token":{"description":"Exact private order_access_token returned by prepare_order or revise_order for this order. Keep it secret; never invent it or put it in a public URL or log.","pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"request_id":{"description":"New caller-generated UUID for this replacement, distinct from the original order ID. To recover a lost response, reuse this ID, the complete identical cards array, original order ID, token and expected_revision. Later edits use the returned replacement order.","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"}},"required":["request_id","cards","order_id","order_access_token","expected_revision"],"type":"object"}before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"paddock_gift":{"additionalProperties":false,"properties":{"included":{"type":"boolean"},"omission_reason":{"anyOf":[{"enum":["declined","no_envelope","international_delivery","offer_unavailable","not_selected"],"type":"string"},{"type":"null"}]}},"required":["included","omission_reason"],"type":"object"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"product_spec":{"additionalProperties":false,"properties":{"artwork_surface":{"enum":["front","front cover"],"type":"string"},"envelope":{"additionalProperties":false,"description":"Present only for formats mailed in an envelope.","properties":{"addressing":{"type":"string"},"size_in":{"additionalProperties":false,"properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"}},"required":["size_in","addressing"],"type":"object"},"envelope_included":{"type":"boolean"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"message_surface":{"description":"Where Paddock prints the personal message.","type":"string"},"open_size_in":{"additionalProperties":false,"description":"Folded card only: size when opened.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"paper":{"description":"Card stock by its confirmed basis-weight designation.","type":"string"},"paper_detail":{"additionalProperties":false,"properties":{"basis_weight":{"type":"string"},"caliper_in":{"description":"Measured sheet thickness in inches; absent when unknown.","exclusiveMinimum":0,"type":"number"},"color":{"description":"Absent until confirmed for the stock in use.","type":"string"},"finish":{"description":"Absent until confirmed for the stock in use.","type":"string"},"gsm":{"description":"Manufacturer-stated grammage; absent when unknown.","exclusiveMinimum":0,"type":"number"}},"required":["basis_weight"],"type":"object"},"personalization":{"additionalProperties":false,"properties":{"automatic_greeting":{"type":"string"},"fit_check":{"type":"string"},"fonts":{"items":{"type":"string"},"minItems":1,"type":"array"},"max_message_chars":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["fonts","automatic_greeting","max_message_chars","fit_check"],"type":"object"},"printed_text":{"type":"string"},"size_in":{"additionalProperties":false,"description":"Finished size in inches; the closed size for the folded card.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"title":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","format","title","paper","size_in","artwork_surface","message_surface","envelope_included","paper_detail","personalization","printed_text"],"type":"object"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","paddock_gift","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"},"order_access_token":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"payment_required":{"type":"boolean"},"preview_available":{"description":"At least one current card is eligible for optional preview_card. Images render only when requested; access and current state are rechecked then.","type":"boolean"},"replaced_order_id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"reused":{"type":"boolean"},"review_url":{"format":"uri","type":"string"}},"required":["order","order_access_token","review_url","reused","preview_available","replaced_order_id"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"description":"Exact card.design.key from search_cards, or its occasion_design_keys entry for the selected occasion when present. Private cards use design_key from read_private_content or compose_private_card.","maxLength":160,"minLength":1,"type":"string"},"design_version":{"description":"Matching card.design.version from the same search result, or design_version returned for the private composition. Never infer a version.","exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"description":"Font for the personal message: serif, sans_serif, old_school or handwriting. Omission uses serif. Artwork lettering is unchanged.","enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","description":"Must be us-western-v1, the supported occasion calendar.","type":"string"},"day":{"description":"Day valid for occasion.month, required for personal annual occasions such as anniversary. Birthdays use recipient.birthday_day.","maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"description":"Required with day for a personal annual occasion such as anniversary. Omit for holidays and one-off occasions; birthdays use recipient.birthday_month.","maximum":12,"minimum":1,"type":"integer"},"send_on":{"description":"Requested mailing date as YYYY-MM-DD, only for one-off occasions such as just_because. Omit for the next available mailing date. This is not a delivery guarantee.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"description":"Must be true: the buyer has confirmed the supplied mailing address.","type":"boolean"},"anniversary_day":{"description":"Optional anniversary day valid for anniversary_month; supply both fields together or omit both. Paired zeros mean unknown.","maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"description":"Optional recipient anniversary month, paired with anniversary_day. Use 1 through 12, or 0 for both when unknown. Mailing timing uses occasion.month and occasion.day.","maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}],"description":"Known birth year, optional. Requires a valid full birth date that is not in the future. Omit or use null when unknown."},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","description":"Must be manual: recipient details come from the buyer, without a member recipient ID or Contacts import.","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"description":"Sender name printed with the return address.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"description":"Two-letter uppercase ISO country code, such as US or CA. The recipient country determines the price and postal rules.","pattern":"^[A-Z]{2}$","type":"string"},"line1":{"description":"Street address or postal delivery line supplied by the buyer.","maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"description":"City, town or postal locality.","maxLength":320,"type":"string"},"postal_code":{"description":"Postal or ZIP code; use an empty string where the destination does not use one.","maxLength":48,"type":"string"},"region":{"description":"State, province or region; use an empty string where the destination does not require one.","maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","description":"Must be manual: the buyer supplies this address; billing and saved Home addresses are not inferred.","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"paddock_gift":{"additionalProperties":false,"properties":{"included":{"type":"boolean"},"omission_reason":{"anyOf":[{"enum":["declined","no_envelope","international_delivery","offer_unavailable","not_selected"],"type":"string"},{"type":"null"}]}},"required":["included","omission_reason"],"type":"object"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"product_spec":{"additionalProperties":false,"properties":{"artwork_surface":{"enum":["front","front cover"],"type":"string"},"envelope":{"additionalProperties":false,"description":"Present only for formats mailed in an envelope.","properties":{"addressing":{"type":"string"},"size_in":{"additionalProperties":false,"properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"}},"required":["size_in","addressing"],"type":"object"},"envelope_included":{"type":"boolean"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"message_surface":{"description":"Where Paddock prints the personal message.","type":"string"},"open_size_in":{"additionalProperties":false,"description":"Folded card only: size when opened.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"paper":{"description":"Card stock by its confirmed basis-weight designation.","type":"string"},"paper_detail":{"additionalProperties":false,"properties":{"basis_weight":{"type":"string"},"caliper_in":{"description":"Measured sheet thickness in inches; absent when unknown.","exclusiveMinimum":0,"type":"number"},"color":{"description":"Absent until confirmed for the stock in use.","type":"string"},"finish":{"description":"Absent until confirmed for the stock in use.","type":"string"},"gsm":{"description":"Manufacturer-stated grammage; absent when unknown.","exclusiveMinimum":0,"type":"number"}},"required":["basis_weight"],"type":"object"},"personalization":{"additionalProperties":false,"properties":{"automatic_greeting":{"type":"string"},"fit_check":{"type":"string"},"fonts":{"items":{"type":"string"},"minItems":1,"type":"array"},"max_message_chars":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["fonts","automatic_greeting","max_message_chars","fit_check"],"type":"object"},"printed_text":{"type":"string"},"size_in":{"additionalProperties":false,"description":"Finished size in inches; the closed size for the folded card.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"title":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","format","title","paper","size_in","artwork_surface","message_surface","envelope_included","paper_detail","personalization","printed_text"],"type":"object"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","paddock_gift","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"},"order_access_token":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"payment_required":{"type":"boolean"},"preview_available":{"description":"At least one current card is eligible for optional preview_card. Images render only when requested; access and current state are rechecked then.","type":"boolean"},"replaced_order_id":{"description":"Parent order.id returned by prepare_order, revise_order or read_order. Use the matching order_access_token; a card ID cannot identify the purchase.","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"reused":{"type":"boolean"},"review_url":{"format":"uri","type":"string"}},"required":["order","order_access_token","review_url","reused","preview_available","replaced_order_id"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}⟨3 unchanged words⟩ additionalProperties":false,"properties":{"artist":{"description":"Published artist name or slug, such as one returned in card.artist. Omit to include all artists and standard cards.","maxLength":120,"type":"string"},"cursor":{"description":"Exact next_cursor from the previous search with the same filters. Omit for the first page; stop when next_cursor is null.","pattern":"^(?:\\d{1,6})?$ ⟨61 unchanged words⟩ :"string"},"format":{"description":"Postcard, flatRequested cardinformat.anOmitenvelopeto use a format named in query, orfoldedflat_card_in_envelopecardwheninnoanformatenvelope.isOmitrequested.toOtherselectformatsflat_card_in_envelope.remain listed on each result.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"humor":{"description":"Humor filter: none, light or playful selects that reviewed level; funny accepts light and playful. Omit or use any for no explicit humor filter; the query can still request humor.","enum":["any","none","light", ⟨24 unchanged words⟩ ,"type":"boolean"},"kind":{"description":"Catalog collection: standard for Paddock cards, artist for artist cards, or any for both. Omission means any.","enum":["any","standard","artist"],"type":"string"},"limit":{"default":3,"description":"Maximum matches in this page, from 1 to 50. Omission returns 3; use next_cursor for more.","maximum":50,"minimum":1,"type":" ⟨18 unchanged words⟩ ,"type":"integer"},"occasion":{"description":"Occasion ID or recognized name, such as birthday or thank_you. Omit to use the query or browse all occasions.","maxLength":100,"type":"string"},"printed_text_contains ⟨21 unchanged words⟩ 1,"type":"string"},"query":{"description":"Natural-language artwork request, such as a birthday card with flowers. Can include an occasion, format, color, subject or exclusions. Omit to browse with the other filters.","maxLength":300,"type":"string"}," ⟨46 unchanged words⟩
⟨1826 unchanged words⟩ ,"payment_required":{"type":"boolean"},"preview_available":{"description":"At least one current card is eligible for optional preview_card. Images render only when requested; access and current state are rechecked then.","type":"boolean"},"reused":{"type":"boolean"},"review_url" ⟨4 unchanged words⟩ ,"required":["order","order_access_token","review_url","preview_available"],"type":"object"},"ok": ⟨9 unchanged words⟩
⟨16 unchanged words⟩ concise matches by default; use next_cursor for more. Prices follow the recipient country: pass destination_country when known, and read pricing_destination and each format’s cents_by_destination. Each response states the physical specifications of the ⟨26 unchanged words⟩
⟨17 unchanged words⟩ 6})?$","type":"string"},"destination_country":{"description":"Recipient country as a two-letter ISO code, such as US or CA. Prices depend on it: US addresses have agent-channel introductory prices and other countries the standard prices. Omit it to see US prices with each format’s other-destination amount listed; the prepared order prices every card by its own recipient address.","pattern":"^[A-Z]{2}$","type":"string"},"format":{"description":"Postcard, flat card ⟨63 unchanged words⟩ 1,"type":"integer"},"max_price_cents":{"description":"Budget per card for the selected format at the destination’s prices.","maximum":1000000,"minimum":0,"type": ⟨82 unchanged words⟩
⟨600 unchanged words⟩ "},{"type":"null"}]},"pricing_destination":{"additionalProperties":false,"properties":{"assumed":{"type":"boolean"},"country_code":{"type":["string","null"]},"introductory":{"type":"boolean"},"scope":{"enum":["US","international"],"type":"string"}},"required":["scope","country_code","introductory","assumed"],"type":"object"},"results":{"items":{"additionalProperties":false," ⟨88 unchanged words⟩ "minimum":0,"type":"integer"},"cents_by_destination":{"additionalProperties":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"propertyNames":{"enum":["US","international"],"type":"string"},"type":"object"},"format":{"enum":["postcard","flat_card_in_envelope" ⟨16 unchanged words⟩ "required":["format","cents","orderable","cents_by_destination"],"type":"object"},"type":" ⟨211 unchanged words⟩ ","constraints","unmet","occasion_resolved","artist_resolved","pricing_destination","currency","price_includes","policy","results ⟨13 unchanged words⟩
Compose a private card — Compose an immutable private card face from uploads in this scope and/or a QR link (a QR-only card needs no upload). Generate a UUID composition_id; retry only with the same ID and identical fields. Returns design_key and design_version 1 for prepare_order.
Delete private uploads — Request deletion of unused private uploads in this scope at the buyer’s request. Content required by a paid open order is kept until that order is completed or cancelled and refunded.
Open private uploads — Start a card from the buyer’s own photo, artwork, logo or QR link. Returns a private 24-hour upload_url for the buyer to open and choose the file themselves, plus the scope_id and order_access_token to keep for the order. Pass an existing unpaid draft’s order_id and order_access_token together to add a picture to that draft and then revise_order; omit both for a new scope. Assistants cannot upload conversation attachments; send the link. Not needed for catalog cards.
Pay for an order — Start or resume payment for this exact prepared order. Show the exact amount and any returned action_url so the buyer can securely connect Link, approve this purchase, or complete bank authentication. Only the buyer can grant permission; do not ask them for card details, wallet credentials or payment tokens in chat. Call again after they complete that step, respecting retry_after_seconds. Report payment complete only when status is paid; processing and requires_action are not payment success. Changing the order requires a new quote and approval. Payment and printing/mailing are separate; use …
Preview a card — Optional, never required to buy. Returns one prepared card exactly as it will print, outside and inside, as images at the current order revision; card_id is required when the order has several cards. If the order changes, preview again. preview_url shows the same images in a browser. Nothing is charged, changed or mailed.
Read private uploads — List what the buyer uploaded and the private cards composed from it. Use each composition’s design_key with design_version 1 in prepare_order with request_id = scope_id and the same order_access_token, or in revise_order for an existing draft from this scope.
Revise an unpaid order — Replace a prepared order before any payment has started. Send the complete desired cards array, including unchanged cards, with the original order_id, order_access_token, expected_revision and a new request_id. Change artwork, format, message, address, timing, or batch contents. Validation happens before the old draft is cancelled; one atomic operation returns a new order, fresh price, private token and review_url. When preview_available is true, optional preview_card can show the finished card. Prior payment approval does not authorize the replacement. Retain private art or add immutable art…
after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"paddock_gift":{"additionalProperties":false,"properties":{"included":{"type":"boolean"},"omission_reason":{"anyOf":[{"enum":["declined","no_envelope","international_delivery","offer_unavailable","not_selected"],"type":"string"},{"type":"null"}]}},"required":["included","omission_reason"],"type":"object"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"product_spec":{"additionalProperties":false,"properties":{"artwork_surface":{"enum":["front","front cover"],"type":"string"},"envelope":{"additionalProperties":false,"description":"Present only for formats mailed in an envelope.","properties":{"addressing":{"type":"string"},"size_in":{"additionalProperties":false,"properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"}},"required":["size_in","addressing"],"type":"object"},"envelope_included":{"type":"boolean"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"message_surface":{"description":"Where Paddock prints the personal message.","type":"string"},"open_size_in":{"additionalProperties":false,"description":"Folded card only: size when opened.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"paper":{"description":"Card stock by its confirmed basis-weight designation.","type":"string"},"paper_detail":{"additionalProperties":false,"properties":{"basis_weight":{"type":"string"},"caliper_in":{"description":"Measured sheet thickness in inches; absent when unknown.","exclusiveMinimum":0,"type":"number"},"color":{"description":"Absent until confirmed for the stock in use.","type":"string"},"finish":{"description":"Absent until confirmed for the stock in use.","type":"string"},"gsm":{"description":"Manufacturer-stated grammage; absent when unknown.","exclusiveMinimum":0,"type":"number"}},"required":["basis_weight"],"type":"object"},"personalization":{"additionalProperties":false,"properties":{"automatic_greeting":{"type":"string"},"fit_check":{"type":"string"},"fonts":{"items":{"type":"string"},"minItems":1,"type":"array"},"max_message_chars":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["fonts","automatic_greeting","max_message_chars","fit_check"],"type":"object"},"printed_text":{"type":"string"},"size_in":{"additionalProperties":false,"description":"Finished size in inches; the closed size for the folded card.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"title":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","format","title","paper","size_in","artwork_surface","message_surface","envelope_included","paper_detail","personalization","printed_text"],"type":"object"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","paddock_gift","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"}},"required":["order"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}⟨112 unchanged words⟩ ,"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description" ⟨297 unchanged words⟩ object"},"return_address":{"additionalProperties":false,"description":"Required for every card format: the sender’s name and return mailing address supplied by the buyer. Not automatically obtained from billing details.","properties":{"display_name":{"maxLength":240," ⟨73 unchanged words⟩ :["design_key","design_version","message","recipient","return_address"],"type":"object"},"maxItems": ⟨98 unchanged words⟩
before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"},"order_access_token":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"payment_required":{"type":"boolean"},"reused":{"type":"boolean"},"review_url":{"format":"uri","type":"string"}},"required":["order","order_access_token","review_url"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"paddock_gift":{"additionalProperties":false,"properties":{"included":{"type":"boolean"},"omission_reason":{"anyOf":[{"enum":["declined","no_envelope","international_delivery","offer_unavailable","not_selected"],"type":"string"},{"type":"null"}]}},"required":["included","omission_reason"],"type":"object"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"product_spec":{"additionalProperties":false,"properties":{"artwork_surface":{"enum":["front","front cover"],"type":"string"},"envelope":{"additionalProperties":false,"description":"Present only for formats mailed in an envelope.","properties":{"addressing":{"type":"string"},"size_in":{"additionalProperties":false,"properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"}},"required":["size_in","addressing"],"type":"object"},"envelope_included":{"type":"boolean"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"message_surface":{"description":"Where Paddock prints the personal message.","type":"string"},"open_size_in":{"additionalProperties":false,"description":"Folded card only: size when opened.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"paper":{"description":"Card stock by its confirmed basis-weight designation.","type":"string"},"paper_detail":{"additionalProperties":false,"properties":{"basis_weight":{"type":"string"},"caliper_in":{"description":"Measured sheet thickness in inches; absent when unknown.","exclusiveMinimum":0,"type":"number"},"color":{"description":"Absent until confirmed for the stock in use.","type":"string"},"finish":{"description":"Absent until confirmed for the stock in use.","type":"string"},"gsm":{"description":"Manufacturer-stated grammage; absent when unknown.","exclusiveMinimum":0,"type":"number"}},"required":["basis_weight"],"type":"object"},"personalization":{"additionalProperties":false,"properties":{"automatic_greeting":{"type":"string"},"fit_check":{"type":"string"},"fonts":{"items":{"type":"string"},"minItems":1,"type":"array"},"max_message_chars":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["fonts","automatic_greeting","max_message_chars","fit_check"],"type":"object"},"printed_text":{"type":"string"},"size_in":{"additionalProperties":false,"description":"Finished size in inches; the closed size for the folded card.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"title":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","format","title","paper","size_in","artwork_surface","message_surface","envelope_included","paper_detail","personalization","printed_text"],"type":"object"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","paddock_gift","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"},"order_access_token":{"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"},"payment_required":{"type":"boolean"},"reused":{"type":"boolean"},"review_url":{"format":"uri","type":"string"}},"required":["order","order_access_token","review_url"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"}},"required":["order"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"order":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"card_count":{"maximum":500,"minimum":1,"type":"integer"},"cards":{"items":{"additionalProperties":false,"properties":{"amount_cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"artist_name":{"type":["string","null"]},"cancellable":{"type":"boolean"},"currency":{"const":"usd","type":"string"},"fulfillment_status":{"anyOf":[{"enum":["scheduled","preparing","ready","mailed","cancel_requested","cancelled"],"type":"string"},{"type":"null"}]},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"input":{"additionalProperties":false,"properties":{"design_key":{"maxLength":160,"minLength":1,"type":"string"},"design_version":{"exclusiveMinimum":0,"maximum":2147483646,"type":"integer"},"format":{"description":"Postcard, flat card in an envelope, or folded card in an envelope. Omit to select flat_card_in_envelope.","enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"include_paddock_gift":{"description":"Include a complimentary personalized Paddock bookmark. For eligible new envelope orders, omission includes it; set false to opt out. The bookmark has the chosen artwork, a gift message naming the sender, and a unique QR code for one free card, including artist cards. Read the order’s returned paddock_gift: included, and omission_reason when it is not included. Explain it when useful or asked; no separate question or announcement is needed.","type":"boolean"},"message":{"description":"Body of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000,"type":"string"},"message_font":{"enum":["serif","sans_serif","old_school","handwriting"],"type":"string"},"occasion":{"additionalProperties":false,"description":"Optional occasion and timing context, independent of the selected artwork. Omit for an ordinary just-because card.","properties":{"calendar":{"const":"us-western-v1","type":"string"},"day":{"maximum":31,"minimum":1,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":"string"},"month":{"maximum":12,"minimum":1,"type":"integer"},"send_on":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["kind","calendar"],"type":"object"},"recipient":{"additionalProperties":false,"properties":{"address_confirmed":{"const":true,"type":"boolean"},"anniversary_day":{"maximum":31,"minimum":0,"type":"integer"},"anniversary_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_day":{"maximum":31,"minimum":0,"type":"integer"},"birthday_month":{"maximum":12,"minimum":0,"type":"integer"},"birthday_year":{"anyOf":[{"maximum":9999,"minimum":1,"type":"integer"},{"type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"origin":{"const":"manual","type":"string"}},"required":["display_name","birthday_month","birthday_day","mailing_address","address_confirmed","origin"],"type":"object"},"return_address":{"additionalProperties":false,"properties":{"display_name":{"maxLength":240,"type":"string"},"mailing_address":{"additionalProperties":false,"properties":{"country_code":{"pattern":"^[A-Z]{2}$","type":"string"},"line1":{"maxLength":320,"type":"string"},"line2":{"maxLength":320,"type":"string"},"locality":{"maxLength":320,"type":"string"},"postal_code":{"maxLength":48,"type":"string"},"region":{"maxLength":160,"type":"string"}},"required":["line1","line2","locality","region","postal_code","country_code"],"type":"object"},"source_kind":{"const":"manual","type":"string"}},"required":["display_name","mailing_address","source_kind"],"type":"object"}},"required":["design_key","design_version","message","recipient"],"type":"object"},"mailed_at":{"anyOf":[{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},{"type":"null"}]},"offer_version":{"type":"string"},"paddock_gift":{"additionalProperties":false,"properties":{"included":{"type":"boolean"},"omission_reason":{"anyOf":[{"enum":["declined","no_envelope","international_delivery","offer_unavailable","not_selected"],"type":"string"},{"type":"null"}]}},"required":["included","omission_reason"],"type":"object"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"product_spec":{"additionalProperties":false,"properties":{"artwork_surface":{"enum":["front","front cover"],"type":"string"},"envelope":{"additionalProperties":false,"description":"Present only for formats mailed in an envelope.","properties":{"addressing":{"type":"string"},"size_in":{"additionalProperties":false,"properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"}},"required":["size_in","addressing"],"type":"object"},"envelope_included":{"type":"boolean"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"message_surface":{"description":"Where Paddock prints the personal message.","type":"string"},"open_size_in":{"additionalProperties":false,"description":"Folded card only: size when opened.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"paper":{"description":"Card stock by its confirmed basis-weight designation.","type":"string"},"paper_detail":{"additionalProperties":false,"properties":{"basis_weight":{"type":"string"},"caliper_in":{"description":"Measured sheet thickness in inches; absent when unknown.","exclusiveMinimum":0,"type":"number"},"color":{"description":"Absent until confirmed for the stock in use.","type":"string"},"finish":{"description":"Absent until confirmed for the stock in use.","type":"string"},"gsm":{"description":"Manufacturer-stated grammage; absent when unknown.","exclusiveMinimum":0,"type":"number"}},"required":["basis_weight"],"type":"object"},"personalization":{"additionalProperties":false,"properties":{"automatic_greeting":{"type":"string"},"fit_check":{"type":"string"},"fonts":{"items":{"type":"string"},"minItems":1,"type":"array"},"max_message_chars":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["fonts","automatic_greeting","max_message_chars","fit_check"],"type":"object"},"printed_text":{"type":"string"},"size_in":{"additionalProperties":false,"description":"Finished size in inches; the closed size for the folded card.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"title":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","format","title","paper","size_in","artwork_surface","message_surface","envelope_included","paper_detail","personalization","printed_text"],"type":"object"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_review_reason":{"type":["string","null"]},"refund_state":{"enum":["none","pending","processing","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"schedule":{"additionalProperties":false,"properties":{"arrival_end":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"arrival_start":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"birthday_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"collection_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"edit_deadline":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"estimate_basis":{"type":"string"},"late":{"type":"boolean"},"leap_day_observed":{"type":"boolean"},"next_year":{"type":"boolean"},"one_off":{"const":true,"type":"boolean"},"post_by":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"send_date":{"format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","type":"string"},"time_zone":{"type":"string"}},"required":["time_zone","birthday_date","send_date","collection_date","arrival_start","arrival_end","edit_deadline","post_by","estimate_basis","late","leap_day_observed","next_year"],"type":"object"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_review_reason":{"type":["string","null"]},"terms_version":{"type":"string"},"title":{"type":"string"}},"required":["id","revision","state","payment_state","refund_state","refund_review_reason","tax_review_reason","input","schedule","amount_cents","currency","offer_version","terms_version","title","artist_name","quote_expires_at","paddock_gift","fulfillment_status","mailed_at","cancellable"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"checkout_url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"currency":{"const":"usd","type":"string"},"customer_content":{"additionalProperties":false,"properties":{"rights_accepted":{"type":"boolean"},"rights_required":{"type":"boolean"},"terms_version":{"const":"customer-print-v1","type":"string"}},"required":["rights_required","rights_accepted","terms_version"],"type":"object"},"id":{"pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","type":"string"},"payment_state":{"enum":["unpaid","pending","paid","failed","expired","refunding","refunded"],"type":"string"},"quote_expires_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"refund_state":{"enum":["none","pending","partial","succeeded","failed","unknown"],"type":"string"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"state":{"enum":["prepared","checkout_pending","paid","cancel_requested","cancelled"],"type":"string"},"tax_ready_count":{"maximum":500,"minimum":0,"type":"integer"}},"required":["id","revision","state","payment_state","refund_state","amount_cents","currency","card_count","tax_ready_count","quote_expires_at","checkout_url","cards"],"type":"object"}},"required":["order"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}⟨16 unchanged words⟩ concise matches by default; use next_cursor for more. Each response states the physical specifications of the three formats once in format_specs (paper, finished and open size, message surface, envelope); include_specs adds the published details. Public browsing needs no account or key.
⟨51 unchanged words⟩ ,"funny"],"type":"string"},"include_specs":{"description":"Include available paper, finish and envelope details. Basic format specifications are always returned. A missing detail is unspecified.","type":"boolean"},"kind":{"enum":["any","standard" ⟨100 unchanged words⟩
before
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"artist_resolved":{"type":["string","null"]},"catalog_revision":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"complete":{"type":"boolean"},"constraints":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"detail":{"type":"string"}},"required":["code","detail"],"type":"object"},"type":"array"},"currency":{"const":"usd","type":"string"},"generated_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"next_cursor":{"type":["string","null"]},"occasion_resolved":{"type":["string","null"]},"policy":{"type":"string"},"price_includes":{"anyOf":[{"additionalProperties":false,"properties":{"postage":{"type":"boolean"},"tax":{"type":"boolean"}},"required":["postage","tax"],"type":"object"},{"type":"null"}]},"results":{"items":{"additionalProperties":false,"properties":{"card":{"additionalProperties":false,"properties":{"artist":{"additionalProperties":false,"properties":{"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}},"required":["name","slug","url"],"type":"object"},"card_id":{"type":"string"},"contains_animals":{"type":["boolean","null"]},"contains_people":{"type":["boolean","null"]},"description":{"additionalProperties":false,"properties":{"status":{"enum":["available","unknown"],"type":"string"},"text":{"type":["string","null"]}},"required":["status","text"],"type":"object"},"design":{"additionalProperties":false,"properties":{"key":{"type":"string"},"version":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["key","version"],"type":"object"},"formats":{"items":{"additionalProperties":false,"properties":{"cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"orderable":{"type":"boolean"},"reason":{"enum":["CARD_SAMPLE_ACCEPTANCE_REQUIRED","CARD_ARTWORK_ACCEPTANCE_REQUIRED","ARTIST_PRINT_SETUP_REQUIRED","CATALOG_ARTWORK_UNAVAILABLE","OFFER_EXPIRED","AVAILABILITY_UNVERIFIED"],"type":"string"}},"required":["format","cents","orderable"],"type":"object"},"type":"array"},"from_cents":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"humor":{"enum":["none","light","playful","unknown"],"type":"string"},"image":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"kind":{"enum":["standard","artist"],"type":"string"},"occasion_design_keys":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"occasions":{"items":{"type":"string"},"type":"array"},"palette":{"items":{"type":"string"},"type":"array"},"primary_occasion":{"type":"string"},"printed_text":{"additionalProperties":false,"properties":{"note":{"type":"string"},"status":{"enum":["verified_absent","verified_present","unknown"],"type":"string"},"text":{"type":["string","null"]}},"required":["status","text"],"type":"object"},"subjects":{"items":{"type":"string"},"type":"array"},"subtitle":{"type":"string"},"title":{"type":"string"},"tone":{"items":{"enum":["warm","cheerful","playful","elegant","calm","gentle","romantic","festive","nostalgic","whimsical","sincere","celebratory","serene","bold"],"type":"string"},"type":"array"}},"required":["card_id","kind","design","title","primary_occasion","occasions","description","printed_text","tone","humor","subjects","palette","contains_people","contains_animals","image","formats","from_cents"],"type":"object"},"match_reasons":{"items":{"type":"string"},"type":"array"},"score":{"type":"number"},"selected_format":{"anyOf":[{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},{"type":"null"}]},"total_cents":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["card","selected_format","total_cents","score","match_reasons"],"type":"object"},"maxItems":50,"type":"array"},"schema":{"const":"paddock.search.compact.v1","type":"string"},"total":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"unmet":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"detail":{"type":"string"}},"required":["code","detail"],"type":"object"},"type":"array"}},"required":["schema","catalog_revision","complete","generated_at","total","next_cursor","constraints","unmet","occasion_resolved","artist_resolved","currency","price_includes","policy","results"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}after
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"artist_resolved":{"type":["string","null"]},"catalog_revision":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"complete":{"type":"boolean"},"constraints":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"detail":{"type":"string"}},"required":["code","detail"],"type":"object"},"type":"array"},"currency":{"const":"usd","type":"string"},"format_specs":{"additionalProperties":false,"description":"Physical specifications per format, stated once per response. A property that is absent is unspecified.","properties":{"detail":{"enum":["basic","full"],"type":"string"},"formats":{"additionalProperties":{"anyOf":[{"additionalProperties":false,"properties":{"artwork_surface":{"enum":["front","front cover"],"type":"string"},"envelope":{"additionalProperties":false,"description":"Present only for formats mailed in an envelope.","properties":{"addressing":{"type":"string"},"size_in":{"additionalProperties":false,"properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"}},"required":["size_in","addressing"],"type":"object"},"envelope_included":{"type":"boolean"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"message_surface":{"description":"Where Paddock prints the personal message.","type":"string"},"open_size_in":{"additionalProperties":false,"description":"Folded card only: size when opened.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"paper":{"description":"Card stock by its confirmed basis-weight designation.","type":"string"},"paper_detail":{"additionalProperties":false,"properties":{"basis_weight":{"type":"string"},"caliper_in":{"description":"Measured sheet thickness in inches; absent when unknown.","exclusiveMinimum":0,"type":"number"},"color":{"description":"Absent until confirmed for the stock in use.","type":"string"},"finish":{"description":"Absent until confirmed for the stock in use.","type":"string"},"gsm":{"description":"Manufacturer-stated grammage; absent when unknown.","exclusiveMinimum":0,"type":"number"}},"required":["basis_weight"],"type":"object"},"personalization":{"additionalProperties":false,"properties":{"automatic_greeting":{"type":"string"},"fit_check":{"type":"string"},"fonts":{"items":{"type":"string"},"minItems":1,"type":"array"},"max_message_chars":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["fonts","automatic_greeting","max_message_chars","fit_check"],"type":"object"},"printed_text":{"type":"string"},"size_in":{"additionalProperties":false,"description":"Finished size in inches; the closed size for the folded card.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"title":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","format","title","paper","size_in","artwork_surface","message_surface","envelope_included","paper_detail","personalization","printed_text"],"type":"object"},{"additionalProperties":false,"properties":{"artwork_surface":{"enum":["front","front cover"],"type":"string"},"envelope_included":{"type":"boolean"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"message_surface":{"description":"Where Paddock prints the personal message.","type":"string"},"open_size_in":{"additionalProperties":false,"description":"Folded card only: size when opened.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"paper":{"description":"Card stock by its confirmed basis-weight designation.","type":"string"},"size_in":{"additionalProperties":false,"description":"Finished size in inches; the closed size for the folded card.","properties":{"height":{"exclusiveMinimum":0,"type":"number"},"width":{"exclusiveMinimum":0,"type":"number"}},"required":["width","height"],"type":"object"},"title":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","format","title","paper","size_in","artwork_surface","message_surface","envelope_included"],"type":"object"}]},"propertyNames":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"required":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"object"},"unit":{"const":"in","type":"string"},"unspecified_means":{"type":"string"},"version":{"maxLength":60,"minLength":1,"type":"string"}},"required":["version","unit","detail","unspecified_means","formats"],"type":"object"},"generated_at":{"format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","type":"string"},"next_cursor":{"type":["string","null"]},"occasion_resolved":{"type":["string","null"]},"policy":{"type":"string"},"price_includes":{"anyOf":[{"additionalProperties":false,"properties":{"postage":{"type":"boolean"},"tax":{"type":"boolean"}},"required":["postage","tax"],"type":"object"},{"type":"null"}]},"results":{"items":{"additionalProperties":false,"properties":{"card":{"additionalProperties":false,"properties":{"artist":{"additionalProperties":false,"properties":{"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"url":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]}},"required":["name","slug","url"],"type":"object"},"card_id":{"type":"string"},"contains_animals":{"type":["boolean","null"]},"contains_people":{"type":["boolean","null"]},"description":{"additionalProperties":false,"properties":{"status":{"enum":["available","unknown"],"type":"string"},"text":{"type":["string","null"]}},"required":["status","text"],"type":"object"},"design":{"additionalProperties":false,"properties":{"key":{"type":"string"},"version":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["key","version"],"type":"object"},"formats":{"items":{"additionalProperties":false,"properties":{"cents":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"format":{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},"orderable":{"type":"boolean"},"reason":{"enum":["CARD_SAMPLE_ACCEPTANCE_REQUIRED","CARD_ARTWORK_ACCEPTANCE_REQUIRED","ARTIST_PRINT_SETUP_REQUIRED","CATALOG_ARTWORK_UNAVAILABLE","OFFER_EXPIRED","AVAILABILITY_UNVERIFIED"],"type":"string"}},"required":["format","cents","orderable"],"type":"object"},"type":"array"},"from_cents":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"humor":{"enum":["none","light","playful","unknown"],"type":"string"},"image":{"anyOf":[{"format":"uri","type":"string"},{"type":"null"}]},"kind":{"enum":["standard","artist"],"type":"string"},"occasion_design_keys":{"additionalProperties":{"type":"string"},"propertyNames":{"type":"string"},"type":"object"},"occasions":{"items":{"type":"string"},"type":"array"},"palette":{"items":{"type":"string"},"type":"array"},"primary_occasion":{"type":"string"},"printed_text":{"additionalProperties":false,"properties":{"note":{"type":"string"},"status":{"enum":["verified_absent","verified_present","unknown"],"type":"string"},"text":{"type":["string","null"]}},"required":["status","text"],"type":"object"},"subjects":{"items":{"type":"string"},"type":"array"},"subtitle":{"type":"string"},"title":{"type":"string"},"tone":{"items":{"enum":["warm","cheerful","playful","elegant","calm","gentle","romantic","festive","nostalgic","whimsical","sincere","celebratory","serene","bold"],"type":"string"},"type":"array"}},"required":["card_id","kind","design","title","primary_occasion","occasions","description","printed_text","tone","humor","subjects","palette","contains_people","contains_animals","image","formats","from_cents"],"type":"object"},"match_reasons":{"items":{"type":"string"},"type":"array"},"score":{"type":"number"},"selected_format":{"anyOf":[{"enum":["postcard","flat_card_in_envelope","folded_card_in_envelope"],"type":"string"},{"type":"null"}]},"total_cents":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]}},"required":["card","selected_format","total_cents","score","match_reasons"],"type":"object"},"maxItems":50,"type":"array"},"schema":{"const":"paddock.search.compact.v1","type":"string"},"total":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"unmet":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"detail":{"type":"string"}},"required":["code","detail"],"type":"object"},"type":"array"}},"required":["schema","catalog_revision","complete","generated_at","total","next_cursor","constraints","unmet","occasion_resolved","artist_resolved","currency","price_includes","policy","results","format_specs"],"type":"object"},"ok":{"const":true,"type":"boolean"}},"required":["ok","data"],"type":"object"}{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false,"title":"Cancel cards"}
⟨16 unchanged words⟩ dates. One card uses the same cards array.ReturnReturnsper-cardthepreviewsorder and its card records, the exact sum of current per-card prices, onehumanreview_urlreview/paymentforURLbuyer review and payment, and a private order_access_token. Optional per-card previews are available on the review page. No charge or mailing is authorized here. The 500-card/4-MiB bounds are technical request limits. Use a caller-generated UUIDrequest_id;request_id.forOmitrecoverableorder_access_token on the firstrequests,callgenerateso Paddock securely generates andprivatelyreturnsstoreit;apreservefreshthecryptographicallyreturnedrandomtoken43-characterprivately.base64urlNeverorder_access_tokeninventbeforeorcalling.type a random-looking token. RetrythattheIDsame request_id only with thesameexact token and unchanged cards. Ifomitted,theserverfirstgeneratesresponsetheistoken;lostlosingbeforethatsavingresponsetherequiresserver-generated token, use a newIDrequest_id for another unpaid purchase. Only clients with a cryptographic random generator may optionally pre-generate and privately store 32 random bytes encoded as 43 base64url characters for first-response recovery. Validation issues identify zero-based card indices without copying private content.
⟨116 unchanged words⟩ :"boolean"},"message":{"description":"PersonalBody of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000 ⟨41 unchanged words⟩ ,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":" ⟨73 unchanged words⟩ type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"},"mailing_address ⟨14 unchanged words⟩ ,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality ⟨13 unchanged words⟩ "string"}},"required":["line1","line2","locality","region","postal_code","country_code"], ⟨38 unchanged words⟩ ,"type":"string"},"line2":{"default":"","description":"Optional second line, such as an apartment or suite. Omitted means empty.","maxLength":320,"type":"string"},"locality ⟨13 unchanged words⟩
⟨129 unchanged words⟩ :"boolean"},"message":{"description":"PersonalBody of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000 ⟨41 unchanged words⟩ ,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":" ⟨69 unchanged words⟩ type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"}," ⟨1145 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false,"title":"Prepare an order"}
⟨129 unchanged words⟩ :"boolean"},"message":{"description":"PersonalBody of the personal message, at most 2000 Unicode characters. Paddock prints the greeting \"Dear {greeting_name or display_name},\" above it automatically, so do not start the message with a salutation. Printed artwork wording is separate.","maxLength":4000 ⟨41 unchanged words⟩ ,"type":"integer"},"kind":{"description":"Exact catalog occasion ID, such as birthday, thank_you or just_because. Use just_because with send_on for a one-time mailing date. Use underscores, not display labels or hyphens.","maxLength":100,"minLength":1,"type":" ⟨69 unchanged words⟩ type":"null"}]},"display_name":{"description":"Name on the envelope or address panel.","maxLength":240,"type":"string"},"greeting_name":{"description":"Name printed in the automatic greeting, such as Ida for \"Dear Ida,\". Defaults to display_name.","maxLength":240,"type":"string"}," ⟨1124 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Read an order"}
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false,"title":"Report technical feedback"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true,"title":"Search cards"}