---
url: "https://developer.migros.ch/apis/coupons-3/versions/2b8e9e45-2e72-462e-b3cb-d5019d51e0e3"
---

OpenAPI specification document.

```json
{"components":{"parameters":{"active":{"description":"Status-Angabe für Coupon nach Charge; 0 = verfügbar/nicht aktiviert, 1 = aktiviert. Default-Wert je nach channel. Kassen: weglassen; Andere: bitte angeben.","in":"query","name":"active","schema":{"enum":[0,1],"type":"integer"}},"channel":{"description":"Channel of the coupon; 1 = paper, 2 = digital, 3 = both (e.g. Bonus-Coupon). Usually when making a charge through the M-API you'll want to use 2.","example":2,"in":"query","name":"channel","required":true,"schema":{"enum":[1,2,3],"type":"integer"}},"check_code":{"description":"Coupon type; 1 = transferable, 2 = personal/not transferable, 3 = Earlybird. Bonus coupons are personal. Falls der Checkcode fehlt, wird bei Bonus-Coupons (8888*) check_code==2 angenommen; bei allen anderen werden die vorhandenen Stammdaten berücksichtigt.","in":"query","name":"check_code","schema":{"enum":[1,2,3],"type":"integer"}},"client_name":{"deprecated":true,"description":"Name of the client. Leave empty to use the Kong Consumer name. This parameter exists for backward compatibility and should **not** be used.","example":"momima","in":"query","name":"client_name","schema":{"maxLength":20,"minLength":3,"type":"string"}},"costcenter":{"description":"The Migros internal costcenter number (Kostenstelle) to be billed. This is necessary especially for charge and reddeem.","in":"query","name":"costcenter","schema":{"maximum":9999999,"minimum":1000000,"type":"integer"}},"cpnid":{"description":"Coupon ID (the M-Promo ID, not the GTIN).","example":234531,"in":"path","name":"id","required":true,"schema":{"type":"integer"}},"cumulus":{"description":"Cumulus number.","example":"2099123456789","in":"path","name":"cumulus","required":true,"schema":{"maxLength":13,"minLength":13,"pattern":"^\\d{13}$","type":"string"}},"gtin":{"description":"GTIN (EAN) of Coupon. Its a string as GTINs often are longer than what integers can represent.","in":"path","name":"gtin","required":true,"schema":{"pattern":"^\\d+$","type":"string"}},"lang":{"description":"Override Accept-Language header","in":"query","name":"lang","schema":{"enum":["de","fr","it","experimental_en"],"type":"string"}},"lang-without-en":{"description":"Override Accept-Language header","in":"query","name":"lang","schema":{"enum":["de","fr","it"],"type":"string"}},"langvariant":{"description":"Language code: de, fr, it or en","example":"de","in":"path","name":"lang","required":true,"schema":{"type":"string"}},"product_ids":{"description":"Product ID to check","example":["280134171000","280138203000","121301900000"],"explode":true,"in":"query","name":"id","required":true,"schema":{"items":{"type":"string"},"type":"array"},"style":"form"},"quantity":{"description":"Quantity of coupons to assign. By default 1. More than one is not really a use-case.","in":"query","name":"quantity","schema":{"maximum":99,"minimum":1,"type":"integer"}},"terminal_id":{"description":"Only 'Kassen' must use this field and send the Kassen-Nr/Terminal.\nAll other clients **must** leave this fields blank.","example":78,"in":"query","name":"terminal_id","schema":{"maximum":999,"type":"integer"}},"timestamp":{"description":"You probably should _not_ send this value at all unless this is some kind of offline request for some internal transaction that happened in the past. It's whole purpose is for logging and correlating different transactions but this is better done via transaction_id.\n\nFormat is Y-m-d\\TH:i:s; Default is the time this call arrives at Reti.","example":"2023-08-17T14:03:05","in":"query","name":"timestamp","schema":{"pattern":"\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}","type":"string"}},"transaction_id":{"description":"Transaktions-Nummer; gruppiert z.B. mehrere ReTi-Calls für denselben Kunden.","example":"jdfjhamnasdl239msnsds34","in":"query","name":"transaction_id","schema":{"maxLength":32,"minLength":3,"type":"string"}},"ucbid":{"description":"ID (barcode) of a UCB. Its a string as it is often longer than what integers can represent (especially in toy languages).","in":"path","name":"ucbid","required":true,"schema":{"pattern":"^\\d+$","type":"string"}},"unique_request_id":{"description":"Die Unique Request-Id muss innerhalb einer konfigurierten Zeitspanne (aktuell 300s) einmalig für das aktuelle Ereignis sein (z.B. Kauftransaktion X für Kunde Y und Coupon Z). Anhand dieser ID beurteilt ReTi, ob ein Charge bereits erfolgt ist (Offline-Buchungen, Mehrfach-Aufrufe usw.).","example":"lksdfji3dmcns834la","in":"query","name":"unique_request_id","required":true,"schema":{"maxLength":32,"minLength":3,"type":"string"}},"valid_from":{"description":"The date from when on the coupon is valid, in the format YYYY-MM-DD.","in":"query","name":"from","schema":{"format":"date","type":"string"}},"valid_to":{"description":"The date until when the coupon is valid, in the format YYYY-MM-DD. Bonus coupons usually use end of the month.","in":"query","name":"to","schema":{"format":"date","type":"string"}}},"responses":{"409":{"description":"Maximum number of simultaneous active Coupons was exceeded. No need to retry the operation you get the same result over and over until you deactivate or redeem any other Coupon."}},"schemas":{"Coupon":{"description":"Represents the coupon information based on MDB+.","properties":{"campaign_colors":{"description":"Optional special colors for special campaigns","properties":{"dark":{"example":"#66601C","type":"string"},"light":{"example":"#EDEACD","type":"string"}},"required":["dark","light"],"type":"object"},"campaign_id":{"description":"The ID of the campaign, if this coupon is part of a campaign.","example":"e58efb75-2327-4b98-aeb0-1f7d9a2f5f1e","type":"string"},"customer_group":{"example":"cumulus","type":"string"},"digital":{"example":true,"type":"boolean"},"disclaimer":{"description":"Terms and conditions.","example":"Ausgenommen sind Gebührensäcke, -marken, Vignetten, Depots,  Serviceleistungen, E-Loading, iTunes/App-Karten, SIM-Karten, Gutscheine, Geschenkkarten, Geschenkboxen und alkoholische Getränke. Nur einmalig einlösbar in Verbindung mit der angegebenen Cumulus-Nummer.","type":"string"},"discount_amount":{"example":"5-fach Punkte","type":"string"},"discount_amount_value":{"example":"5.0","type":"string"},"discount_type":{"example":"mehrfach","type":"string"},"distribution_channels":{"$ref":"#/components/schemas/DistributionChannels"},"end_date":{"example":"31.10.2024","type":"string"},"fine_print":{"type":"string"},"gtin":{"description":"GTIN (EAN) of Coupon. Some Partnercoupons do not have GTINs.","example":"8888122276132945500263"},"id":{"description":"The ID of the Coupon. This is the same as the M-Promo ID; ReTi and MDB+ call this Offer ID\".","example":"1871947","type":"string"},"image":{"$ref":"#/components/schemas/Image"},"image_inactive":{"$ref":"#/components/schemas/Image"},"language":{"example":"de","type":"string"},"links":{"$ref":"#/components/schemas/CouponLinks"},"matching_products":{"description":"Number of products applicable to thos Coupon.\nIf this number is not know or the Coupon is applicable to all products this field is ommited.","type":"integer"},"minimum_purchase":{"example":"Mindesteinkauf CHF 14.90","type":"string"},"minimum_purchase_value":{"example":14.9,"format":"float","type":"number"},"name":{"example":"Gesamtes Migros-Supermarkt-Sortiment","type":"string"},"name_app":{"example":"Gesamtes Migros-Supermarkt-Sortiment","type":"string"},"name_web":{"example":"Gesamtes Migros-Supermarkt-Sortiment","type":"string"},"personal":{"example":true,"type":"boolean"},"previews":{"items":{"$ref":"#/components/schemas/Image"},"type":"array"},"promocode":{"description":"Optional promotion code for Partnercoupons","example":"SommerSale23","type":"string"},"promotion_number":{"example":"C-ID 1871947","type":"string"},"redeemable_area":{"example":"Nur regional einlösbar","type":"string"},"redeemable_at":{"example":"Einlösbar in allen Migros-Filialen in der Schweiz gegen Vorweisen der Cumulus-Karte sowie auf Migros Online.","type":"string"},"regions":{"description":"List of IDs where this Coupon can be redeemed.","example":["ONLINE_SHOP","GMAA","GMZH"],"items":{"type":"string"},"type":"array"},"signet":{"$ref":"#/components/schemas/CouponSignet"},"signet_bonuscoupon":{"$ref":"#/components/schemas/Image"},"signet_inactive":{"$ref":"#/components/schemas/CouponSignet"},"start_date":{"type":"string"},"stationary_redeemable":{"example":false,"type":"boolean"},"subtitle":{"example":"","type":"string"},"type_id":{"example":"8","type":"string"},"variant":{"example":"Rabattcoupon","type":"string"},"whole_assortment":{"description":"Indicates whether this Coupon is applicable to all products.","type":"boolean"}},"required":["gtin","id","language","name"],"type":"object"},"CouponLinks":{"description":"Represents the links on a coupon based on MDB+.","properties":{"note":{"description":"Note about link","example":"Im Online-Shop einlösbar","type":"string"},"onlineshop":{"description":"Link information.","properties":{"name":{"description":"Human readable name of the third-party website (for example SportX, micasa, Migipedia).","example":"Onlineshop","type":"string"},"type":{"description":"Link type","example":"info","type":"string"},"url":{"description":"URL to a third-party desktop page of the product.","example":"https://www.micasa.ch/","type":"string"}},"type":"object"}},"type":"object"},"CouponMatch":{"description":"Information about a Coupon matching products.","properties":{"coupon":{"$ref":"#/components/schemas/UserCoupon"},"products":{"$ref":"#/components/schemas/ProductList"}},"type":"object"},"CouponSignet":{"description":"A coupon signet and its properties.","properties":{"hex_color":{"description":"The hexadecimal color code for this signet.","example":"#003D8C","type":"string"},"logo":{"description":"The logo only of the signet","properties":{"name":{"description":"Logo name, useful for example as alt attribute.","type":"string"},"vector":{"description":"URL of vector image (SVG).","type":"string"}},"type":"object"},"stack":{"description":"An URL template to a raster/pixel image. Replace the placeholder {stack} with an available Rokka stack, e.g \"original\" to get a usable URL.","example":"https://image.migros.ch/coupons/{stack}/ebeaebd5907eeba6a7dab3b1776632f1d3436c81.png","type":"string"},"vector":{"description":"URL of vector image (SVG).","example":"https://image.migros.ch/coupons/original/be0c000a3088bac1c429d9dd3da16b3081482b7e.svg","type":"string"}},"type":"object"},"DistributionChannels":{"description":"The list of distribution channels (Micasa, Do It, SportX ...) this coupon is usable in.","properties":{"channels":{"description":"All the distribution channels.","items":{"properties":{"filter":{"example":"bikeworld","type":"string"},"filter_id":{"example":"12","type":"string"},"id":{"example":"bikeworld","type":"string"},"logo":{"$ref":"#/components/schemas/Image"},"logo_inactive":{"$ref":"#/components/schemas/Image"},"logo_master":{"type":"boolean"},"name":{"example":"Bike World","type":"string"}},"type":"object"},"type":"array"},"text":{"example":"Einlösbar in allen Migros- und Fachmarkt-Filialen sowie auf Migros Online und den Online-Shops der Fachmärkte.","type":"string"}},"required":["channels"],"type":"object"},"Image":{"description":"An Image URL template. Replace the placeholder {stack} with an available Rokka stack, e.g \"original\" to get a usable URL.","example":"https://image.migros.ch/coupons/{stack}/5263e8a6f3282b7f411ae5fce947d7acb65db939.png","type":"string"},"POSCoupon":{"description":"Represents the POS-Coupon information.","properties":{"disclaimer_rows":{"example":["Nur solange Vorrat.","Sortiment teilweise nur in grösseren Migros-","Filialen erhältlich."],"items":{"type":"string"},"type":"array"},"discount_amount":{"example":"40-fach Punkte","type":"string"},"end_date":{"example":"31.10.2024","type":"string"},"export_descr":{"example":"PosCoupon 40-fach","type":"string"},"gtin":{"description":"GTIN (EAN) of Coupon. Some Partnercoupons do not have GTINs.","example":"8888122276132945500263"},"id":{"description":"The ID of the Coupon. This is the same as the M-Promo ID; ReTi and MDB+ call this Offer ID\".","example":"1871947","type":"string"},"language":{"example":"de","type":"string"},"minimum_purchase":{"example":"Kein Mindesteinkauf","type":"string"},"name_rows":{"example":["Alle frischen Bohnen","in Selbstbedienung"],"items":{"type":"string"},"type":"array"},"pointfactor":{"example":"40.0","type":"string"},"pointfix":{"type":"string"},"promofactor":{"type":"string"},"promotion_number":{"example":"C-ID 2060566","type":"string"},"redeemable_area":{"type":"string"},"redeemable_at":{"example":"Einlösbar in allen Migros-Filialen in der Schweiz gegen Vorweisen der Cumulus-Karte","type":"string"},"reduction":{"type":"string"},"signet":{"properties":{"pos_id":{"example":"05_3_40_de","type":"string"}},"type":"object"},"start_date":{"type":"string"},"subtitle_rows":{"example":["(ohne Migros-Bio,","ohne Demeter)"],"items":{"type":"string"},"type":"array"},"type_gk":{"example":"2453","type":"string"},"value":{"example":"40-fach Punkte mehrfach","type":"string"}},"required":["gtin","id","language","discount_amount","minimum_purchase","end_date","subtitle_rows","value"],"type":"object"},"ProductList":{"description":"List of product IDs matching a couopon.","example":["280134171000","121301900000"],"items":{"type":"string"},"type":"array"},"Stats":{"description":"Aggregate statistics about Coupons and UCBs of a user.","properties":{"couponsActivated":{"description":"Number of activated Coupons (ignoring Quantity).","example":3,"type":"integer"},"diracActiveCount":{"description":"Total number of activated Coupons (counting Quantity).","example":4,"type":"integer"},"diracAvailableCount":{"description":"Number of non-redeem Coupons (ignoring Quantity)","example":7,"type":"integer"},"ucbActiveSum":{"description":"Sum of all activated UCBs in CHF","example":30,"type":"integer"},"ucbAvailableSum":{"description":"Sum of all non-redeemed UCBs in CHF.","example":75,"type":"integer"}},"required":["diracActiveCount","diracAvailableCount","couponsActivated","ucbActiveSum","ucbAvailableSum"],"type":"object"},"UCB":{"description":"Static data of an UCB (Blauer Bon/Coupon Bon).","properties":{"description":{"example":"Bon Wert Fr. 5","type":"string"},"id":{"description":"This ID just identifies the value (5, 10, 20 CHF) only. The individual physical UCB is identified by a UCB-ID that equals the number/barcode printed on the UCB.","example":"980500100000","type":"string"},"image":{"example":"https://image.migros.ch/coupons/{stack}/40187ac745c07f16a184508f17f3a3cb255d4537.jpg","type":"string"},"image_app":{"example":"https://image.migros.ch/coupons/{stack}/76a605b12f8ad8586c70b3a0a920836bcb5f94d8.png","type":"string"},"image_app_inactive":{"example":"https://image.migros.ch/coupons/{stack}/4a67aeb0ff88b07cc2cd4b4cd2b0272759f74779.png","type":"string"},"image_inactive":{"example":"https://image.migros.ch/coupons/{stack}/6c8cf3ca90d107207ca6760e8eb4e554d67c438d.jpg","type":"string"},"language":{"example":"de","type":"string"},"value":{"example":5,"format":"int32","type":"integer"}},"required":["id","language","value","image","image_inactive","image_app","image_app_inactive"],"type":"object"},"UserCoupon":{"description":"Personalized coupon information of a user based on ReTi.","properties":{"coupon":{"$ref":"#/components/schemas/Coupon"},"expiry":{"description":"Date string when the coupon expires. **Note** that the format is different from coupon.start_date.","example":"2023-09-01+02:00","type":"string"},"id":{"description":"The GTIN (EAN) of the Coupon. ReTi calls this  \"offerId\".","example":"8888122276132945500263","type":"string"},"pos_tr_id":{"description":"unique_request_id as provided during redeem call.","example":"303461600060EF280F0C206267706114","type":"string"},"preview":{"description":"If true then start_date is in the future and this Coupon cannot be activated yet as it is considered a \"Preview-Coupon\".","type":"boolean"},"published":{"description":"Date string when the coupon begins to be usable. **Note** that the format is different from coupon.start_date.","example":"2023-06-13+02:00","type":"string"},"quantity":{"description":"A single Coupon can be attributed multiple times to a customer. 0 is omitted.","example":2,"maximum":99,"minimum":0,"type":"integer"},"redeemed":{"description":"Datetime string when the coupon was redeemed (or empty).","example":"2024-05-10T10:39:06+02:00","type":"string"},"status":{"description":"1 = available, 2 = activated, 3 = redeemed.","enum":[1,2,3],"type":"integer"}},"type":"object"},"UserCouponCollection":{"description":"Collection of Coupons attributed to a user (cumulus number). Note that the two arrays contain different types of elements.","properties":{"activated":{"description":"Activated Coupons.","items":{"$ref":"#/components/schemas/UserCoupon"},"type":"array"},"available":{"description":"Available (valid but not yet activated) Coupons.","items":{"$ref":"#/components/schemas/UserCoupon"},"type":"array"},"partner":{"description":"Unpersonalised Partner-Coupons.","items":{"$ref":"#/components/schemas/Coupon"},"type":"array"},"preview":{"description":"Upcomming (preview) Coupons: Not yet activate-able.","items":{"$ref":"#/components/schemas/UserCoupon"},"type":"array"},"redeemed":{"description":"Redeemed Coupons.","items":{"$ref":"#/components/schemas/UserCoupon"},"type":"array"}},"required":["current","preview","redeemed","partner"],"type":"object"},"UserUCB":{"description":"Personalized UCB information of a user based on ReTi.","properties":{"balance":{"description":"Value of this UCB in CHF.","enum":[5,10,20],"example":5,"type":"integer"},"expiry":{"description":"Valid until (including) this date.","example":"2025-09-30+02:00","type":"string"},"id":{"description":"The actual UCB-ID that identifies the individual UCB. This ID is the number/barcode printed on the UCB.","example":"778400003621541383","type":"string"},"published":{"description":"Valid from (including) this date.","example":"2023-07-18+02:00","type":"string"},"redeemed":{"description":"Date and time of redemption.","example":"2015-05-27T08:27:27+02:00","type":"string"},"status":{"description":"1 = available, 2 = activated, 3 = redeemed.","enum":[1,2,3],"type":"integer"},"ucb":{"$ref":"#/components/schemas/UCB"}},"required":["id","status","balance"],"type":"object"}},"securitySchemes":{"Basic-Auth":{"description":"Kong basic-auth authentication","scheme":"basic","type":"http"},"Kong-Api-Key":{"description":"Kong key-auth authentication","in":"header","name":"X-Api-Key","type":"apiKey"}}},"externalDocs":{"description":"Details, examples and more information can be found here.","url":"https://wiki.migros.net/pages/viewpage.action?pageId=493724287"},"info":{"contact":{"email":"arg_mgb-udp-business-services@mgb.ch","name":"MGB-UDP-Business-Services"},"description":"This API allows to retrieve all existing Coupons and UCBs including their metadata like image URLs and marketing texts. It also provides special metadata for POS-Coupons to be used by the Avanta cash registers.\n\nIt doesn't matter whether you send parameters as query parameter or as x-www-form-urlencoded in the body.\n\nThe response language is determined by the Accept-Language HTTP header or by a dedicated `lang` query parameter. If neither is given \"de\" is used. Coupons are available in German, French and Italian. There's **experimental** support for English (excl. POSCoupons and UCBs). Note that English translations are generated by AI and may vary in quality and style and are thus not production ready!\n\nSome background details on Coupons can be found [here]($DEVPORTAL_URL/mgb-developer-portal/migros/coupons/portaldoc/coupons).\n\nImages are available on the Migros CDN which is based on Rokka. Most image URLs are templates containing `{stack}` which you MUST replace with the Rokka stack you want to use. The stack `original` returns the image in its original dimensions. One more stack is `2017-custom/resize-height-{H}-width-{W}` which allows to limit image dimensions to a maximum of W×H. The image format is determined by the filename extension (e.g. '.jpg' or '.png'). The URLs have a suitable extension, but you are free to replace e.g. .png with .avif if needed.\n\nTwo audit routes serve human consumable HTML data for troubleshooting data problems. Generally no access is given to these routes.\n\nHTTP status codes conform to RFC 7231 and are not documented on each route individually. The response body of all non-200 responses doesn't contain information to be consumed (or even acted on) by machines. Machines should work on HTTP status codes and HTTP headers only.\n\nIn addition to the standard semantics the following codes are used:\n- 404 Not found: If a Coupon or UCB is not charged (=issued, attributed)\n  to the given Cumulus number.\n\n- 409 Conflict: If the maximum number of Coupons or UCBs (currently 50)\n  has been activated already.\n\n- 410 Gone: If a Coupon or UCB has been redeemed already.\n- 502 Bad Gateway: In case of unspecific ReTi errors (i.e. ReTi result\n  with id==99).\n\n- 503 Service Unavailable: If the circuit breaker guarding ReTi is open.\n  You may retry the request but it makes no sense to do it immediately\n  as the circuit breaker will still be open. Wait a few seconds at least.\n  Waiting longer helps even better.\n\n- 504 Gateway Timeout: If the request to ReTi timed out.\n  You may retry the request. Waiting a bit before doing it should\n  be obvious.\n\nThe breaking changes are documented [here](https://wiki.migros.net/pages/viewpage.action?pageId=852940209)","title":"Coupons","version":"3.4.0"},"openapi":"3.0.0","paths":{"/migros/customers/coupons/v3/audit/":{"get":{"description":"An overview of all[^1] Coupons for **human** inspection and audit.\n\nYou must not parse and must not process this HTML page.\n\n[^1] Upcomming, currently valid and recently expired coupons. Coupons expired 10 days ago are no longer displayed.","operationId":"auditList","responses":{"200":{"content":{"text/html":{}},"description":"HTML page"}},"summary":"List of all Coupons","tags":["Audit"]}},"/migros/customers/coupons/v3/audit/{id}/{lang}":{"get":{"description":"All details about a Coupons for **human** inspection and audit.\n\nYou must not parse and must not process this HTML page.","operationId":"auditDetail","parameters":[{"$ref":"#/components/parameters/cpnid"},{"$ref":"#/components/parameters/langvariant"}],"responses":{"200":{"content":{"text/html":{}},"description":"HTML page"}},"summary":"Detail of a single Coupon","tags":["Audit"]}},"/migros/customers/coupons/v3/coupons":{"get":{"description":"This endpoint provides a list of all Coupons.\n\nThis list includes all types of Coupons: 'normal' Coupons, POS-Coupons and Partnercoupons.\n\nExpect areound 3 to 8 thousend Coupons. The exact value can be found in the X-Coupon-Count HTTP header.","operationId":"listCoupons","parameters":[{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Coupon"},"type":"array"}}},"description":"Array of all coupons","headers":{"X-Coupon-Count":{"description":"Size of list in response body.","schema":{"example":5,"type":"integer"}}}},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"List of all Coupons","tags":["Coupon-Data"]}},"/migros/customers/coupons/v3/coupons/by-gtin/{gtin}":{"get":{"description":"Retrieve the data of a Coupon by its GTIN.","operationId":"getCouponByGtin","parameters":[{"$ref":"#/components/parameters/lang-without-en"},{"$ref":"#/components/parameters/gtin"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}},"description":"Coupon data"},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Fetch Coupon by GTIN","tags":["Coupon-Data"]}},"/migros/customers/coupons/v3/coupons/{id}":{"get":{"description":"This endpoint provides a single Coupon identified via its Coupon-ID i.e. the corresponding M-Promo-ID. Note that GTINs cannot be used to look up a single Coupon.","operationId":"getCoupon","parameters":[{"$ref":"#/components/parameters/cpnid"},{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}},"description":"Array of all coupons","headers":{"X-Coupon-Count":{"description":"Size of list in response body.","schema":{"type":"integer"}}}},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Fetch Coupon by ID","tags":["Coupon-Data"]}},"/migros/customers/coupons/v3/coupons/{id}/matches":{"post":{"description":"This endpoint allows to test a list of product IDs whether the product would be matched by this coupon or not.\n\nOnly Rabattcoupons and Bonuscoupons provide this functionality list, Partnercoupons will result in a 404 status code. Calling this endpoint on a Bonuscoupons is pointless as it matches the whole assortment (i.e. all products) by definition; but it's possible.\n\nLike in the .../products endpoint this endpoint operates with the IDs of actual, buyable products as well as the corresponding \"Sammler\" products.\n\nThe response contains those queried IDs that qualifiy for the Coupon.","operationId":"matchProductIDs","parameters":[{"$ref":"#/components/parameters/cpnid"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"encoding":{"id":{"explode":true,"style":"form"}},"schema":{"properties":{"id":{"items":{"example":"166002100000","type":"string"},"type":"array"}},"required":["id"],"type":"object"}}},"description":"Product IDs to check, provided as (multiple) id form parameter(s).","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductList"}}},"description":"Array of those IDs that this Coupon applies to.","headers":{"X-Product-Count":{"description":"Size of list in response body.","schema":{"type":"integer"}}}},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Match a set of product IDs against this Coupon","tags":["Coupon-Data"]}},"/migros/customers/coupons/v3/coupons/{id}/products":{"get":{"description":"This endpoint provides the list of IDs of those products affected by the given Rabatt-Coupon. The list has no special sorting and might be a day outdated.\n\nThe list contains the IDs of actual, buyable products _and_ the ID of the relevant \"Sammler\"-product.\n\nOnly Rabattcoupons and Bonuscoupons provide this article list, Partnercoupons will result in a 404 status code. As Bonuscoupons always apply to all products calling this endpoint with a Bonuscoupon is pointless, you just get back the 204 status described below.\n\nThe list is caped to 2000 elements in case more products match this coupon.\n\nSome Coupons match the whole assortment. Instead of returning an arbitrarily caped list we return 204 and no body.","operationId":"getProductRefs","parameters":[{"$ref":"#/components/parameters/cpnid"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductList"}}},"description":"Array of up to 2000 article IDs.","headers":{"X-Product-Count":{"description":"Size of list in response body.","schema":{"type":"integer"}}}},"204":{"description":"This Coupon matches the whole sortiment (Gesamtsortiment). No individual product IDs are returned."},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"List product IDs matching a Coupon.","tags":["Coupon-Data"]}},"/migros/customers/coupons/v3/i18n":{"get":{"description":"Key-translation-pairs for common texts used around Coupons and UCBs. These values are provided as a convenience for clients that do not maintain their own internationalisations.\n\nThese do not change frequently and if they do it doesn't matter much if an 'outdated' one is used for some time. Clients are expected to cache the response of this endpoint for some hours to days.\n\nTo prevent requesting these translations without client side caching this endpoint eploys strict rate limiting of a few request per minute per consumer.","operationId":"i18n","parameters":[{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"content":{"application/json":{"schema":{"example":{"text_activated":"Der Coupon ist aktiviert und wird...","text_valid_until":"Gültig bis {{enddatum}}"},"type":"object"}}},"description":"Object with key-value pairs"},"429":{"description":"API rate limit exceeded.\n\nYou should cache the response, it doesn't change (often)."},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Provides translations for common texts","tags":["Static-Data"]}},"/migros/customers/coupons/v3/partnercoupons":{"get":{"description":"This endpoint provides a list of all Partnercoupons.\n\nThis list includes **only** Partnercoupons, normal Migros-Coupons and POS-Coupons are not part of this list.","operationId":"listPartnerCoupons","parameters":[{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Coupon"},"type":"array"}}},"description":"Array of partnercoupons"},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"List of all Partner-Coupons","tags":["Coupon-Data"]}},"/migros/customers/coupons/v3/poscoupons/{gtin}":{"get":{"description":"Retrieve the data of a POS-Coupon. This endpoint is (only) used by the Avnata cash registers.","operationId":"getPOSCoupon","parameters":[{"$ref":"#/components/parameters/lang-without-en"},{"$ref":"#/components/parameters/gtin"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/POSCoupon"}}},"description":"POS-Coupon data","headers":{"X-Coupon-Count":{"description":"Size of list in response body.","schema":{"type":"integer"}}}},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"security":[{"Basic-Auth":[]}],"summary":"Fetch data for a POS-Coupon","tags":["Coupon-Data"]}},"/migros/customers/coupons/v3/public/coupons/{id}":{"get":{"description":"This endpoint provides a single Coupon identified via its Coupon-ID i.e. the corresponding M-Promo-ID. Note that GTINs cannot be used to look up a single Coupon.\n\nCoupons are accessible via this route only during the time of their validity (start_date to end_date) plus/minus 1 day.\n\nThere is no (public) way to look up valid Coupon-IDs via this API, callers of this route need to get hold of the ID via some other channel.","operationId":"getPublicCoupon","parameters":[{"$ref":"#/components/parameters/cpnid"},{"$ref":"#/components/parameters/lang"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coupon"}}},"description":"The Coupon"},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Fetch a certain Coupon","tags":["Public-Coupon-Data"]}},"/migros/customers/coupons/v3/ucbs":{"get":{"description":"Data for the three UCBs (CHF 5, 10 and 20).","operationId":"ucb","parameters":[{"$ref":"#/components/parameters/lang-without-en"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UCB"},"type":"array"}}},"description":"The UCB data"},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Data for the three UCBs (CHF 5, 10 and 20).","tags":["Static-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/coupons":{"get":{"description":"This endpoint returns the set of all Coupons attributed to a certain customer, identified by the Cumulus number. Coupons can be personalised Coupons (regular and POS-Coupons) as well as unpersonalised Partnercoupons (which are distributed to every Cumulus customer).\n\nPersonalised Coupons might be \"Preview-Coupons\", i.e. a Coupon that is not yet valid (start date of campaign still in the future). These cannot be activated.","operationId":"getUserCoupons","parameters":[{"$ref":"#/components/parameters/cumulus"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCouponCollection"}}},"description":"Lists of personalised and unpersonalisdc coupons."},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"List of all Coupons attributed to a customer","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/coupons/{gtin}":{"get":{"description":"This endpoint returns a single Coupon attributed to a customer (identified via the Cumulus number). Only personalised Coupons can be requested, i.e. this endpoint doesn't return Partner-Coupons (these might not have a GTIN).\n\nYou probably should not use this endpoint at all: To find the list of Coupons of a user use `/migros/customers/coupons/v3/users/{cumulus}` which provides all information. (The only conceivable usecase for this endpoint is if you got the GTIN through some side channel.)","operationId":"getUserCouponsByGTIN","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCoupon"}}},"description":"Lists of personalised and unpersonalisdc coupons."},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Fetch a single Coupon attributed to a customer","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/coupons/{gtin}:activate":{"post":{"description":"Only non-redeem Coupons can be activated. It's okay to activate an already active Coupon.\n\nNote that no more than 50 Coupons can be in state 'activated' for a single Cumulus number. Trying to activate more results in a 409 error.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"activateCoupon","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"}],"responses":{"204":{"description":"Successfully activated"},"409":{"$ref":"#/components/responses/409"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Activate a Coupon","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/coupons/{gtin}:charge":{"post":{"description":"Charge assigns an existing coupon to a cumulus number (i.e. buyer). It's used by the cashier system to assign e.g. the 2x or 5x coupons to a buyer (Cumulus customer). Additionally it's used by the cashier system to reverse assignments e.g. when charge was done and then to correct this (Storno). It is basically the reverse operation of redeem.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"chargeCoupon","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"},{"$ref":"#/components/parameters/costcenter"},{"$ref":"#/components/parameters/timestamp"},{"$ref":"#/components/parameters/terminal_id"},{"$ref":"#/components/parameters/transaction_id"},{"$ref":"#/components/parameters/unique_request_id"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/check_code"},{"$ref":"#/components/parameters/active"},{"$ref":"#/components/parameters/quantity"},{"$ref":"#/components/parameters/valid_from"},{"$ref":"#/components/parameters/valid_to"}],"responses":{"204":{"description":"Charge successful"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Charge (Zuweisen) a Coupon to a Cumulus number","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/coupons/{gtin}:deactivate":{"post":{"description":"Only non-redeem Coupons can be deactivated. It's okay to deactivate an already inactive Coupon.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"deactivateCoupon","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"}],"responses":{"204":{"description":"Successfully deactivated"},"409":{"$ref":"#/components/responses/409"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Deactivate a Coupon","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/coupons/{gtin}:redeem":{"post":{"description":"Redeem a Coupon i.e. use it in a purchase.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"redeemCoupon","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"},{"$ref":"#/components/parameters/costcenter"},{"$ref":"#/components/parameters/timestamp"},{"$ref":"#/components/parameters/terminal_id"},{"$ref":"#/components/parameters/transaction_id"},{"$ref":"#/components/parameters/unique_request_id"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/check_code"},{"$ref":"#/components/parameters/quantity"}],"responses":{"204":{"description":"Charge successful"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Redeem (Einlösen) a Coupon","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/matches":{"post":{"description":"This endpoint allows to match a set of Product-IDs against the current Coupons attributed to a customer.\n\nOnly Rabattcoupons and Bonuscoupons in the state Available or Activated are matched. Partnercoupons, Preview Coupons and Coupons that have been Redeemed already are not returned.\n\nLike in the other endpoints working with Product IDs this endpoint also operates with the IDs of actual, buyable products as well as the corresponding \"Sammler\" products.\n\nThe response contains a map of Coupon GTINs that are applicable to at least one of the given products. The map entries contain the UserCoupon data, whether this Coupon matches the whole sortiment and the actual IDs matched.\n\nUnlike the product matching endpoints on unpersonalised coupons this endpoint only provides the POST variant.","operationId":"matchingCoupons","parameters":[{"$ref":"#/components/parameters/cumulus"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"description":"Product IDs to check, provided as (multiple) id form parameter(s).","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/CouponMatch"},"type":"object"}}},"description":"Map of GTINs to coupon and product data"},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Select Coupons of a customer matching product IDs","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/stats":{"get":{"description":"This endpoint returns aggregate summary data of a users Coupons and UCBs.\n\nNote that a single 'Coupons' can be attributed to a customer several times in which case the Quantity field is larger than 1. The dirac... fields in the response honour Quantity and count such Coupons multiple times while the coupons... field(s) count Coupon types ignoring their Quantity.","operationId":"stats","parameters":[{"$ref":"#/components/parameters/cumulus"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}},"description":"Summary data."},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Statistics about available/activated Coupons and UCBs.","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/ucbs":{"get":{"description":"This endpoint returns the set of all UCBs (aka \"Blaue Bons\" aka \"Cumulus Bons\") attributed to a certain customer, identified by the Cumulus number.","operationId":"getUserUCBs","parameters":[{"$ref":"#/components/parameters/cumulus"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserUCB"},"type":"array"}}},"description":"Lists of UCBs attributed to the customer."},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"List of all UCBs attributed to a customer","tags":["Customer-Data"]}},"/migros/customers/coupons/v3/users/{cumulus}/ucbs/{ucbid}:{state}":{"post":{"description":"Only non-redeem UCBs can be activated or deactivated. It's okay to activate an already active UCB as it is okay to deactivate an already inactive UCB.\n\nNote that no more than 50 UCBss can be in state 'activated' for a single Cumulus number. Trying to activate more results in a 409 error.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"toggleUCB","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/ucbid"},{"description":"The action to perform.","example":"activate","in":"path","name":"state","required":true,"schema":{"enum":["activate","deactivate"],"type":"string"}}],"responses":{"204":{"description":"Successful activated/deactivated"},"409":{"$ref":"#/components/responses/409"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Activate or deactivate an UCB","tags":["Customer-Data"]}},"/migros/customers/publiccoupons/v3/users/{cumulus}/coupons":{"get":{"description":"This endpoint returns the set of all Coupons attributed to a certain customer, identified by the Cumulus number. Coupons can be personalised Coupons (regular and POS-Coupons) as well as unpersonalised Partnercoupons (which are distributed to every Cumulus customer).\n\nPersonalised Coupons might be \"Preview-Coupons\", i.e. a Coupon that is not yet valid (start date of campaign still in the future). These cannot be activated.","operationId":"getUserCouponsPublic","parameters":[{"$ref":"#/components/parameters/cumulus"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCouponCollection"}}},"description":"Lists of personalised and unpersonalisdc coupons."},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"List of all Coupons attributed to a customer","tags":["Lekker"]}},"/migros/customers/publiccoupons/v3/users/{cumulus}/coupons/{gtin}":{"get":{"description":"This endpoint returns a single Coupon attributed to a customer (identified via the Cumulus number). Only personalised Coupons can be requested, i.e. this endpoint doesn't return Partner-Coupons (these might not have a GTIN).\n\nYou probably should not use this endpoint at all: To find the list of Coupons of a user use `/migros/customers/publiccoupons/v3/users/{cumulus}` which provides all information. (The only conceivable usecase for this endpoint is if you got the GTIN through some side channel.)","operationId":"getUserCouponsByGTINPublic","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCoupon"}}},"description":"Lists of personalised and unpersonalisdc coupons."},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Fetch a single Coupon attributed to a customer","tags":["Lekker"]}},"/migros/customers/publiccoupons/v3/users/{cumulus}/coupons/{gtin}:activate":{"post":{"description":"Only non-redeem Coupons can be activated. It's okay to activate an already active Coupon.\n\nNote that no more than 50 Coupons can be in state 'activated' for a single Cumulus number. Trying to activate more results in a 409 error.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"activateCouponPublic","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"}],"responses":{"204":{"description":"Successfully activated"},"409":{"$ref":"#/components/responses/409"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Activate a Coupon","tags":["Lekker"]}},"/migros/customers/publiccoupons/v3/users/{cumulus}/coupons/{gtin}:charge":{"post":{"description":"Charge assigns an existing coupon to a cumulus number (i.e. buyer). It's used by the cashier system to assign e.g. the 2x or 5x coupons to a buyer (Cumulus customer). Additionally it's used by the cashier system to reverse assignments e.g. when charge was done and then to correct this (Storno). It is basically the reverse operation of redeem.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"chargeCouponPublic","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"},{"$ref":"#/components/parameters/costcenter"},{"$ref":"#/components/parameters/timestamp"},{"$ref":"#/components/parameters/terminal_id"},{"$ref":"#/components/parameters/transaction_id"},{"$ref":"#/components/parameters/unique_request_id"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/check_code"},{"$ref":"#/components/parameters/active"},{"$ref":"#/components/parameters/quantity"},{"$ref":"#/components/parameters/valid_from"},{"$ref":"#/components/parameters/valid_to"}],"responses":{"204":{"description":"Charge successful"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Charge (Zuweisen) a Coupon to a Cumulus number","tags":["Lekker"]}},"/migros/customers/publiccoupons/v3/users/{cumulus}/coupons/{gtin}:deactivate":{"post":{"description":"Only non-redeem Coupons can be deactivated. It's okay to deactivate an already inactive Coupon.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"deactivateCouponPublic","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"}],"responses":{"204":{"description":"Successfully deactivated"},"409":{"$ref":"#/components/responses/409"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Deactivate a Coupon","tags":["Lekker"]}},"/migros/customers/publiccoupons/v3/users/{cumulus}/coupons/{gtin}:redeem":{"post":{"description":"Redeem a Coupon i.e. use it in a purchase.\n\n**Note**: The parameters can be sent as query parameters in the URL or as application/x-www-form-urlencoded in the request body (or any combination, it just doesn't matter.)","operationId":"redeemCouponPublic","parameters":[{"$ref":"#/components/parameters/cumulus"},{"$ref":"#/components/parameters/gtin"},{"$ref":"#/components/parameters/costcenter"},{"$ref":"#/components/parameters/timestamp"},{"$ref":"#/components/parameters/terminal_id"},{"$ref":"#/components/parameters/transaction_id"},{"$ref":"#/components/parameters/unique_request_id"},{"$ref":"#/components/parameters/channel"},{"$ref":"#/components/parameters/check_code"},{"$ref":"#/components/parameters/quantity"}],"responses":{"204":{"description":"Charge successful"},"default":{"description":"Standard HTTP semantics, no machine-interpretable body."}},"summary":"Redeem (Einlösen) a Coupon","tags":["Lekker"]}},"/migros/customers/publiccoupons/v3/users/{cumulus}/matches":{"post":{"description":"This endpoint allows to match a set of Product-IDs against the current Coupons attributed to a customer.\n\nOnly Rabattcoupons and Bonuscoupons in the state Available or Activated are matched. Partnercoupons, Preview Coupons and Coupons that have been Redeemed already are not returned.\n\nLike in the other endpoints working with Product IDs this endpoint also operates with the IDs of actual, buyable products as well as the corresponding \"Sammler\" products.\n\nThe response contains a map of Coupon GTINs that are applicable to at least one of the given products. The map entries contain the UserCoupon data, whether this Coupon matches the whole sortiment and the actual IDs matched.\n\nUnlike the product matching endpoints on unpersonalised coupons this endpoint only provides the POST variant.","operationId":"matchingCouponsPublic","parameters":[{"$ref":"#/components/parameters/cumulus"}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"}}},"description":"Product IDs to check, provided as (multiple) id form parameter(s).","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/CouponMatch"},"type":"object"}}},"description":"Map of GTINs to coupon and product data"},"default":{"description":"Standard HTTP semantics (see above), no machine-interpretable body."}},"summary":"Select Coupons of a customer matching product IDs","tags":["Lekker"]}}},"security":[{"Kong-Api-Key":[]},{"Basic-Auth":[]}],"servers":[{"description":"URL of upstream","url":"https://api.migros.ch"}],"tags":[{"name":"Static-Data"},{"name":"Coupon-Data"},{"name":"Public-Coupon-Data"},{"name":"Customer-Data"},{"name":"Audit"},{"name":"Lekker"}],"x-company":"migros","x-edm-domain":"customers","x-format-suffix":{"enabled":true,"pattern":"json|xml"},"x-headmatter":{"readable_by":"*"},"x-kong-route-defaults":{"protocols":["https"],"strip_path":false},"x-kong-service-defaults":{"connect_timeout":200,"read_timeout":1000,"retries":2,"write_timeout":200},"x-leanix-id":"000cf5a6-d62c-4a8e-be9f-31d23d21dc45","x-link-get-access":"https://forms.office.com/e/zhzbEqAQ26","x-link-get-support":"mailto:9961fcb6.migros.onmicrosoft.com@ch.teams.ms"}
```
