Pass *3 Promo
30 DH
4.5 Go 3 Go
Valable : 14 Jours
Pass *3 Promo
50 DH
7.5 Go 5 Go
Valable : 30 Jours
Pass *3 Promo
100 DH
15 Go 10 Go
Valable : 30 Jours
Pass *3 Promo
200 DH
30 Go 20 Go
Valable : 30 Jours
Pass *3 Promo
300 DH
45 Go 30 Go
Valable : 30 Jours
Pass *3 Promo
500 DH
75 Go 50 Go
Valable : 30 Jours
Pass *3 Promo
1000 DH
150 Go 100 Go
Valable : 30 Jours
Pass *22
5 DH
50 Min
Valable : 1 Jour
Pass *22
10 DH
1H 45 Min
Valable : 3 Jours
Une erreur s'est produite lors du traitement du modèle.
The following has evaluated to null or missing:
==> enPromotion  [in template "6026335353695249076#20119#130867" at line 229, column 28]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if getterUtil.getBoolean(enPromotion...  [in template "6026335353695249076#20119#130867" at line 229, column 1]
----
1<style> 
2  .pass-5-card .card-button a { 
3	 padding: 7px 0px; 
4        max-width: 190px; 
5	  width: 190px; 
6
7	.pass-5-card	.line-container { 
8	display: flex; 
9    align-items: center; 
10
11	.pass-5-card	hr { 
12	width:100% 
13
14  .pass-5-card .card-button { 
15	  display: flex; 
16	  justify-content: center; 
17	  align-items: center; 
18	  margin-top: 5px; 
19
20  .pass-5-card .card-header { 
21    padding: 5px; 
22		background: #015BC3; 
23		font-family: Montserrat-SemiBold; 
24		 height: 88px; 
25		  text-align: center; 
26		display: flex; 
27    justify-content: center; 
28    align-items: center; 
29		    flex-direction: column; 
30
31	 .pass-5-card .price { 
32    	display: block; 
33		font-size: 32px; 
34		font-family: Montserrat-Bold; 
35
36		 .pass-5-card .currency { 
37		font-size: 18px; 
38
39			 .pass-5-card .text-muted { 
40			color: #7A8999 !important; 
41 
42  }	 
43.pass-5-card svg, .pass-5-card img { 
44margin-right: 4px; 
45    width: 30px; 
46    height: 30px; 
47    object-fit: contain; 
48
49 
50.pass-5-card .national { 
51    color: #7A8999; 
52    font-size: 15px; 
53    text-align: left; 
54    width: 100px; 
55
56 
57.pass-5-card .validity { 
58    color: #7A8999; 
59    text-align: right; 
60    font-size: 12px; 
61    font-style: normal; 
62    font-weight: 500; 
63    line-height: normal; 
64	}	 
65.pass-5-card del { 
66    color: #7A8999; 
67    font-size: 18px; 
68    font-style: normal; 
69    line-height: normal; 
70    text-decoration-line: strikethrough; 
71
72	.pass-5-card .text-warning { 
73color: #F96511 !important; 
74 
75
76.pass-5-card .item-price { 
77    font-size: 15px; 
78    font-style: normal; 
79    line-height: normal; 
80    width: 80px; 
81    text-align: left; 
82
83.pass-5-card	.card-title { 
84	display: flex; 
85  align-items: center; 
86	gap: 5px; 
87
88.pass-5-card .card-body .border { 
89    font-size: 18px; 
90    font-family: Montserrat-SemiBold; 
91    padding: 6px 10px; 
92    border-radius: 6px; 
93    gap: 2px; 
94
95.pass-5-card p { 
96    margin: 0; 
97    font-style: normal; 
98    line-height: normal; 
99
100.pass-5-card .card { 
101    height: 100%; 
102
103.pass-5-card .col { 
104    padding:10px; 
105
106.pass-5-card .pass-tag { 
107    position: absolute; 
108    top: 20px; 
109    right: 20px; 
110    font-size: 12px; 
111    font-style: normal; 
112    line-height: normal; 
113
114 
115.pass-5-card .card-body { 
116    justify-content: space-between; 
117    flex-direction: column; 
118    display: flex; 
119  
120    padding: 11px 15px; 
121
122			 
123.pass-5-card .card-body	a { 
124    margin-top: 20px; 
125
126			 
127.pass-5-card { 
128min-width: 285px; 
129flex: 1; 
130padding-bottom: 10px; 
131
132 .title-wrapper { 
133    display:flex; 
134	  align-items: center; 
135	  width: 200px; 
136		gap: 5px; 
137	justify-content: center; 
138
139 .validite-item-pass { 
140   color: #7A8999; 
141   font-family: Montserrat-Medium; 
142   font-size: 12px; 
143
144 .duration-wrapper { 
145    gap: 4px; 
146
147 
148 .card-name { 
149    font-family: Montserrat-Medium; 
150    font-size: 16px; 
151    color: #FFF; 
152
153  
154 .btn { 
155  margin: 0 20px; 
156  display: block; 
157
158 
159 @media screen and (max-width: 575px) { 
160    padding-bottom: 0px; 
161 
162    .card-header { 
163        height: 80px !important; 
164
165 
166    .title-wrapper img { 
167        width: 25px; 
168        height: 25px; 
169
170 
171    hr { 
172    margin: 13px 0; 
173
174 
175    .btn { 
176        margin-bottom: 15px; 
177
178 
179    .card-body { 
180        padding: 10px; 
181        .p-2 { 
182            padding:0 !important; 
183
184        .border { 
185            padding: 3px 10px !important; 
186
187
188 
189
190.pass-5-card:lang(ar) .card-title.internet , 
191 .pass-5-card:lang(ar) .card-title.sms  
192
193	direction: ltr; 
194    display: flex; 
195    justify-content: end; 
196
197#wrapper:lang(ar) .pass-5-card .card-title, 
198#wrapper:lang(ar) .pass-5-card .item-price, 
199#wrapper:lang(ar) .pass-5-card .card-body del 
200
201  font-family: 'Tajawal-Bold', sans-serif; 
202
203 
204.pass-5-card:lang(ar) .item-price { 
205    text-align: right ; 
206		    width: 133px ; 
207
208.pass-5-card:lang(ar) .title-wrapper { 
209width: 260px ; 
210
211.pass-5-card:lang(ar) .national { 
212    text-align: center; 
213
214</style> 
215		<#assign validity = languageUtil.get(locale, "Valable") /> 
216			<#assign recharge = languageUtil.get(locale, "Recharge") /> 
217			 
218  	<#assign currency = languageUtil.get(locale, "dev-currency") /> 
219				<#assign promo = languageUtil.get(locale, "promotion-abbreviation") /> 
220					<#assign new = languageUtil.get(locale, "new") /> 
221<div class="card pass-5-card"> 
222  <div class="card-header text-white"> 
223	<span class="card-name"> 
224        <#if (Text21901942.getData())??> 
225	${Text21901942.getData()} 
226</#if> 
227    </span> 
228		<#assign promoClass = ""> 
229<#if getterUtil.getBoolean(enPromotion.getData())> 
230	<span class="btn btn-secondary btn-sm rounded  float-right pass-tag font-weight-medium"> ${promotion-abbreviation} </span> 
231		<#assign promoClass = "text-warning"> 
232</#if> 
233	 
234<#assign friendlyUrl = themeDisplay.getLayout().getFriendlyURL()> 
235<#assign priceJawal = ""> 
236<#if friendlyUrl?starts_with("/roaming/forfait-plafonn")> 
237   <#if (Text09356257.getData())??> 
238	 <#assign priceJawal = Text09356257.getData()> 
239	 <div class="price">${Text09356257.getData()}<span class="currency"> ${currency}</span></div> 
240  </#if>   
241<#elseif friendlyUrl?starts_with("/roaming/forfait-non-plafonn")> 
242   <#if (Text33372609.getData())??> 
243	 <#assign priceJawal = Text33372609.getData()> 
244	 <div class="price">${Text33372609.getData()}<span class="currency"> ${currency}</span></div> 
245  </#if>    
246<#else> 
247   <#if (Text06592566.getData())??> 
248	 <#assign priceJawal = Text06592566.getData()> 
249	 <div class="price">${Text06592566.getData()}<span class="currency"> ${currency}</span></div> 
250  </#if>    
251</#if> 
252 
253  </div> 
254  <div class="card-body"> 
255<#if (Text66294538.getData()) != ""> 
256	<div class="text-center text-muted d-none">	${validity} : ${Text66294538.getData()} 
257	<#assign selectedOptionId = Champ86642957.getData()> 
258		<#if Champ86642957?has_content> 
259		 ${Champ86642957.getOptionsMap()[selectedOptionId]} 
260		</#if>	 
261		</div> 
262</#if> 
263 
264<#if (appelNationaleGroup.Text52719447.getData())??> 
265<#if (appelNationaleGroup.Text52719447.getData()) != ""> 
266 
267	<div class="p-2 text-dark border text-center d-flex justify-content-between align-items-center flex-column mb-1"> 
268    <div class="title-wrapper"> 
269		<img src="/documents/d/iam-portal/phone-icon2" width="24" height="24"> 
270		<div class="duration-wrapper d-flex flex-column"> 
271		<div class="card-title"> 
272		 
273	<span class="${promoClass} item-price font-weight-semi-bold">${appelNationaleGroup.Text52719447.getData()} 
274	 
275	<#assign selectedOptionId = appelNationaleGroup.Select67687461.getData()> 
276			<#if selectedOptionId?has_content> 
277				${appelNationaleGroup.Select67687461.getOptionsMap()[selectedOptionId]} 
278		</#if>	 
279</span> 
280 
281	 
282	 
283		<#if (appelNationaleGroup.Champ50321083.getData()) != ""> 
284		<del> 
285		${appelNationaleGroup.Champ50321083.getData()} 
286		<#assign selectedOptionId = appelNationaleGroup.Champ75434071.getData()> 
287			<#if selectedOptionId?has_content> 
288				${appelNationaleGroup.Champ75434071.getOptionsMap()[selectedOptionId]} 
289		  </#if>	 
290		</del> 
291		 
292		 
293 
294		<#assign selectedOptionId = appelNationaleGroup.Select51082018.getData()> 
295			<#if selectedOptionId?has_content> 
296				${appelNationaleGroup.Select51082018.getOptionsMap()[selectedOptionId]} 
297		  </#if>	 
298		</small> 
299		</#if> 
300		 
301		 
302    </div> 
303		 
304		</div> 
305		 
306		</div> 
307		 
308		</div> 
309        <#if (appelNationaleGroup.Text45925501.getData()) != ""> 
310		 
311	<div class="validite-item-pass text-center">	${validity} : ${appelNationaleGroup.Text45925501.getData()} 
312	<#assign selectedOptionId = appelNationaleGroup.Select51082018.getData()> 
313		<#if appelNationaleGroup.Select51082018?has_content> 
314		 ${appelNationaleGroup.Select51082018.getOptionsMap()[selectedOptionId]} 
315		</#if>	 
316		</div> 
317</#if> 
318		 
319	 
320 
321</#if>	 
322</#if> 
323	 
324	 
325	 
326			<#if (Champ12800619.Champ13841330.getData())??> 
327			<#if (Champ12800619.Champ13841330.getData()) != ""> 
328<div class="line-container">  
329<hr><small class="text-muted px-2">${languageUtil.get(locale, "or")}</small> <hr> 
330</div> 
331	<div class="p-2 text-dark border text-center d-flex justify-content-between align-items-center flex-column mb-1"> 
332        <div class="title-wrapper"> 
333            <img src="/documents/d/iam-portal/pass-internet-icon" width="24" height="24"> 
334            
335     
336    <span class="${promoClass} item-price font-weight-semi-bold card-title internet"> 
337    ${Champ12800619.Champ13841330.getData()} 
338         
339                <#assign selectedOptionId = Champ12800619.Champ43787384.getData()> 
340                <#if selectedOptionId?has_content> 
341                    ${Champ12800619.Champ43787384.getOptionsMap()[selectedOptionId]} 
342            </#if>	 
343        </span>	 
344         
345        <#if (Champ12800619.Champ26108978.getData()) != ""> 
346            <del> 
347            ${Champ12800619.Champ26108978.getData()} 
348            <#assign selectedOptionId = Champ12800619.Champ42298478.getData()> 
349                <#if selectedOptionId?has_content> 
350                    ${Champ12800619.Champ42298478.getOptionsMap()[selectedOptionId]} 
351              </#if>	 
352            </del> 
353            </#if> 
354             
355        </div> 
356	</div> 
357    <#if (Champ12800619.Text51630104.getData()) != ""> 
358    <small class="validity font-weight-medium text-center"> 
359    ${validity} : ${Champ12800619.Text51630104.getData()} 
360    <#assign selectedOptionId = Champ12800619.Select85555291.getData()> 
361        <#if selectedOptionId?has_content> 
362            ${Champ12800619.Select85555291.getOptionsMap()[selectedOptionId]} 
363      </#if>	 
364    </small> 
365    </#if> 
366</#if> 
367</#if> 
368 
369 
370			<#if (Champ77131398.Champ23236349.getData())??> 
371			<#if (Champ77131398.Champ23236349.getData()) != ""> 
372 
373<div class="line-container">  
374<hr><small class="text-muted px-2">${languageUtil.get(locale, "or")}</small> <hr> 
375</div> 
376	<div class="p-2 text-dark border text-center d-flex justify-content-between align-items-center flex-column mb-1"> 
377        <div class="title-wrapper"> 
378		    <img src="/documents/d/iam-portal/pass-email-icon" width="24" height="24"> 
379            <div class="duration-wrapper d-flex flex-column"> 
380                <div class="card-title"> 
381                     
382     
383             
384    <span class="${promoClass} item-price font-weight-semi-bold sms"> 
385    ${Champ77131398.Champ23236349.getData()} SMS 
386    </span> 
387 
388     
389        <#if (Champ77131398.Champ90244023.getData()) != ""> 
390            <del> 
391            ${Champ77131398.Champ90244023.getData()} SMS 
392            </del> 
393            </#if> 
394             
395             
396             
397        </div> 
398    </#if> 
399            </div> 
400 
401        </div> 
402        
403		 
404		<#if (Champ19501337.Champ40276135.getData()) != ""> 
405 
406  </div> 
407  <#if (Champ77131398.Text95979022.getData()) != ""> 
408  <small class="validity font-weight-medium text-center"> 
409  ${validity} : ${Champ77131398.Text95979022.getData()} 
410      <#assign selectedOptionId = Champ77131398.Select79854714.getData()> 
411      <#if selectedOptionId?has_content> 
412          ${Champ77131398.Select79854714.getOptionsMap()[selectedOptionId]} 
413    </#if> 
414  </small> 
415  </#if> 
416<div class="line-container">  
417<hr><small class="text-muted px-2">${languageUtil.get(locale, "or")}</small> <hr> 
418</div> 
419<div> 
420	<div class="p-2 text-dark border text-center d-flex justify-content-between align-items-center flex-column mb-1"> 
421        <div class="title-wrapper"> 
422		<img src="/documents/d/iam-portal/phone-inter-icon" width="24" height="24"> 
423         <div class="duration-wrapper d-flex flex-column d-flex flex-column"> 
424            <div class="card-title d-flex flex-row"> 
425 
426    <span class="${promoClass} item-price font-weight-semi-bold"> 
427	${Champ19501337.Champ40276135.getData()} 
428 
429	<#assign selectedOptionId = Champ19501337.Champ37425241.getData()> 
430			<#if selectedOptionId?has_content> 
431				${Champ19501337.Champ37425241.getOptionsMap()[selectedOptionId]} 
432		</#if>	 
433	 
434	</span> 
435	<small class="text-muted national font-weight-medium">National et international</small> 
436 
437		 
438		<#if (Champ19501337.Champ05707884.getData()) != ""> 
439		<del> 
440		${Champ19501337.Champ05707884.getData()} 
441		<#assign selectedOptionId = Champ19501337.Champ46332275.getData()> 
442			<#if selectedOptionId?has_content> 
443				${Champ19501337.Champ46332275.getOptionsMap()[selectedOptionId]} 
444		  </#if>	 
445		</del> 
446		</#if> 
447 
448    </div> 
449     
450         </div>    
451        </div>   
452	</div> 
453    <#if (Champ19501337.Text71206282.getData()) != ""> 
454		<div class="validite-item-pass text-center"><small class="validity font-weight-medium text-center"> 
455		${validity} : ${Champ19501337.Text71206282.getData()} 
456		<#assign selectedOptionId = Champ19501337.Select55715653.getData()> 
457			<#if selectedOptionId?has_content> 
458				${Champ19501337.Select55715653.getOptionsMap()[selectedOptionId]} 
459		  </#if>	 
460		</small></div> 
461		</#if> 
462</#if> 
463</#if> 
464 
465  </div> 
466  <#if (Text66294538.getData())??> 
467<div class="validite-item-pass text-center">	${validity} : ${Text66294538.getData()}     
468<#assign selectedOptionId4 = Champ86642957.getData()> 
469		<#if Champ86642957?has_content> 
470		 ${Champ86642957.getOptionsMap()[selectedOptionId4]} 
471		</#if>	 
472</#if> 
473  </div> 
474  </div> 
475	 
476  <div class="card-button"> 
477<#if priceJawal != ""> 
478<#if (priceJawal?number > 5 ) >        
479	 <a  href="#" onclick="window.AnalyticsTracker.trackRechargeAndOpen('${Text21901942.getData()?js_string}', ${priceJawal?number})" class="btn btn-secondary">${recharge}</a> 
480<#else> 
481<a href="#" class="btn btn-secondary btn-block invisible disabled">${recharge}</a> 
482</#if> 
483</#if> 
484  </div> 
485</div> 
Pass *5
5 DH
Valable : 7 Jours
27 Min

Ou
415 Mo

Ou
100 SMS
Valable : 7 Jours
Pass *5
10 DH
Valable : 10 Jours
54 Min

Ou
830 Mo

Ou
200 SMS
Valable : 10 Jours
Pass *5
20 DH
Valable : 14 Jours
1H48 Min

Ou
1.6 Go

Ou
400 SMS
Valable : 14 Jours
Pass *5
50 DH
Valable : 30 Jours
4H30 Min

Ou
4.1 Go

Ou
1000 SMS
Valable : 30 Jours
19 290 DH
A partir de 804 DH/mois
2 249 DH
A partir de 94 DH/mois
Nouveau
1 069 DH
A partir de 45 DH/mois
1 990 DH
A partir de 83 DH/mois
159 DH
1 249 DH
icon-app 01
Mon Espace MT

Gérez vos lignes mobile, fixe et internet en quelques clics.

Télécharger
icon-app 02
iNJOY

Forfaits mobile 100% digitaux et sans engagement.

Télécharger
icon-app 03
MT TV

Des bouquets TV enrichis avec un contenu VOD en illimité.

Télécharger
icon-app 04
MT CASH

MT Cash : la solution  sécurisée pour gérer votre argent 

Télécharger

Clients Jawal et Internet Mobile Prépayé

1DH TTC/appel pour mobile et fixe.

Client Forfait Mobile et Internet Mobile Postpayé

1 min/appel pour les forfaits plafonnés, 1DH TTC/appel pour les forfaits non plafonnés et pour le fixe.

Clients Internet Fibre Optique

1 min/appel pour les forfaits mobile plafonnés, 1DH TTC/appel pour Jawal et pour le fixe.

Clients Internet ADSL

1DH TTC/appel pour Jawal et 1 min/appel pour les forfaits mobile plafonnés.

Pour les dérangements du fixe

1DH TTC/appel